Whenever I think of cowboys, I think of free spirits, tanned, dusty loners riding their trusty steeds across the rugged vistas of the South-West. I think of self-sufficient men whose only visceral fears might be that of a warm bubble bath or a soothing MANicure. Basically, I think of The Magnificent Seven, minus the unfortunate Horst Buchholz.
When I hear the term "Cowboy Coder", I think of the smartass kid in high school who thought he knew more than the Comp. Sci. teacher and brought the whole school network down through some clever cocktail of arrogance and incompetence.
Whoah Cowboy!
While software development is one of the best careers for creative, independent thinkers (stay tuned for an upcoming blog entry on that very subject), it is not a place to exercise one's Lone Ranger sensibilities. Developing serious software is generally a team effort (just don't tell Chris Sawyer). When managing a software project and the various rough characters that make up a team of developers, it is important to put in place a development process that leverages the strengths of the many while smoothing out the inevitable friction their individual efforts will cause.
As defined in The New Dictionary of Cultural Literacy, "Too many cooks spoil the broth" means that "When too many people work together on a project, the result is inferior." (Ask Microsoft about that one.) In other words, even with the best of intentions, it is possible for a skilled developer to write code that will "break" someone else's code. In fact, you can pretty much expect it. (When one developer does this repeatedly, he's likely gone off and become a Cowboy Coder.)
So how do you give free reign to your developer's creativity while ensuring that their individual efforts don't slow down the progress of the whole?
When I hear the term "Cowboy Coder", I think of the smartass kid in high school who thought he knew more than the Comp. Sci. teacher and brought the whole school network down through some clever cocktail of arrogance and incompetence.
Whoah Cowboy!
While software development is one of the best careers for creative, independent thinkers (stay tuned for an upcoming blog entry on that very subject), it is not a place to exercise one's Lone Ranger sensibilities. Developing serious software is generally a team effort (just don't tell Chris Sawyer). When managing a software project and the various rough characters that make up a team of developers, it is important to put in place a development process that leverages the strengths of the many while smoothing out the inevitable friction their individual efforts will cause.
As defined in The New Dictionary of Cultural Literacy, "Too many cooks spoil the broth" means that "When too many people work together on a project, the result is inferior." (Ask Microsoft about that one.) In other words, even with the best of intentions, it is possible for a skilled developer to write code that will "break" someone else's code. In fact, you can pretty much expect it. (When one developer does this repeatedly, he's likely gone off and become a Cowboy Coder.)
So how do you give free reign to your developer's creativity while ensuring that their individual efforts don't slow down the progress of the whole?
Continue reading Reining in the Cowboys: Continuous Integration.
