Something that's always slightly bemused me is that software development
methodology is something you never seem to hear discussed in organizations whose business is technology. Sure, product companies are certainly very interested in practices and tools to support good practices. (For example, product companies certainly care about testing practices.) But technical practices are kinda orthogonal to methodology debates. And I never hear about a company like Red Hat paying any attention at all to the latest fashions sweeping through the world of
agile consultants and
project managers. In fact, I'd be very interested to hear of a single example of a truly great software product that was developed (at least initially) according to a methodology.
I have a number of theories as to what the difference might be, but I'm not sure which, if any, of those theories are correct:
- arguments about methodology help keep especially boring projects interesting
- methodology is important in an environment where developers are viewed as interchangeable resources
- methodology is important in an environment where developers have heterogeneous ability/experience levels
- methodologies like
agileare used by project teams to defend themselves against ignorant managers
- good product companies just naturally do agile-ish stuff without really needing to think about it (or, if they don't, they die)
- methodology helps achieve predictability, but gets in the way of innovation
What I'm most interested in is why companies buy into this stuff without any real evidence that any of it is used by companies which are able to repeatedly build successful and innovative software. Or, does such evidence exist and I'm simply too disconnected from this world to know about it?
If this post sounds like snark, it's not. I'm actually genuinely interested...