Salesforce.com 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 salesforce.com 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: allaboutagile.com