On Fads and Attitude Sunday, 31st October 2004
Agile Kiwi has written an article about the way some teams seem to be searching for a magic formula to solve their development woes. I think that he’s touched on something very important - that is more to successful software development than just finding the appropriate incantation to invoke a magic bullet.
My experience is that great developers don’t tend to need any methodology imposed upon them - they will already have adopted an internal discipline that works for them. Their self imposed approach will leverage their strengths and provide support for their weaknesses, helping them to deliver first-class software.
Conversely, the cowboys who give software developers in general such a bad name resist the imposition of any methodology at all, being content to slap anything together to “get the job done”. They deliver lip service where absolutely required, and genuine subversion when they can get away with it. The results are just what you expect - bloated, hard to understand systems with a myriad of bugs that always just limp along from crisis to crisis.
The key difference between these two groups isn’t one of intelligence or culture or choice of development tool.
It is much simpler than any of those.
The difference is their attitude.
Great developers know their own strengths and their own weaknesses.
They know the good and the bad about their tools, and they tend to listen carefully when someone espouses a new methodology. More than just the practices themselves, great developers look to the motivations behind the rules to identify the true value - and then they adopt what works for them.
Cowboys, on the other hand, tend to have a fundamental belief that the tool (for often there is only one) they know is the best solution to all problems.
They are often (intentionally) unaware of either the limitations of their tools or of their own understanding; they are content to continue doing what they have always done and getting what they have always got.
What’s your attitude as a developer? Does it help you work better, or does it get in your way? Really?