Originally posted by Klaus Meucht:
The main advantage is that Agile Teams are always open for changes.
Developing software is a learning process. The programmers have to learn about the business domain, the customers have to learn how the technology changes the workflows.
With traditional software engineering process the IT-Team gathers the requirements at the beginnig of the developement process. They are afraid if they miss one requirement, they won't get the best design. Traditional software engineering doesn't consider that learning process. They don't expect that the requirements will change over time.
Agile Teams, know that it is impossible to gather all requirements at the beginning. They try to write their software in such way, that it is always open for changes. They try to benifit from the learning process. They give the customer the chance to intervene in the developement process at every time of the developement process.
Agile teams are not such dependent on individual employee's like traditional teams. They don't seperate people in gathering requirements, design the software and testing. Every programmer is involved in testing (testing is part of programming), and is involved in understanding the business domain. The communication among the members of agile teams, and between the team and customer, is much higher as in traditional teams.
Agile teams hate solutions, that only a few people can understand and maintain - they try always to find the easiest design. The knowledge is not concentrated to only a few key-players. The iteration cycles are very short, a team member shows daily his work to his team. Often they do their work in pairs, and change their pair partner frequently. If one team member has difficulties doing his work, the team realizes it very soon and can help him. Because agile teams works very tightly together, beginners will learn very quick from experience people.
Please excuse my English. It is not easy to learn it.
Originally posted by Stan James:
I'm interested that nobody has suggested that large projects get done sooner or that agile is somehow faster. I'm not sure it is.
Agile often has pair programming and the expectation or acceptance of some rework and refactoring to meet emerging requirements.
Ilja, say I have a relatively stable set of requirements specified by new regulations. Would you promote Agile to me for getting done sooner?