We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to 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
We follow these principles:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity--the art of maximizing the amount of work not done--is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
- Kent Beck
- Mike Beedle
- Arie van Bennekum
- Alistair Cockburn
- Ward Cunningham
- Martin Fowler
- James Grenning
- Jim Highsmith
- Andrew Hunt
- Ron Jeffries
- Jon Kern
- Brian Marick
- Robert C. Martin
- Steve Mellor
- Ken Schwaber
- Jeff Sutherland
- Dave Thomas
`Individuals and interactions > processes and tools
----------------------------
Working software > comprehensive documentation
----------------
Customer collaboration > contract negotiation
----------------------
Responding to change > following a plan
--------------------
`
.split('\n')
.filter(l => l.length && l[0] !== '-')
.map(l => l.replace(' > ', ' over '))
.forEach(l => {
const parts = l.split(' over ');
console.log(parts[0].toUpperCase());
console.log(' '.repeat(parts[0].length-2) + 'over');
console.log(' '.repeat(parts[0].length) + '"' + parts[1] + '"');
});
INDIVIDUALS AND INTERACTIONS
over
"processes and tools"
WORKING SOFTWARE
over
"comprehensive documentation"
CUSTOMER COLLABORATION
over
"contract negotiation"
RESPONDING TO CHANGE
over
"following a plan"