Some notes on an article entitled “The Bottom Line”, by Robert C Martin, that appeared in the December 2003 edition of “Software Development”, p 42-44:
- Agile is a method for managing software projects.
- Managing a software project often involves more prayer than science.
- A project’s due date is driven by business needs rather than technical considerations.
- Decades of data have revealed that we are terrible at estimating development timescales.
- Managers would benefit from real data to manage a project by.
- Without real data, it is often too late to do anything about schedule slippage.
- The goal should not be to meet the original plan at whatever cost; instead, there is a need to continuouslymake management decisions to optimise a project’s outcome.
- If date is critical, manage scope and personnel.
- If feature set is critical, manage expectations about date.
- If budget is the deciding factor, manage content and date expectations to get most bang for buck.
- Agile methods can generate a continuous stream of data that lets managers make intelligent decisions to guide the project.
- Examples:
- Velocity Chart
- Story Points Chart
- Involve breaking projects into small parts.
- Often objected that this is not always possible, but experience suggests that it is.
- Automated tests reveal the extent to which a project is complete.
- Agile methods have been shown to provide reliable data.