Software Testers as Generalists

A generalist may often seem to be someone who is like the proverbial "Jack of all trades but master of none". In producing software, one of the significant differences between the software testing and software development functions is the presence or absence of generalists. Typically, a software developer is a specialist. A software developer is expected to specialize in a specific area. The emphasis in software development is on the depth of knowledge acquired. There is little scope for a generalist here unless you move up the food chain and occupy a senior managerial position. In contrast to this, the software testing function values generalists. The emphasis on generalists in software testing is on their breadth of knowledge acquired rather than depth alone.

A generalist software tester is able to test and comment on a product or feature without needing to know about its internal workings. Generalist software testers are often required to quickly come to speed on a new product or feature and test from an end user perspective. This requires them to gain a broad understanding of the various aspects of the product in a short time. These software testers bring in a different perspective in comparison to the software developers.

On the face of it, this emphasis on breadth vs depth of knowledge may cause generalist software testers to be viewed as "ignorant". However, it is this very "ignorance" that helps these software testers examine the application under test (AUT) the way an user would without being too familiar with the internal workings or the technological underpinnings. Generalist software testers however do need to be familiar and well aware of the customers usage, their domain and environment. This domain knowledge coupled with a broad based understanding of the product helps generalist software testers add significant value to the organization.