The following are some practices used on agile projects and the problems that can arise. Click on each link for more information.
- Frequent changes to the requirements are welcome
- No up front design
- Short iterations
- Developers work in pairs
- Developers move around to different areas of the system
- Collective team ownership of the code
- The unit test is written first
- All acceptance tests must be run before checking code into the repository
- Incremental integration
The following links may be of interest to developers or managers considering using extreme programming or another agile methodology:
- Out of over 200 survey participants, we received only four detailed comments describing success with Agile.
- Overwhelmingly, 40% of participants that use Agile did not identify a benefit.
- Survey participants report that developers use the guise of Agile to avoid planning and to avoid creating documentation required for future maintenance.
- Be aware that the Agile movement might very well just be either a developer rebellion against unwanted tasks and schedules or just an opportunity to sell Agile services including certification and training.
- We received some unprecedented scathing and shocking comments about the level of competence, professionalism, and attitudes of some members of the Agile movement.
In summary, not all agile methods use all of the practices described above. But, the main practices that defines a project as agile are short iterations and incremental deliveries. The problem with these practices is that it turns the project into a maintenance project early on and requires one or more developers to revisit the code multiple times as each new feature is implemented. This is very inefficient because there is too much overhead.
There is a better way to run a software project with Efficient Software Development Methodology Practices.