How to End Wars Between Testers and Programmers
Pages: 1, 2
Programming with Quality in Mind
Often, programmers and testers have very different ideas of what quality means. They're not alone. People have been arguing about quality for hundreds of years and haven't gotten very far (see Pirsig's Zen and the Art of Motorcycle Maintenance). The solution isn't in finding a specific answer for all time, which is impossible. Quality is highly subjective and means something different from project to project. Instead of seeking out a single answer, leaders have to drive for collective agreement on quality for the current project, and avoid philosophical debates.
Smart teams work on defining quality early. Since they know that towards the end of the project they'll need test cases to find bugs and evaluate progress, they decide not to wait to the end to sort those things out. Decisions about quality can be made early on.
Test-driven development (TDD), a popular approach for bringing quality into the process earlier, makes testing and quality assurance an integral part of every function and feature design. Before the code is written, test cases--conditions that the software must satisfy before it can be released--are created that define the conditions the code is to achieve. Just as you'd be foolish to start driving your car without knowing where you're going, why write code before you have a goal in mind? (Unless of course you enjoy wandering around highways and code bases.)
The spirit of TDD applies to all types of work. If you define the characteristics of the end results early, and communicate them to others, the odds of success always go up. It separates the ends from the means, freeing everyone to use whatever skills they have to help the project achieve its goals.
Only Leaders Start and End Wars
In the history of warfare, one thing is clear. It's those in power that create the conditions that lead to war. Whether it's acting out of fear or refusing to compromise, leaders have the power to start and end conflicts. Testers and programmers are no different. If there's strife in the programming trenches, look to the leaders for the causes.
The relationship between the most senior programmer and most senior tester sets the tone for the rest of the organization. If they ignore, ridicule, or patronize the other, others will follow. Leaders define a model for behavior--both in terms of how work in that role should be done and in how people in other roles should be treated. This also applies to group managers. The behavior of person managing all of the programmers and testers will define the rules of behavior for everyone else in the organization.
To improve on relationships between testers and programmers, the respective leaders need to take responsibility for the situation, prioritizing it well against more technical kinds of work. Forwarding articles like this one around can help bring light to the problems. But real improvement can only come when leaders step forward, openly acknowledge the problem, and bring people in from both sides to create a collaborative plan for how things must change.
Scott Berkun is the best selling author of The Myths of Innovation, and Making Things Happen. His work as a writer and public speaker have appeared in the The Washington Post, The New York Times, Wired Magazine, Fast Company, Forbes Magazine, and other media. His many popular essays and entertaining lectures can be found for free on his blog at Scott Berkun.
Return to the Mac DevCenter
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 12 of 12.
-
xp?
2005-07-19 22:19:24 MurrayBoyd [Reply | View]
Back before XP I would have thought this was a great article.
-
Thanks for the article..
2005-07-12 13:13:13 lwdupont [Reply | View]
As a mac developer, I appreciate this diversity (despite some other posters). Figured I should be one of those who says "great article", bring more of them on.
I actually like the one spot to get mac developer articles, as well as general development techniques/processes articles.
Lucien
-
I do not get it?
2005-07-09 02:40:57 Oyku [Reply | View]
First I've skimmed through the article to see any blue text that'd supposedly take me to Xcode related project management info but that was not happening. Then I read the article. Pretty good one. No objection, but I'm still scratching my head to understand what does it have to do with Mac and development ? -
RE: I do not get it?
2005-07-09 08:57:26 Derrick Story |
[Reply | View]
Hmmm.... As editor for the site, I thought this was an interesting article about software development. Plus, the concepts that Scott discuss seem to apply to nicely to project management in general. And finally, this is a site where I tend to get feedback from the developers, so I could determine how folks like these types of pieces. I take it that you vote "no." -
I vote "Yes"
2005-07-10 00:01:38 JanSchenkel [Reply | View]
While I understand some of the sentiment that this does not necessarily belong on a Mac-focused site for developers, I think it is very important for programmers to keep an open mind and learn about other aspects of their job.
Granted, this information could be found elsewhere, but I'm happy to see (links to) articles that help broaden my perspective -- especially in areas that all too often pile stress onto what is already a demanding line of work.
One of my habits is to skim a collection of websites to see if they've recently added any interesting stories. I'm sure my list could be expanded and corrected, but I also have limited time to digest all the information out there.
So I'm happy that MacDevCenter is one of the sites that goes the extra mile, as I like to do for my clients. And whether it's an article about XCode, RealBasic or Revolution, I always learn something new and interesting to apply in the future.
In short: please keep adding this line of articles, as it aims to help us all -- even if we're too busy to realize it right away.
-
And this has what to do with Macs?
2005-07-08 23:02:44 iconara [Reply | View]
Although it is an interesting subject, I cannot stop myself from thinking why the article was published on MacDevCenter, O'Reilly has a broad portfolio of sites in the O'ReillyNet, surely this belongs somewhere else?
MacDevCenter seems to me to have lost it's focus, not very much "Mac" and very little "Dev" anymore. -
And this has what to do with Macs?
2005-07-10 11:06:03 macartisan [Reply | View]
Although it is an interesting subject, I cannot stop myself from thinking why the article was published on MacDevCenter, O'Reilly has a broad portfolio of sites in the O'ReillyNet, surely this belongs somewhere else?"
- Have we as Mac developers, testers or designers been sprinkled with some kind of Magic Immunity Dust?
- Are our projects never susceptible to shortsightedness and petty squabbling?
- Do our applications grow magically out of the ground without error?
The plain fact of the matter is that creating software is a human activity, and gaining a few insights into how groups of humans interact will help you create better software on any platform.
More broadly, rejecting advice that doesn't apply to you today is a good way to run into trouble tomorrow. A programmer or tester who isn't interested in leading a big project -- becoming a project manager, in other words -- is always going to be dancing to someone else's tune. -
RE: And this has what to do with Macs?
2005-07-09 09:05:29 Derrick Story |
[Reply | View]
Why would Mac developers be less interested in project management than Java programmers (for example)? Granted, this article is "testing the water" to see if the Mac DevCenter audience wants these types of pieces. As with the previous poster, I think I can safely say that you do not. Fair enough.
As for your "not very much "Mac" and very little "Dev"" comment, I think if you scroll down the column of articles on the home page, you'll see that's just not true. -
RE: And this has what to do with Macs?
2005-07-11 04:03:20 jimothy [Reply | View]
If I'm understanding things correctly, it's not that Mac developers wouldn't be interested in this sort of article, but that non-Mac developers, who would also benefit, would likely miss the article because either they didn't see it at all, or that they dismiss it as Mac-specific article, so they don't read it.
Thank you for bringing this article to us. I'm sure there are plenty of non-Mac types would would also enjoy reading it. -
RE: And this has what to do with Macs?
2005-07-10 05:06:04 iconara [Reply | View]
but, fair enough, there's a lot of mac in there. -
RE: And this has what to do with Macs?
2005-07-10 04:51:56 iconara [Reply | View]
I'm not saying that we would be less interested, just that this isn't a mac topic, it's much broader than that. Had it been in the WindowsDevCenter I would most likely not have read it, since I wouldn't have seen it, or if I had, guessed that it had something to do with Windows.
On the dev-note: you mean "Inside Odeo", "Music Gadgets", "Going to the movies...", "Tweaking Tiger Mail", "Syncing iTunes", "Introduction to Tiger terminal, pt2", "Ten Powerpoint tips", seven of the last ten articles on MacDevCenter? Not very much dev there, wouldn't you say? As for the other three, one is this article, and the two other are more or less dev.
-
The hardest thing in engineering...
2005-07-08 18:18:50 nathan strange [Reply | View]
...is knowing if your answer is the right one. Too many engineers (software and otherwise) come out of school expecting that all they have to do is complete the work and someone else will grade it form them. Trouble is that it's not cost effective to hire a team of graders for every task.
Just being able to do difficult tasks isn't enough, real engineers need to know how to verify and test their work so that they can stand behind it. If you instill a culture of such engineering values, the cost of testing goes way down. And an engineer with such values will not be hostile to someone who finds flaws in their work, but grateful because finding such flaws is often harder than the work was originally.
Such values are common practice among engineers designing bridges and airplanes... disciplines where the cost of failure is human lives. If software engineers could make such values common practice, the cost of software development would decline dramatically while quality would increase.





