Why Implement Agile?

  1. Outweigh the costs:
    In today's fast-paced business environment, companies are constantly pressured to adapt to changing market conditions. Companies that produce software increasingly turn to agile development practices to help them stay competitive. Agile processes are highly collaborative, iterative and all focused on the rapid and repeatable delivery of software. Many practices, such as pair programming and regular retrospectives, may appear on their surface to slow teams down. However, the benefits to organizations of "going agile" far outweigh the costs

  2. Priorities Change:
    Agile organizations can more easily adapt their project portfolios due to changing business priorities. Agile projects deliver working software on a regular schedule, typically weekly or biweekly. The features delivered within each "iteration” is determined by the business, which will typically prioritize the highest value features first.

  3. Reduce the Risk:
    These practices combine to reduce the risk of shifting resources away from an agile project because there isn't much half-done work at any point, the work that is finished is high value, and the state of the project is always unambiguous.

  4. Learning and Responding to Customers need:
    The most important lessons you will get about your software will come from customers. Agile teams are able to get software into their hands quickly by only building just enough software to get valuable features delivered. Since agile teams are also experienced at delivering software on a frequent basis, your business can respond and deliver better software based on customer feedback.

  5. Focus on the customers:
    The whole team is responsible for determining who works on what and for tracking and reporting progress. Agile teams are also responsible for maintaining a high level of quality and verifying that everything that goes out actually works. This means that agile product owners can focus on their customers and market, rather than doing team management.

  6. Handle uncertainty:
    Teams change, employees quit, new hires come on and employees move between projects within an organization. Agile teams can handle changes to the team much more easily than non-agile teams. Pair programming, where developers work together at a single computer, is a key practice of many agile teams. Pairing quickly and effectively distributes knowledge and know-how across members. Agile teams also practice collective code ownership, where no single person has special rights to a particular part of the software. This means that losing a critical team member is much less of a risk for an agile project.

  7. Competitive by trouble shooting:
    Every organization and process has problems. Finding these problems and fixing them is critical to staying competitive. Detecting and eliminating issues in the development process is a central feature of agile development. Agile teams reflect on their work in regular retrospectives, as often as after every iteration, Teams zero in on problems that are slowing them down or making delivery unreliable. Since delivery cycles are short, new problems can be detected quickly before they can threaten the project and the organization.