I am constantly amazed at the misconceptions that most people have regarding what agile is and how it is used. Often times when I bring up the topic of agile, people immediately start talking about “Scrum” and how they like it or not; or whether it can be used on big projects or not.
Agile is hard to pin down as it’s somewhat of a moving target so I have written this article to provide a short overview to those people interested in understanding what Agile really is.
Most people view “Scrum” as agile, and while sometimes a few people may mention concepts from “Lean” or “eXtreme Program” like Kanban boards, pair programming or test driven development, generally people think Scrum is agile.
However, agile is much bigger then Scrum. For example take a look at the diagram below.
Agile really is about “delivery value by satisfying the customers needs by frequently delivering working software and quickly responding to change”.
Most agile teams welcome changing requirements if it helps the customer’s competitive advantage. And, by frequently, we mean from a couple of days to a couple of weeks using a face-to-face mean, as its often the most efficient and effective method of conveying information.
The key is most times, “the customer doesn’t know what they want”, so course of development ideas will flow which will cause customers to change their minds. Therefore, if you want to deliver customer satisfaction you must respond to change.
In summary, here are four main benefits of agile, (if done correctly!)
- Delivers the Right Solution – agile helps the team, users and other stakeholders to align with the right people to deliver the solution that the business actually needs
- Accelerates Delivery – agile shortens the development cycle and provides incremental value by using a set of short time-boxed iterations to get to the right solution faster
- Increases Flexibility – agile reduces the upfront investment by creating a more efficient IT development process which helps maximizes return on investment (ROI)
- Reduces Risk and Increases Quality – agile provides users, managers and stakeholders with greater stakeholder visibility and more granular control