Avoid massive releases.
It always takes longer than you expect, even when you take into account Hofstadter’s law.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
The best architectures, requirements, and designs emerge from self-organizing teams.
Simplicity — the art of maximizing the amount of work not done — is essential.
Continuous attention to technical excellence and good design enhances agility.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Working software is the primary measure of progress.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.