Agile Methods For Product Development
There are twelve core principles that the various Agile methods all have in common. The ways in which each method carries out the principles vary sometimes considerably, but the common philosophy is:
1. The top priority is to satisfy the customer through early and frequent delivery of valuable software – valuable software early
2. Deliver working software frequently, from a couple of weeks to a couple of months – frequent releases
3. Working software is the primary measure of progress – software matters more than documents
4. Welcome changing requirements, even late in development – listen and learn rapidly
5. Business people and developers work together daily through the project – intense collaboration
6. Build projects around motivated individuals – give them the environment and support they need and trust them to do their job.
7. The most efficient and effective method of conveying info to and within a development team is through face-to-face conversation
8. The best architectures, requirements and designs emerge from self-organizing teams – agile architectures; good ideas from anywhere
9. Continuous attention to technical excellence and good design enhances agility –refactor3 frequently
10. Agile processes promote sustainable development – should be able to maintain a constant pace indefinitely – no death marches
11. Simplicity is essential – less is more
12. At regular intervals, the team reflects on how to become more effective, and then adjusts its processes accordingly – post-mortems