The 12 Agile principles

User satisfaction

Satisfy the customer through early and continuous delivery of valuable software.

Welcoming change

Accept and integrate changes, even in advanced stages of development, to ensure a competitive advantage for the customer.

Frequent delivery

Frequent delivery of working software (preferably within short timeframes, days, or weeks).

Continuous collaboration

Business and developers must work together daily throughout the project.

Motivated people support

Build projects around motivated individuals, providing them with the support, tools, and autonomy to get the job done.

Face to face communication

The most effective method of conveying information within a team is direct conversation.

Working software

Progress is measured through working software.

Agile focuses on operational and customer-usable functionality as an indicator of progress.
Avoid false perceptions of progress (e.g., only code developed but not tested or integrated).

Keep a steady pace

Agile promotes sustainable development, where sponsors, developers, and users can maintain a constant pace indefinitely.

Excessive pace leads to burnout, reducing quality and morale.
Realistic goals ensure consistent, high-quality productivity.

Technical excellence

Continuous attention to technical excellence and good design improves agility.

Avoid shortcuts that can cause errors or require additional work in the future.
Design and technical quality are key to ensuring long-term success.

Simplicity

Focus only on activities that add value.
Avoid unnecessary complexity.
Simplicity improves efficiency and value, working smarter.

The art of maximizing undone work is essential.

Self-organized teams

The best requirements and designs emerge from self-organizing teams.

Autonomous and motivated teams produce better solutions.
Agile promotes horizontal management, promoting autonomy and collective ownership.
This approach speeds up decisions and increases effectiveness.

Reflect and Adapt

The team reflects regularly to become more effective and adapts its behavior accordingly.

Continuously reviewing processes and priorities improves flexibility and efficiency.
Analyzing situations such as Bill’s unmet expectations can improve management of future requirements.