Agile and Scrum for absolute beginners
The purpose of this post is to make beginners understand what Agile and Scrum entails.
You may or may not have come across to these terms before.
I will try to explain with the best of my ability and experience.
First of all, to understand what Scrum is about, we must understand what Agile is.
What the heck is Agile?
Quite simply, Agile is an approach to get things done with
Furthermore, it is one of several Ways of Working(WOW) predominantly used in software development.
Note: Agile is used in other sectors of businesses as well. However, I will be focusing on the software development sector here.
The Agile Manifesto serves as the reference point for ‘Agility’ being exercised in your organisation. In the manifesto you can find the 4 values and 12 principles that bind together in distinguishing Agile from other WOWs such as Waterfall, DevOps, ITIL etc.
Quick history behind the Agile Manifesto:
February 2001 - A group of 17 developers came together at a Ski Resort in Utah to find an alternative to the complicated, document-heavy methods of software development, chiefly Waterfall.
Difference between Waterfall and Agile software development
Image source - Ogrebots | Wikipedia Commons
Sequential vs Iterative approach - As you can see the waterfall model is sort of a ‘step-by-step’ approach versus an Agile approach that includes all the steps in one cycle i.e. iteration.
“But I like the step by step process” - One might say and you won’t be wrong; in that, if you are working in an environment where requirements are clear. For instance, you are in the construction sector and are planning out to build a bridge. The requirements and design will and should not change throughout. The variables that might change that are likely to hamper the project are almost zero or negligible to the outcome of the project.
However, when dealing with software development the complexity and unknowns are higher. No one said building a bridge is easy but it's more predictable than building software. Technology changes quickly and you have to adapt to the market conditions which makes your work mostly unknown or unpredictable.
In such situations, the best approach is to gain feedback quickly and go through all the steps required in a shorter timescale(less than a month, typically 2 weeks) to obtain the best knowledge possible and iterate again.
The Stacey Complexity Model
The above figure illustrates the type of work we’re carrying out in software development. Hopefully this clarifies the reason behind approaching complex work with Agility.
What is Scrum?
As illustrated by the picture above, Scrum is one of the many frameworks that falls under the broader Agile umbrella.
The Scrum Guide serves as the ‘Bible’ for how Scrum should be implemented to support Agility.
It is founded on empiricism; meaning making decisions based on what is known and not making a hypothetical conclusion upfront in your decision making process.
Empiricism is supported by Scrum’s 3 pillars:
Transparency - Make your work visible
Inspection - Keep on top of your work frequently
Adaptation - Make changes going forward from what’s learned in the past
Scrum has 5 values (Mnemonic CCFOR):
C - Courage: Have the courage to work on tough problems
C - Commitment - Commit to achieve goals
F - Focus - Focus on the work and goals
O - Openness - Be open about your work
R - Respect - Respect each other
Scrum has 3 roles:
Development team - Professionals who do the work to deliver a Product increment
Scrum Master - Promoter and supporter of Scrum
Product Owner - Product value maximiser
The Scrum Framework
Image credit: Dr Ian Mitchell | Wikipedia Commons
Scrum is a lightweight framework that allows other processes and techniques to enhance Agility. It is not a definitive method. You may utilise various other approaches alongside it. Matter of fact, most teams do exactly that by incorporating frameworks and techniques like Extreme Programming(XP), Kanban, Behaviour Driven Development(BDD), Test Driven Development(TDD) etc. on top of the Scrum framework to help solve complex problems.
Scrum is easy to understand but difficult to master.
Take an example of the football quality played in the Premier League with your average Sunday League. One can easily state the obvious difference; that the level of quality of the Premier League is higher in spite of both parties essentially doing the same thing. It’s just that one has mastered the basics more than the other; namely fitness, coaching, football IQ, skills and drills and so on. Similarly, the Scrum theory, practices, rules and values are also easier to understand but difficult to implement fully. The more you work on the ‘why’ of Scrum, the better you’ll be at it. It’s that simple.
We briefly covered:
What Agile is
Why is software development a complex work
Why Agile approach is suited to complex work
How Scrum framework supports Agility
As usual there will be naysayers on Agile and its frameworks. However, the fact that they are utilised overwhelmingly by the well known companies in the world is a testament to the value it brings.
Remember, the desired output is to continuously improve the product, the team and the working environment no matter what framework or approaches we adhere to. Unless a better alternative is put forward, Agile is here to stay.
What do you think of Agile and Scrum?
Did you learn something new?