and Agile Development

Agile-Development-DiagramAgile development is uncovering better ways of developing software by doing it and helping others do it. We find these principles apply perfectly to development.

Through this work we value:

Individuals and interactions over Processes and tools
Working software over Comprehensive documentation
Customer collaboration over Contract negotiation
Responding to change over Following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Individuals and interactions: self-organization and motivation are important, as are interactions like co-location and pair programming.
Working software: working software is more useful and welcome than just presenting documents to clients in meetings.
Customer collaboration: requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
Responding to change: focus on quick responses to change and continuous development.

From these basic principles, we deduce:

1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level; lightweight & visual
5. Develop small, incremental releases and iterate
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project lifecycle – test early and often
10. A collaborative & cooperative approach between all stakeholders is essential

For more about Agile development, go to the source: