What is Agile?
Agile refers to an iterative, incremental method of managing design and implementation activities that aim to provide new product or service development in a highly flexible and interactive manner. It is a process of making decisions based on the realities observed in the actual project. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement.
Why are Agile methods beneficial?
Agile methods are focused on quick responses to change and continuous development to better address project needs. By delivering working, tested, deployable software on an incremental basis, agile development delivers increased value, visibility, and adaptability much earlier in the life cycle thereby significantly reducing project risk. Some of the major benefits of this approach are:
- Visibility: Agile development principles encourage active user involvement throughout the product’s development and a very cooperative collaborative approach which provides excellent visibility for key stakeholders.
- Quality: A key principle of agile development is that testing is integrated throughout the implementation lifecycle there by enabling regular inspection of the working product. This allows the product owner to make adjustments if necessary and gives the product team early insight of any quality issues.
- Predictable Delivery: New features are delivered quickly and frequently, with a high level of predictability.
- Transparency: Everyone involved on an agile project knows what’s going on and how the project is progressing.
- Change and Adaptation: Adjustments can be made quickly to minimize problems. While the team needs to stay focused on delivering agreed deliverables, there is provision to constantly refine and reprioritize the overall product backlog.
- Customer Satisfaction: The active involvement of a user representative and/or product owner, the high visibility of the product and progress, and the flexibility to change when change is needed, create much better business engagement and customer satisfaction.
Prominent Agile Implementation Approaches:
There are various prominent Agile implementation approaches. Two of the major approaches are:
- Scrum: Scrum is an Agile methodology where product features are delivered through a series of short time-bound sprints that usually span between two to three weeks. Each sprint results in a small piece of tested and working product. Features from product back log are prioritized in each sprint for delivery. A scrum master ensures that there is a daily meeting to keep track of progress and features are scheduled to be delivered within the sprint time frame. At the end of each sprint there is also retrospective to learn from the sprint and plan for the next sprint.
- Kanban: Kanban provides a visual system which aids decision-making about what, when and how much to produce. The work of all Kanban teams revolves around a Kanban board, a tool used to visualize work and optimize the flow of work among team members. This Kanban board also facilitates all blockers and dependencies to be immediately identified and resolved. In the Kanban approach, change can happen at any time where as in the Scrum approach, changes are not encouraged during the sprint. Also, Kanban does not have a time bound sprint and features are released as soon as they are ready.
Some of the other Agile approaches include:
- Extreme Programming (XP )
- Dynamic Systems Development Method (DSDM) and
- Lean Software Development
If you require expertise for project delivery using an Agile approach, contact us at firstname.lastname@example.org
*References: Wikipedia, Benefits of Agile Software Development by Segue Technologies