Agile - What? Why? How?
Anyone involved in project management has heard about Agile, but if you are new to the concept, rather than just nod along, it is important to understand just what Agile is, why it is something you should be using, and how you can start to adopt it. Before we get into the detail of Agile projects, first we need to explain just what Agile is.
What is Agile?
Agile is a process that helps teams react to changes during project development quickly and seamlessly. It encourages collaboration within the team, focusing on incremental execution of development targets. In this, it encourages teams to adapt to new challenges as they emerge, creating faster overall development with a streamlined workflow.
The ultimate goal of an Agile process is to deliver high-quality output with the minimum of input.
Both in terms of customer expectation and development demands, industry has evolved rapidly in the last decade. End users do not accept problems or delays, a small problem can quickly escalate into a brand destroying challenge.
However, at the same time, development time is being cut drastically, new products must reach market in record time to stay ahead of the competition. In this new paradigm, traditional development simply cannot produce the results needed, with in terms of time to market or extensively tested quality.
Agile is designed to enable teams to deliver faster development and react to challenges and changing requirements throughout the development process. It allows teams to leverage their technical skills more efficiently, and deliver new iterations quickly, producing high-quality outcomes while maximizing the efficiency of resource use.
How does Agile achieve this?
In traditional development within the IT industry, a vertical model I used. Here the starting point is the project requirements, incorporated into the design phase, which then moves to the implementation phase, followed by verification and ending in the maintenance phase.
However, if requirements are not adequately quantified, or more commonly, change during development, then the end product would either lack some features, of have features that were no longer needed. This results in the maintenance phase being expensive and long-lasting and new features have to be added or others removed after development finishes.
Agile development overcomes this by building in flexibility throughout the project timeline. Here, just three phases are used:
- Inception – identifying requirements, building the team, gathering input from all stakeholders and establishing the development and testing processes to be used.
- Development – The key phase of any Agile development. The product is built, tested, delivered and then improved gradually through iteration. The target here is to deliver a workable version of the product, and then build on that through fast iteration. Testing is carried out alongside development for fast response to changes, while new requirements can be added rapidly during the ongoing iteration process without initiating an expensive and extensive new development process.
- Delivery – Once the product has achieved the goals all stakeholders have agreed, including changes through the development process, it can be deployed in the production environment and handed over to client support teams.
Agile offers exceptional performance for modern product development, enabling teams to deliver fast, effective development of high-quality products.