Values

Remember, both sides are important.

Individuals and interactions over processes and tools

Valuing individuals and interactions over processes and tools should pervade everything we do. The people are more important than anything, and the tools and processes we use should be good for the people and should facilitate their interactions.

Imposed Processes

We should probably never impose a process on our teams. Perhaps we do need some kind of consistency across our organization, but imposing the process is a very questionable way to get the consistency. If we must impose a process, it should be the lightest possible process. Frankly, I doubt that imposing process is ever really necessary.

Cross-functional Teams

Sometimes, teams are structured so that team members need to interact frequently with people on other teams. Sometimes the organization doesn’t have enough people with a particular set of skills, and teams need to draw on expertise from specialist groups. Sometimes one team hands off work to another team, commonly a testing group.

All of these slow you down. They’re not good for the organization, and they’re not good for the people. Careful attention to what gets in the way of people interacting quickly and smoothly helps us see that our best strategy is usually to build teams that are self-contained, including all the skills needed to produce what we’re asking them to produce.

Remove Impediments

Often, our official processpag – or the unwritten rule book – interferes with getting work done. By observing the interactions between the team members, we can see these impediments and remove them. There are many possibilities. A few include time-consuming administrative work, slow access to needed facilities, and poorly-arranged workspaces.

For high quality and rapid development, there should be nothing in the way of our people working together to get things done. Pay constant attention to ensuring that individuals can interact effectively.

Working software over comprehensive documentation

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Working software is the primary measure of progress.

Customer collaboration over contract negotiation

Responding to change over following a plan

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.

In-person Communication

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.