What makes Agile Software Development methods different from Traditional Software Development methods? There are the obvious answers related to different techniques used, e.g. early integration rather than late integration or dividing the problem space from the client perspective (user stories) rather than the technology perspective (client-middleware-database). But essentially the major difference is in the mindset.
The main distinctive feature about Agile, in my opinion, is that people and teams are empowered. User stories instead of detailled use cases is a good example of empowerment. In many ways, Agile reminds me of “mission-type tactics“.
If you have not heard of mission-type tactics it works like this: Military commanders give orders in the form of goals e.g. “defend this bridge for at least eight hours so that I can securely move blue batallion over it“. The opposite, if you like, of mission-type tactics is “command-and-control“. In command-and-control the orders would be more like “setup a checkpoint at this bridge, contact me if anyone tries to cross it”.
Transforming to Agile is difficult when it goes beyond single teams. So is transforming to mission-type tactics. In a report, two US armed forces officers suggests using mission-type tactics specifically for information warfare.