Software Quality News posted an interview with Alistair Cockburn regarding Agile and how it has been implemented (or not) by companies since the creation of the manifesto. I really like the interview, but the thing that really hit a nerve with me was one of his top ten ways you can tell you are NOT doing Agile. Number 9 is as follows:
They have itty-bitty requirements on the order of “here’s what happens when you click here,” but they don’t have long-term vision for what they’re trying to accomplish.
This reminds me of a discussion we had in the last the CTO Peer to Peer regarding how some groups expect their architecture to “emerge” from their agile processes, so they rationalize that there is no need for formal architecture in the project.
I believe these are all-too-frequent rationalizations when people attempt to adopt an Agile methodology. Since Agile de-emphasizes documentation, people jump on the cowboy mentality bandwagon, and begin coding without ANY documentation, hoping that their architecture, and their “big picture” system, will slowly emerge from the clouds as their project comes together.
This is a recipe for disaster. If anyone tells you that because you are “doing Agile” you cannot document the big picture or design an over-all architecture, that is a clear indication that this individual doesn’t really understand the Agile methodology.
Jumping into solution space and writing code before you have a well-defined architecture and big-picture goal is like taking off in an airplane before you have a flight plan.
Using agile methodologies in this environment will only help you get the wrong solution released faster.