Monday, July 19, 2010

Being an Engineer

Shift from a being a DEV guy, to becoming an ENGINEERING guy is something that not everyone would prefer to do. Why? For the simple reason, not many people understand what an ENGINEERING guy does. People see ENGINEERS as TESTERS, Black Box testers, and to them being a tester is being below their dignity level. For even, I thought so during my initial days of IT. I was too naive and I didn't know what role the testers played.

But after having treaded the road for about FOUR good years I stand in a position where I can see the point in needing/being a tester and there is nothing to be ashamed about it. But for testers, developers would be in soup, deep soup. I am not kidding. Assume a product/solution is being delivered without passing the QA(Quality Assurance). Of-cos, it was shipped after all the unit test cases developed by the developers passed and they were quite satisfied the product/solution is bug free. What the developers fail to do is to come up with use cases that are more likely the customers come up with. Putting it in simple terms they focus more than the positive scenarios and give a little attention to the negative scenarios. From the customers point of view, even something as trivial as a spelling mistake in the ack or error message is unacceptable and it would get escalated. When a bug is raised by the customer, the developer would be the one who will have to face the hot seat. I am sure, no developer would want himself to be placed there. Trust me, its not a pleasant experience being there.

This is where someone with a different perspective becomes necessary. The someone who can think beyond specifications of the application and try simulating real time scenarios. And this someone is ideally an ENGINEER/TESTER. Well, I am not going to discuss more about TESTER, because I am still not very sure as to what exactly his role would be. Now that I have been an ENGINEER for about an year, I can throw enough light on what it is like being one. First, an Engineer is not only a Tester. An Engineer should be aware of the technology being used in the product/solution that needs to be tested which a Tester can be least bothered about. Engineers primary responsibility is to break what the developer builds. What I call as "Breaking the Code". This means, an Engineer has to code to break the code. So being an engineer gives the exposure to both paradigms of software building, "cranking" and "breaking". An Engineer also tests the coverage of the code developed. Additionally an engineer should find ways in which the test execution environment can be automated. This means an Engineer gets exposed to build frameworks and automation tools. In short, being an Engineer involves more than just testing the product/solution.