Tuesday, October 14, 2008

Testers need to be with developers

I once believed that Testing needs to be organizationally separated from development. I once created a testing group, from the ground up. In the group's charter, I specifically called out the need for the testing group to be a separate organizational entity from development. This was important, I believed, because, among other things, it avoided conflict of interest and it better supported the testing ecosystem. I now think the separation of developers from testers is a bad idea. Testers need to be with developers.

There are three primary and fundamental reasons that software projects fail: requirements instability, lack of communication, lack of domain expertise. Ken Schwaber, who is the inventor of Scrum, puts this in terms of the significant “dimensions of complexity” to software development: requirements, people, and technology. “Anything can be complex. When complex things interact, the level of complexity goes through the roof.”

When you physically or politically separate testers from developers, you create communication and collaboration complexity whose resultant problems, in my opinion, utterly and completely dwarf any concern you might have about keeping/putting them together.

I realize that testers and developers are different, in terms of skills required to be good, tools used, etc. So I'm not saying you simply fold testing into development and be done with it. I don't in any way mean to imply that it would necessarily be easy to undo a culture that is used to the separation of developers from testers, or that combining developers with testers doesn't come with its own set of challenges.

No comments: