What Is Agile?

Agile is a set of methods and methodologies that help your team to think more effectively, work more efficiently, and make better decisions.

These methods and methodologies address all of the areas of traditional software engineering, including project management, software design and architecture, and process improvement. Each of those methods and methodologies consists of practi‐ ces that are streamlined and optimized to make them as easy as possible to adopt.

Agile is also a mindset, because the right mindset can make a big difference in how effectively a team uses the practices. This mindset helps people on a team share infor‐ mation with one another, so that they can make important project decisions together —instead of having a manager who makes all of those decisions alone.

An agile mindset is about opening up planning, design, and process improvement to the entire team. An agile team uses practices in a way where everyone shares the same informa‐ tion, and each person on the team has a say in how the practices are applied.


Understanding Agile Values

Agile, as a movement, is different from any approach to software development that came before it, because it started with ideas, values, and principles that embody a mindset.

It’s through the lens of these ideas that you can begin to become more agile as a practitioner, and more valuable as a member of your project team. The agile movement is revolutionizing the world of software development. Teams that adopt agile have consistently reported improvements—sometimes huge leaps— in their ability to build great software. Teams that successfully adopt agile build better, higher quality software products, and they do it faster than before.

Agile has gone from being the underdog to becoming an institution. For the first few years of agile, people adopting it strug‐ gled to convince theCir companies and teammates that it worked, and that it was worth doing. Now, there is little question that agile development is a highly effective way to build software.

In fact, in 2008, an important survey1 found that more than half of all software teams surveyed were using agile methodologies, practices, or prin‐ ciples—and agile has only grown since then. And agile teams are increasingly going beyond the problem of how to be agile themselves, and are starting to figure out how to spread agile development throughout their companies.

The 12 Principles of Agile Software

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes har‐ ness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  5. Businesspeople and developers must work together daily throughout the project.
  6. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.


IMPLEMENTING AGILE

START WITH AN AGILE MINDSET The answers to the following questions will help to develop an implementation strategy:
  • How can the project team act in an agile manner?
  • What can the team deliver quickly and obtain early feedback to benefit the next delivery cycle?
  • How can the team act in a transparent manner?
  • What work can be avoided in order to focus on high-priority items?
  • How can a servant-leadership approach benefit the achievement of the team’s goals?

SERVANT LEADERSHIP EMPOWERS THE TEAM

Agile approaches emphasize servant leadership as a way to empower teams. Servant leadership is the practice of leading through service to the team, by focusing on understanding and addressing the needs and development of team members in order to enable the highest possible team performance.

The role of a servant leader is to facilitate the team’s discovery and definition of agile. Servant leaders practice and radiate agile. Servant leaders approach project work in this order: uu Purpose. Work with the team to define the “why” or purpose so they can engage and coalesce around the goal for the project.

The entire team optimizes at the project level, not the person level. uu People. Once the purpose is established, encourage the team to create an environment where everyone can succeed. Ask each team member to contribute across the project work.

Do not plan on following the “perfect” agile process, but instead look for the results. When a crossfunctional team delivers finished value often and reflects on the product and process, the teams are agile.It does not matter what the team calls its process.