Do people misunderstand agile development? What are the common pitfalls/misconceptions?
Brian: They say: It’s agile, so I dont have to write documentation. Hans Wegener has a diagram that maps technology upheaval and domain upheaval to various processes. The idea is that a stable domain with a stable technology base supports a more process-heavy approach, like CMM. So for example, people in the aerospace industry or the defense industry know what they are doing and what their goals are. (That is, the domain is stable.) The programming language and platform is chosen for them, so the technology is also stable. In such situations, a process-heavy approach can help. If the domain is stable, but the technology comes and goes, then model-driven architecture may be best. You can model the domain and then spit out technology in Java, in C#, in C++, and so on. The technology can change but the domain does not. Agility really fits in when the technology is somewhat stable and the domain is not so stable. Agile development started in the Java world where there isn’t too much techno