- Agility is a mindset, not a process. You have to think and live this way. You can’t write it out.
- You do the same types of work in an agile process, but you do them differently, and that’s important. Instead of trying to get the requirements done before you work, your work reveals the requirements iteratively. The requirements and the documentation of the work are both captured in the final product.
- Agility is not one thing or approach or process. It is agility. It is an adaptable approach that tailors itself to its purpose.
There are other hallmarks of agile development compared to waterfall development. Of these, the hallmark I always watch for is that in agile development, late requirements are viewed as a good thing and are embraced — you revealed an insight that you found before you went live, and probably one vital to the success of the project. In waterfall development, a late requirement is viewed as a failing and resented.
In agile development, the final product is the goal, which means that the connection with the user is the measure of success. Too often, waterfall development processes lose sight of the reason the project was undertaken — meeting a user need. Instead, a process is enshrined, and the completion of the work as specified is immunized from user interference.
Agile development isn’t appropriate for every project. But in a world in which more and more things are built like software (coded, versioned, iterative by nature, and independent of hardware), agile development is vital to success.