The topic of the low prestige of software testing (compared to software development and management) at Microsoft comes up in my conversations here in Redmond, WA all the time. It is an important topic because Microsoft has great difficulty attracting and then keeping top talent in software testing roles. The issue is relatively complex and can’t be fairly addressed in the short space of a blog entry but here are brief sketches of 12 opinions that are part of the software testing perception issue. These opinions are all tightly related and in many cases different views of the same idea. Furthermore, I don’t agree with all of these issues — but they’re all issues I hear repeatedly, and each idea has a strong counterargument which I’ll address in some future blog entry.
1. Lower pay. Software testers at Microsoft do in fact receive on average lower pay than software developers with similar experience.
2. Self-fulfilling prophecy. Because testing is perceived as lower prestige, it does not appeal to top talent, which in turn lowers the field’s prestige.
3. Weak testers can hide. Software testers have fewer directly measureable work outputs than developers so weak or even incompetent testers can hide within a work environment for quite some time.
4. Weaker technical skills. At Microsoft, prestige is most closely related to ability to code. Most testers have weaker coding skills than developers. Testers, as a whole, are sometimes seen as failed developers.
5. Degree of separation from product. Compared to software development, testing is at least one degree of separation removed from Microsoft’s core activity — which is software development.
6. Explicit career path. Software testers have fewer direct career path options than developers.
7. Implicit career path. Senior technical management (VP and above) at Microsoft almost always come from Development; almost none (I can’t think of any) come from a Test background.
8. No stars. Software testing has not produced a single star similar to Kernighan, Richie, Thompson, Knuth, Hamming, Dijkstra, Newell, Simon, Backus, Naur, Hoare, Codd, Wirth, and so on.
9. No breakthrough technologies. Software testing has not produced any revolutionary new technologies, research, or paradigms.
10. Body of knowledge. There is no core body of software testing knowledge and existing certifications are essentially simple vocabulary tests.
11. University curriculum. Few if any major universities offer software testing classes, much less testing programs.
12. Declining influence. Dedicated software testing has become less important over the past few years as developers use more test driven development techniques.
Each of these issues requires a lot of explanation but the list above should give you a feel for many of the common arguments about why most software engineers would claim that software testing is a second class activity compared to software development. As I mentioned all of these 12 issues have strong counterarguments, which I’ve not listed. However, my point in this blog entry at least is that there is a serious perception issue at Microsoft that software testing is definitely inferior to software development in many ways. Now don’t take this entry as software testing bashing — quite the contrary. I am passionate about software testing and believe testing is critically important to the overall software development life cycle.