XP says that developers should have courage. What is courage?
Courage is following a course of action when the level of knowledge and certainty are low, especially when it is anticipated that the outcome can have significant negative impact. i.e. Entering a project with a high level of risk and taking the personal responsibility for its delivery regardless.
Bravery is continuing with a task when the level of risk increases significantly to the extent that personal success is likely to be unlikely.
XP suggests that Test Driven Development allow a developer to act with courage. The developer will be able to change software without breaking it because the automated tests will identify any bugs entered into the software. This is not courage ! The risk of failure has been removed by the automated tests. It is the equivalent of a modern army attacking a primitive army on an open battlefield.
An army using automated weapons, tanks and helicopters against an army holding spears does not require bravery.
Telling clients that XP allows developers to act with courage (i.e. Accept high risk) is the wrong message. The developer almost never takes on the true risk of failure. When a client hears "I am prepared to take on more risk than anyone else", they mentally add "at my expense". The client imagines a bunch of loose cannons and cowboys tiliting at windmills.
Telling clients that (Automated) Test Driven Development removes the risk of change to existing software creates a much more powerful message. I am a coward, but I will still win.
Who would you want on your side? A brave loose cannon, or a coward who guarantees delivery?
Posted by chrismatts at June 22, 2003 5:45 AMAgree completely. The current "brave" developers are the ones that say "that should work" and don't prove it. These are also the people I *hate* having on my team.
Posted by: Darrell at October 8, 2003 8:34 PM