Home Contact us
Agile
Agile Values and Principles Why Go Agile Dispelling the Myths
Home » Agile » Agile Values and Principles

Agile Values and Principles

Agile development is an umbrella term for a number of iterative and incremental software development methodologies, such as Extreme Programming (XP), Scrum, Crystal, Feature-Driven Development (FDD), and some others.

Unlike traditional software development methods, agile development processes put the focus of all software stakeholders (i.e., programmers, testers, writers, customers, managers, and executives) on the incremental delivery of working, tested software. With agile, all aspects of software development—planning, analysis and design, development, integration, testing, etc.—are combined in short, frequent iterations, with each iteration serving as valuable input into subsequent iterations.

The entire Agile paradigm is best summed up by the document known as The Agile Manifesto (http://agilemanifesto.org).

Agile approach Traditional approach
Individuals and interaction  Processes and tools 
Working software  Comprehensive documentation 
Customer collaboration  Contract negotiations 
Responding to change Following a plan

The proponents of Agile methods say that while they recognize the value of the items on the right, they believe the items on the left to be more valuable.

The two most important characteristic of Agile are the following:

Adaptive rather than predictive
Traditional methodologies tend to try to plan out a large part of the software process in great detail for a long period of time, which work well until requirements change. So the nature of the traditional approach is to resist change. The Agile methods, however, welcome, adapt to, and thrive on change. A client's priorities can (and in most situations will) shift during the life of the project, and so will the requirements. The Agile methods provide the processes and means to allow clients to change their minds, stay competitive and still get high quality, working software.
People-oriented rather than process-oriented
Traditional methods seek to define a process that will work equally well regardless of who is using it. Agile methods assert that no process will ever make up the skill of the development team, and that people are the ultimate source of value in software development. Therefore, the role of a process is to support the development team in their work.

The principles and practices that follow from the core Agile values have helped thousands of organizations around the world dramatically improve the ROI on their software development activities.

Here are some of these principles:

  • The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Working software is the primary measure of progress.
  • Agile teams 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.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.