Jeremy D. Miller has posted a train of thought that includes an interesting section on a prevalent attitude towards things like TDD, IoC, MVP and other practices and patterns that can be used to improve the quality of software (aka ALT.NET). I have quoted the relevant sections here, as it is an attitude I have faced on many occasions, and it’s nice to share the pain. :-)
This idea that things like TDD/DDD/ORM/IoC/Continuous Integration/Test Automation or whatever else is just academic hot air or merely shiny toys for the alpha geeks really worries me. I frequently see somebody say something like “we’re too busy solving business problems to spend time on this ivory tower [crud].” It’s a self-defeating attitude. It’s the I don’t have time to sharpen the saw, I’m too busy chopping wood! syndrome.
Do you know what’s a really big problem that impacts the business? Technical debt. Code and software ecosystems that are hard to maintain and change. If I can create an enterprise system that is easy to change, I’ve opened up more opportunities for the business to ask for more functionality. If I write code that’s hard or risky to change, I’ve closed off opportunities to the business. All of the acronyms listed above are techniques that people are developing and using in an attempt to create code more efficiently with better qualities for maintainability. Maintainability is crucial for your ability to keep delivering value to the business over anything but very short timelines. Think on that Mr. “I’m too busy delivering business value.”