Common reasons for agile project failure
The reason the codebase has got into a mess is because we failed to execute on important principles such as:
- Take account of coupling and cohesion.
- Be clear about people's roles and responsibilities to avoid unqualified or inappropriate decision making.
- Clarity and simplicity of roles and responsibilities in design elements.
- Maintain modular, well-isolated code and conceptual integrity.
- Avoid shared data-schemas or integration via the database.
- Make the software testable and maintain the tests.
- Select technology based on appropriate design work.
- No broken windows.
- Track and maintain appropriate metrics.
- Review projects to identify and disseminate useful lessons to developers, architects and customers.
- Account for the operational aspects of our software in requirements and design.
- Review to ensure code aligns with appropriate design principles.
- Surface, balance and mitigate risks.
Get general engineering practices (back) into software development! Now!
Reference: http://www.dancres.org/blitzblog/2008/12/02/remodelling/