The Struggling Dev
Posted on October 16, 2024
Introduction
This post has been sitting around as a draft for a long time. I was wondering whether it would even make sense to publish it. But then I thought "finish what you've started" and conclude the series that started almost two years ago. So, let's get into it:
Now that we have a basic understanding of Agile, Scrum, Lean and DevOps - let's compare them. Which one is the best? Which one should you choose? Although, I have a feeling you already know where this is going. ;)
Over this series we've established that Agile and Scrum, as well as Lean and DevOps build pairs. Let's see what happens when we juxtapose these two pairs. I'm using the principles behind the Agile Manifesto as an anchor for the comparison.
Continuous Delivery of Value in Small Batch Sizes
The first principle behind the agile manifesto states:
Principle behind the Agile Manifesto #1
"Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."
And the third one:
Principle behind the Agile Manifesto #3
"Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale."
Scrum wants us to work in short Sprints with Sprint Reviews at the end of every Sprint. That way, we get feedback from the stake holders and users to see whether we're still on track and our product increment is valuable to them. Features should be broken down to be completable in one Sprint, tasks should be doable in a day or so.
Lean is all about improving value streams and removing blockages and waste, so we can delivery value of high quality to the customer. We do this by working in small batch sizes, removing waste, ... . DevOps, unsurprisingly, agrees with this and describes this in detail in its First Way: The Principles of Flow. Work in small badge sizes, automate deployment (CD) so that we can deploy multiple times a day, ...
Collaboration
Software development is a team effort. The agile manifest has two principles dedicated to this fact.
Principle 4
Principle behind the Agile Manifesto #4
"Business people and developers must work together daily throughout the project."
and principle 6
Principle behind the Agile Manifesto #6
"The most efficient and effective method of conveying information to and within a development team is face-to-face conversation."
With Scrum we implement this by building multidisciplinary teams that include the product owner and in the best of cases the users themselves.
One can argue that Lean and DevOps are less focused on collaboration with the customer. But the big thing is that development and operations need to work closely together, it's in the name. This gets expanded with DevSecOps, MLOps, ...
Or as Taiichi Ohno said:
"Teamwork is everything"
-- Taiichi Ohno, Toyota Production System - Beyond large-scale production
Learning and Motivation
Principle behind the Agile Manifesto #5
"Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done."
Scrum recommends self-organizing teams that take ownership of the product. Lean wants us to foster a blameless culture that allows for failures and encourages continuous learning and experimentation, which DevOps manifests in the Third Way: Principles of Continual Learning and Experimentation.
Technical Excellence
Principle behind the Agile Manifesto #9
"Continuous attention to technical excellence and good design enhances agility."
This principle doesn't seem to be addressed explicitly by Scrum. One could argue that the Daily Scrum meeting at least allows for the voicing of such concerns ("What impedes my progress?"), which the Scrum Master then should address. This lack might also be one of the reasons for a point of contention that arises when it comes to the incorporation of software architecture in agile methods.
The Toyota Production System on the other hand is more explicit. It wants us to swarm problems and remove waste and ever improve the way we work. DevOps even gives us a concrete number and recommends its practitioners to spend 20% of cycle time on paying down technical debt.
Reducing Waste
Principle behind the Agile Manifesto #10
"Simplicity--the art of maximizing the amount of work not done--is essential."
In Scrum we talk to our customers regularly to make sure what we do/planned is still what they need. Approaches like Minimum Viable Products (MVP) help us to focus on what really required. And Lean cherishes almost nothing more than reducing waste.
More Similarities than Differences
There are many more comparisons left to be made and parallels to be drawn. But I'll leave you with the ninth principle, and let Taiichi Ohno have the last word in this section.
Principle behind the Agile Manifesto #9
"Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely."
Scrum wants us to continuously deliver value to the customer, plan our Sprints accordingly and "find" our velocity to forecast future work.
"Speed is meaningless without continuity".
-- Taiichi Ohno, Toyota Production System - Beyond large-scale production
In the end, there are more similarities than differences. Agile, Scrum, Lean and DevOps are all mindsets - ways to think at whose hearts lies continuous improvement. Although they might use different terminology, they're very similar if not the same as far as intent goes. There are even tools like Kanban to visualize work and work in progress that are used by practitioners of all of these mindsets.
They're also all more than the sum of their parts. Just planning some Daily Scrum meetings and throwing planning poker cards on a table isn't enough. And that's why they're hard, they require the most difficult kind of change: organizational change.
You see things differently? Awesome, leave me a comment!
Thanks for reading and keep on struggling.
Posted on October 16, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.