a historical piece of name magic that we now take for granted. We started calling programmers "developers."
This occurred to me a few weeks ago at the Agile 2008 Conference. Listening to agilists question how-or in some cases even whether-to integrate testers on their teams, I wondered yet again why testers are still having to struggle for acceptance as essential players in software development. It's not a new struggle; this is just the latest incarnation. In session after session, I kept hearing about the "developers" on agile teams. At some point I started thinking, "But what's a 'developer'? Aren't we all involved in software development?"
Software development consists of analysis, design, programming, and testing. These are all difficult intellectual activities that cannot be done effectively without a high degree of skill. The skills needed to analyze requirements, design user interfaces, or test are not the same skills required for programming. It isn't reasonable to expect one person or one group of similarly skilled people to possess them all to the level required to develop complex software. That's why specialist trades have evolved in our industry.
The reality is that we are all "software developers," whether we are business analysts, architects, designers (including the people Alan Cooper calls "interaction designers"), programmers, or testers. But by calling programmers "developers," we imply that all of software development can be done by programmers. Too many managers (most of whom started their careers as programmers) believe this, and so do a lot of programmers-perhaps most.
Calling programmers "developers" is an instance of name magic that inflates the programmer's role and devalues everyone else's. It reinforces a class system where programmers are the aristocrats and all the other trades are peons, perceived to be lower skilled, interchangeable, and expendable.
I was encouraged at the Agile Conference to hear that testers are finding roles on some agile teams and that this is even institutionalized in some organizations. I heard some agilists say they're beginning to realize that business analysts have an important role, too. As experience with agile projects grows, we will probably see an increased return to specialized roles and the benefits that this will bring to the resulting software.
But unless we deal with the class system in software development, we testers will keep fighting the same battles over and over again. Reversing the "developer" name magic won't solve the whole problem, but I think it's an essential step.
What do you think? Do you find yourself still fighting to be accepted as a professional who brings a uniquely valuable mindset and skills to a software development team? Do you see name magic as a part of the problem? I invite you to share your comments on this topic with me and your fellow StickyMinds.com readers.