AGILE – What business executives need to know #2: Overview of 4 most commonly used Agile Methodologies
In the first article in this series we focussed on an overview of what Agile software development is and referred to the Agile SCRUM methodology to describe the agile principles.
Let’s recap – Wikipedia describes Agile Software Development as an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross functional teams and their customers / end users. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. For an overview see the first blog post…
Several agile delivery methodologies are in use for example: Adaptive Software Development (ASD); Agile Nodelling; Agile Unified Process (AUP); Disciplined Agile Delivery; Dynamic Systems Development Method (DSDM); Extreme Programming (XP); Feature-Driven Development (FDD); Lean Software Development (LEAN); Kanban; Rapid Application Development (RAD); Scrum; Scrumban.
This article covers a brief overview of the four most frequently used Agile Methodologies:
- Extreme Programming (XP)
Using Scrum framework the project work is broken down into user stories (basic building blocks of agile projects – these are functional requirements explained in an in business context) which are collated in the backlog (work to be done). Stories, from the backlog, are grouped into sprints (development iteration) based on story functionality dependencies, priorities and resource capacity. The resource capacity is determined by the speed (velocity) at which the team can complete stories, which are categorised into levels of complexity and effort required to complete. Iterations are completed with fully functional deliverables for each story until all the needed stories are completed for functional solutions.
Scrum is based on three pillars:
- Transparency – providing full visibility on the project progress and a clear understanding of project objectives to the project team but more importantly to the stakeholders responsible for the outcome of the project.
- Inspection – Frequent and repetitive checks on project progress and milestones as work progresses towards the project goal. The focus of these inspections is to identify problems and differences from the project objectives as well as to identify if the objectives have changed.
- Adaptation – Responding to the outcome of the inspections to adapt the project to realign in addressing problems and change in objectives.
Through the SCRUM methodology, four opportunities for Inspection and Adaptation are provided:
- Sprint Retrospective
- Daily Scrum meeting
- Sprint review meeting
- Sprint planning meeting
A Scrum team is made of a Product Owner, a Scrum Master and the Development Team.
Scrum activity can be summarised within the following events:
- Sprint – a fixed time development iteration
- Sprint Planning meetings
- Daily Scrum meetings (Stand-Up meetings)
- Sprint Review meetings
- Sprint Retrospectives
XP – EXTREME PROGRAMMING
Extreme Programming (XP) provides a set of technically rigorous, team-oriented practices such as Test Driven Development, Continuous Integration, and Pairing that empower teams to deliver high quality software, iteratively.
Lean grew from out of the Toyota manufacturing Production System (TPS). Some key elements of this methodology are:
- Optimise the whole
- Eliminate waste
- Build quality in
- Learn constantly
- Deliver fast
- Engage everybody
- Keep improving
Lean five principles:
- Specify value from the customer’s point of view. Start by recognizing that only a small percentage of overall time, effort and resources in a organization actually adds value to the customer.
- Identify and map the value chain. This is the te entire set of activities across all part of the organization involved in delivering a product or service to the customer. Where possible eliminate the steps that do not create value
- Create flow – your product and service should flow to the customer without any interruptions, detours or waiting – delivering customer value.
- Respond to customer demand (also referred to as pull). Understand the demand and optimize the process to deliver to this demand – ensuring you deliver only what the customer wants and when they want it – just in time production.
- Pursue perfection – all the steps link together waste is identified – in layers as one waste rectification can expose another – and eliminated by changing / optimizing the process to ensure all assets add value to the customer.
Kanban is focussed the visual presentation and management of work on a kanban board to better balance the understanding of the volume of work with the available resources and the delivery workflow.
Six general work practices are exercised in kanban:
- Limiting work in Progress (WIP)
- Flow management
- Making policies explicit
- Using feedback loops to ensure customer and quality alignment
- Collaborative & experimental evolution of process and solutions
By limiting WIP you are minimising waste through the elimination of multi tasking and context switching.
There is no prescription of the number of steps to follow but it should align with the natural evolution of the changes being made in resolving a problem or completing a specific peace of work.
It focuses on delivering to customer expectations and needs by promoting team collaboration including the customer.
A Pragmatic approach
These techniques together provide a powerful, compelling and effective software development approach that brings the needed flexibility / agility into the software development lifecycle.
Combining and borrowing components from different methodologies to find the optimum delivery method that will deliver to the needs of the organisation is key. Depending on the specific business needs/situation, these components are combined to optimise the design, development and deployment of the software.
A good overview of different agile methodologies can be found on slideshare at https://www.slideshare.net/SmartBizVN/introduction-to-agile-and-lean-software-development.
Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!