This article covering Beautiful Teams by Scott Berkun explains how ugly software development can get:
Pop quiz: given the choice between two job candidates, one a prodigy with a perfect 4.0 GPA and the other a possibly brilliant but "selectively motivated" 2.7 GPA candidate (two As and four Cs), who would you hire? All other considerations being equal, we'd all pick the "beautiful," perfect candidate.
No one gets fired for hiring the beautiful candidate. What could be better, or more beautiful, than perfect scores? If we go beneath the superficial, perfect grades often mean the perfect following of someone else's rules. They are not good indicators of passionate, free-thinking, risk-taking minds. More important is that a team comprising only 4.0 GPA prodigies will never get ugly.
They will never take big risks, never make big mistakes, and therefore never pull one another out of a fire. Without risks, mistakes, and mutual rescue, the chemical bonds of deep personal trust cannot grow. For a team to make something beautiful there must be some ugliness along the way. The tragedy of a team of perfect people is that they will all be so desperate to maintain their sense of perfection, their 4.0 in life, that when faced with the pressure of an important project their selfish drives will tear the team apart.
Beautiful people are afraid of scars: they don't have the imagination to see how beautiful scars can be.
And if you haven't witnessed this ugliness first hand.... together, as a unified team, are you really as closely knit a team as you think you are? Just a little something to think about.
(And here's a BIG FAT thank you if you've worked with me through this ugliness and have stuck around.)