In the previous article, we reviewed the journey from early formation of traditional approaches (and Waterfall as their most prominent framework), and the accelerated yet incremental changes that brought us to the age of Agile.
In this article we want to go through a compact, yet high impact review of Agile and Scrum (as its most popular framework).
In order to appreciate the core elements of Agile, we need to first do a quick review of Waterfall’s key shortcomings that Agile addresses.
Why Waterfall has left a long trail of failure behind?
Because Waterfall is slow to deliver, as it needs to finish one step completely and pass the gate setup right after that step, before it can go to the next step, and the time spent can mount up to several month – sometimes years – before the product can enter the market.
Because Waterfall is not designed to quickly respond to changes in the market (trying to change anything mid-project means re-doing everything that was done up to that point!)
In one sentence: Waterfall runs a high risk of missing the market opportunities or providing a product no longer matching what market is looking for.
What is Agile?
In one sentence: a new approach to Deliver Value to Customers Faster and Minimize Paperwork”
In Agile: We deliver the product in increments (i.e. we use smaller cycles for moving from Requirements to Release, like mini projects to allow for sending a small-scaled product to customers, as fast as we can!)
This allows the business to engage customers faster:
- This gets customers to use the smaller-scaled product and provide feedback.
- Gets customers involved with the product earlier that other methods, and generate income for the business faster than other methods.
The next product increment will include the feedback from the customers, given on the previous increment. This allows the business to produce as close to customers’ demands as possible, and keep matching what they are looking for.
What is Scrum?
A framework, based on Agile approach for managing knowledge work, with an emphasis on software development.
Jeff Sutherland and Ken Schwaber presented Scrum Framework in 1995 (for a comprehensive look at Scrum, please visit Scrum.org)
Scrum is the Most Popular Agile approach (based on Scrum Alliance‘s stats collected from 2,000 participants from 91 countries in 27 Industries), 94% of the Agile practices are done through Scrum!
The word Scrum originates in American football.
Scrum uses time-boxed cycles (called Sprint) for product development. A Sprint can be any duration between 1 to 4 weeks (2-week is the most popular), during which the team completed a increment of the product.
The Scrum Team is composed of 3 Scrum roles:
- Scrum Master: the Servant-Leader for the Scrum Team, ensuring the process is followed properly and ceremonies are held, and works with the team to remove impediments from their path to allow for their development efforts to move forward.
- Product Owner: Who owns the scope and the release! Works with business customersto understand and capture what they want to achieve, and breaks them into smaller tasks (called Stories) and adds “just enough” details and support information to each one, to the effect that the Development Team can understand, size and confidently commit to their delivery at the end of a Sprint.
- Development Team: The rest of Scrum Team members are considered the Development Team (regardless of their role as a designer, or programmer or tester or any other technical work that they do).
Sprint starts with a Sprint Planning session, where the Product Owner brings top priority scope items from the Product Backlog and presents them to the Development Team for their review and decision on “pulling it into the Sprint” or not.
Then the work starts and during the Sprint, there is a short (~15 minute) daily meetingheld – preferably at the beginning of the day – called the Daily Scrum (or Stand-up) meeting. During this daily checkpoint session, the Development Team members discuss:
- What they did since the last checkpoint meeting (i.e. since the Daily Stand-up held yesterday morning)
- What they are planning to do today
- Whether they have run into an obstacle or predict they will run into one, today.
Scrum Master takes note of the issues and relevant parties, and after the Stand-up session, will arrange for follow-up chats and meetings – if needed – to find a resolution for the problems that were brought up by the team.
At the end of the Sprint, the Development Team provides a Demo (during the Sprint Review session) to the stakeholders to collect their feedback on the increment that was completed.
Ideally, the work should have been scoped in a way that the increment completed at the end of the Sprint could be released to Production environment (the world outside), if the Product Owner decides so.
Before the Sprint Planning session for the next Sprint, the team holds a Sprint Retrospective ceremony, where all members participate to identify, during the course of the Sprint:
- What Went Well? (to try to make them happen again! or get even better)
- What Did Not Go Well? (to find the roots for the issues and brain-storm on resolutions for them and define action items for them)
Then Scrum Master and Product Owner make sure they capture the action items – in the form of Stories – to be added to the scope for the next Sprint (or next few Sprints), so those issues don’t show up again.
And a new cycle begins ….
What is Scrum’s difference to Waterfall?
This diagram shows that while Waterfall continues on its starting image of what market was looking for, the market would drift away, due to a number of reasons, and a widening gap can form between where the market is, and where we will enter it with our product.
(MVP refers to “Minimum Viable Product“, which means the minimum, acceptable set of features in the product increment that is going to be created during a Sprint).
MVP is important as it allows for working on a small set of high impact deliverables during a Sprint to deliver the highest business value (and the best market impact) within the short duration of a Sprint and collect feedback early enough to correct the production efforts and re-align with what the constantly changing market needs at the time of release.
The expanding adoption of Scrum across large enterprises is based on the empirical success of this framework in delivery of value, in the fastest possible way, with the great flexibility in constant re-alignment to the market demand.
Arman Kamran (The Agilitizer)