01.02-Lean in Scrum Lean Development Practices
01.02-Lean in Scrum Lean Development Practices
Practices
Discover the concepts associated with Lean development practices, including the seven
wastes of Lean and the seven principles of Lean, and how Lean development connects to the
Scrum methodology.
Key concepts covered in this 10-video course include the origins and the seven wastes of
Lean; how the seven wastes concept is an integral part of Lean thinking and helps to increase
profitability; and examining the correlation between Lean and the Scrum methodology. Learn
the first principle of Lean, eliminating waste in software development; the second principle of
Lean, building quality into processes and products; and the third principle of Lean, creating
knowledge and the infrastructure to properly document and retain valuable learning. Continue
with the fourth principle of Lean, deferring commitment, which includes not to plan in
excessive or great detail; the fifth principle of Lean, delivering fast; and the sixth principle of
Lean, respecting people. Finally, study the seventh principle of Lean, optimizing the whole.
Table of Contents
1. Course Overview
2. The Seven Wastes of Lean
3. Lean Principle 1: Eliminating Waste
4. Lean Principle 2: Building in Quality
5. Lean Principle 3: Creating Knowledge
6. Lean Principle 4: Deferring Commitment
7. Lean Principle 5: Delivering Fast
8. Lean Principle 6: Respecting People
9. Lean Principle 7: Optimizing the Whole
10. Course Summary
Course Overview
[Video description begins] Topic Title: Course Overview Your host for this session is Colin
Calnan. He is a Senior Web Developer. [Video description ends]
Hi, I'm Colin Calnan, and I'm a solutions architect with over 15 years experience managing
and building digital products for clients in healthcare, government, non-profit, and the public
sector. I'm also an experienced instructor. I've taught triple development in continuing
education at a university level. So in this course, we're going to explore Lean development
processes. We're going to look at the seven waste and the seven principles of Lean and how
Lean is connected to the Scrum methodology.
I'll start by examining what Lean development is and then discuss the seven principles of
Lean for eliminating waste to help improve workflow. I'll then examine the correlation
between Lean and the Scrum methodology. Lastly, I'll explore each of the seven principles of
Lean, including real life examples and possible and how each of these principles can be
adopted in Scrum.
The Seven Wastes of Lean
[Video description begins] Topic title: The Seven Wastes of Lean. Your host for this session
is Colin Calnan. Screen title: The Primary Purpose of Lean [Video description ends]
In this video, I'll recognize the origins of Lean and the seven wastes of Lean. Eliminating
wasteful activities is one of the most important prerequisites for building a successful
company. The concept is an integral part of Lean thinking and it helps you to increase
profitability. So the idea of eliminating waste originates from the Toyota Production System.
A gentleman named Taiichi Ohno, who's considered one of the founding fathers of Lean
manufacturing. He dedicated his career to establishing solid and efficient work processes.
[Video description begins] Screen title: Ohno's Three Roadblocks [Video description ends]
During his journey, Ohno described three major roadblocks that can influence a company's
work processes negatively. Muda, which was wasteful activities, Muri, which was
overburden and Mura, which was unevenness. So what is the Muda waste in Lean? Well, in
Lean, waste is any activity that consumes resources, but brings no value to the end customer.
So in reality, the activities that create value for customers are only a small portion of the
whole work process.
This is why businesses should focus on reducing wasteful activities as much as possible. And
by doing so, companies can identify significant opportunities that will improve their overall
performance. And it's important to not be mistaken that all wasteful activities can be
eliminated from the work process. Some of them are actually a necessity. So for example,
testing a software is not an activity that your customers are willing to pay for. However,
without it, you might deliver a low quality product and it's going to have a negative impact on
your economic performance. So therefore, there's two major types of waste.
There's necessary waste, which is non-value adding but it's necessary to get things done in a
quality manner, activities like testing and planning and reporting. And then there's
unnecessary waste or pure waste, and this is non value adding. Anything that doesn't bring
value and can be removed from the process immediately is unnecessary waste. So any form
of waiting for example, waiting for things or for people could be described as pure waste or
unnecessary waste.
[Video description begins] Screen title: Seven Mudas (Wasteful Activities) of Lean [Video
description ends]
There are seven wastes of Lean. Eliminating wasteful activities is going to be crucial for the
success of your company. So they can lower profitability, increase customer costs, decrease
quality and even employee satisfaction. So for this reason, you need to identify what the non-
value-adding activities are and try to improve the process where they appear, or else
eliminate them. So if we have to look at the seven ways in manufacturing, as an example, we
have inventory, and this could be undelivered products or parts. We'd have waiting, Waiting
for goods to be delivered. Defects, this would be broken parts or defective parts that need to
be reworked. Over production would be too many items produced for a just-in-case scenario.
Motion, which is unnecessary movement of employees or machinery. Transportation, which
might mean moving parts and materials from one place to another, one factory to another.
Over processing, which would be spending a lot of time on a given task.
In this video, we'll discover the first principle of Lean which is eliminating waste. So we've
identified seven Lean wastes in manufacturing, now let's have a look at the seven Lean
wastes in software development. So we have Inventory which could be undelivered code or
undelivered features. Waiting, which could be waiting for testing to complete or waiting for
code review. Defects, which would be bugs in your software. Over production might be
producing features that nobody's going to use. Motion which would be unnecessary meetings
or extra effort to find information. Transportation could be identified as switching between
tasks too often. Countless interruptions from colleagues. And then overprocessing would be
unnecessary, complex algorithms solving simple problems.
[Video description begins] Screen title: Waste in Software Development [Video description
ends]
So we've identified that seven Lean wastes in software development. However, in Lean
software development, these wastes could be translated into some things more specifically
relevant to software development. So a delay in software development process could lead to
process roadblocks.
But it generally takes place at the end of the project, and by this time, things are forgotten,
people have changed, the team has changed, the context has changed, and the team might be
disbanding to move onto another project. As a result, the team might never really get the
chance to put the learnings and the changes into practice. So with Agile and Agile
development, the idea of retrospectives enables the team to make small improvements
regularly and tackle changes through manageable bite-sized pieces that can be actioned on
immediately.
[Video description begins] Screen title: Sprint Retrospective [Video description ends]
So a common Agile development practice is the retrospective, the Sprint Retrospective, and
the process of that is basically that the Scrum team meets after each short iteration. And that
meeting is facilitated by a Scrum Master. And during this meeting the team will discuss what
went well, what didn't, what the failures and successes were. And they'll then suggest
improvements about what can be done differently in the next iteration.
This is an iterative process of learning and continual improvement. And it's important to help
identify waste and eliminate it. So with Agile development, the retrospectives enable the
team to eliminate waste by making small continuous improvements regularly, it should be a
regular and ongoing process. It should be built into regular iterations. And that should be
determined as much as possible by the team and tackled in these small, timely steps. Making
these improvements, in a way, it requires a cultural shift towards continuous improvement.
And that's essentially a learning environment. And which for some organizations could
potentially give them an edge over their competitors.
In this video, we'll discover the second principle of lean, building quality into products. So it
might seem self-evident that everybody in every team wants to build quality into their work.
It's a no-brainer. But unless this is part of a disciplined practice, the reality is very different.
It's not as easy as it sounds. So the intent is to improve to ensure quality.
We want the product and our processes to be better. Many teams, however, actually create
waste. And they do that through excessive testing, for example, or excessive logging of
defects. So in recent decades, lean development teams have found success by applying some
lean development tools to build quality into their work. In lean development, quality is
everyone's job, not just QAs.
[Video description begins] Screen title: Tools for building in Quality [Video description
ends]
There are a number of popular lean development tools that can be utilized for building quality
into the process and the product. Automation, so automate any tedious manual processes or
processes that might be prone to human error. Incremental development, breaking
development down into small manageable pieces. And then test-driven development, writing
criteria for code before writing the code to ensure it meets the business requirements.
As well as that, there's constant feedback. Effective communication within the team it fixes
many of the issues around delays and frustrations. Reducing wait states. So reduce context
switching, knowledge gaps and lack of focus. Pair programming. You want to avoid quality
issues by combining the skills and experience of two developers instead of one.
In this video, we'll discover the third principle of lean, creating knowledge. So this principle
encourages lean teams to provide the infrastructure to properly document and retain the
valuable learning that's happening. Nothing beats the knowledge that's created when
somebody actually writes code, so software is knowledge. It's important also to expect the
design to change. And that's because an early design can't fully anticipate the complexity
encountered during implementation, as well as that encouraging, ongoing learning throughout
the development cycle helps with creating knowledge.
The lean development principle of create knowledge might seem simple. Given that it must
be implemented, it's important that we provide it with a focus that it requires or the focus that
it deserves. It's not an easy task and it requires, a long with focus, discipline, a great deal of
discipline to implement it. So the principle focuses on the fact that learning is knowledge and
that continuous improvement can only happen through learning. Retaining the knowledge
requires that the team document and nurture what they have learned. And then lean teams
work to provide the foundation to properly document and retain the valuable learning.
[Video description begins] Screen title: Tools for Creating Knowledge [Video description
ends]
So let's look at some of the tools required for aiding the lean team in building the foundation
for documenting and nurturing the knowledge. So code reviews, frequent and standardized
code reviews. The creation of appropriate documentation. Well-commented code. And then
adequate training for all team members. As well as that, pair programming, it helps to ensure
that the knowledge that comes from writing code is held by at least two people rather than
one. Wikis, that they allow for a collaborative editing of documentation. Reviews provide a
chance to give feedback and to communicate and suggest changes. And then using project
management tools to manage the requirements for things like user stories.
In this video, we'll discover the fourth principle of lean, which is deferring commitment.
Now, this lean development principle can be easily misused or misinterpreted. Defer
commitment doesn't mean the team should be flaky or irresponsible about their decision
making, rather, the opposite. The lean principle encourages teams to be responsible, and
encourages them to be smart, by keeping their options open and by being informed through
continuously collecting information rather than making decisions without data.
So to defer commitment, it means to not plan in excessive detail for months in advance, but
to do some planning instead of creating some grand plans. It also means to schedule
irreversible decisions for the last possible moment and to try and make decisions reversible.
As well as that, you want to avoid making decisions that are going to lock into a critical
design that will be difficult to change. There's a famous quote from Dwight Eisenhower that
says, in preparing for battles, I have always found that plans are useless but planning is
indispensable.
[Video description begins] Screen title: Deferring Commitment [Video description ends]
So deferring commitment, to defer commitment means don't plan in excessive or great detail.
To be constantly collecting and analyzing information about any important decisions to avoid
being blindsided. And don't commit to ideas or projects without a full understanding of the
business requirements or the facts of the project. It's also not necessary to start software
development by defining the full or complete specs. And in fact, that appears to be a bit of a
questionable strategy at best. You can support the business effectively through flexible
architectures that are change tolerant. And you can do that by scheduling irreversible
decisions to the last possible moment and not committing unless it's absolutely necessary.
[Video description begins] Screen title: Using Sprint to Defer Commitment [Video
description ends]
Using an Agile sprint approach to product development is a good way to help deal with this
differing commitment. And Agile-inspired is great because it allows teams to pick a feature
and not take this huge bite out of the project. As well as that, they can assess and analyze the
importance of it, as well as understand the needs that it addresses. And then they can make a
decision about whether or not it's needed and if it should be developed for that sprint or at the
time of the sprint.
In this video, we'll discover the fifth principle of Lean, which is delivering fast. So being fast
helps to eliminate a huge amount of waste. The goal is to figure out how to deliver software
so fast that the customer doesn't have time to change their mind. Repeatable and reliable
speed is important. And it's impossible to have that without superb quality. Companies that
compete on the basis of time often have a significant cost advantage.
So in fast moving organizations the work's structured so that the people doing the work know
what to do without being told. And they're expected to solve problems and adapt to changes
without permission. So delivering fast work with efficiency is kind of at the forefront of all of
Lean activities. So, however, in the speedy software turnaround time must be sustainable in
the long run for it to be effective. Most software development companies fall victim to one of
the time wasting efficiency draining scenarios. That we'll look at right now in product
development. So that will be wasted time. Wasting too much time thinking about future plans
and software development practices that might not even be necessary.
Trying to overproduce or overdevelop a plan or solution when it's not necessary. And then
creating bottlenecks where software developers maybe don't respond to feedback, or
blockages, or project hiccups immediately. And that results in delays in the feedback process.
Lean teams would have fewer defects. That's a feature of Lean. And then, in fast-moving
organizations, the work is structured so that the people doing the work know what to do
without being told. They self-manage and they're self-empowered.
[Video description begins] Screen title: Delivering Quickly [Video description ends]
So it's also possible to deliver high quality systems quickly, it's attainable. Quality and speed
aren't mutually exclusive. It's important to limit the work of a team to its capacity. And that's
going to be reflected by the team's velocity.
That's basically a metric that measures the number of points of functionality which a team
can deliver in an iteration or a sprint. And then you can also establish production flows that
are reliable, and repeatable, and help establish quality. An effective organization is realistic.
And it's realistic and develops expectations that suit the team. It doesn't demand that teams do
more than they're capable of. It also trusts the team, and it asks them to self-organize and
determine what they can accomplish. And it constraining these teams to delivering shippable
solutions on a regular basis motivates them to stay focused and to continuously add value.
In this video, we'll discover the sixth principle of Lean, respecting people.
[Video description begins] Screen title: Lean Principle: Respect People [Video description
ends]
So the Lean principle of respect for people is often one of the most neglected. Especially in
the fast paced, burnt out a riddled world of software development. And it applies to every
aspect of the way the team operates. How they communicate, how they handle conflict, how
they hire or onboard team members, how they deal with process improvements. So a
company that respects its people makes sure that the teams have the kind of leadership that
fosters an engaged, thinking team.
Focused on creating a good product. So it develops and focuses on creating good leaders, it
creates an expert technical team where the technical expertise is nurtured. The teams are
staffed with the needed expertise in order to complete and accomplish their goals. And the
teams are given general plans and responsible goals and reasonable goals. And then they're
trusted to self-organize to meet those goals. So it inspires responsibility among the team.
[Video description begins] Screen title: The Advantage of Respect [Video description ends]
There's also a sustainable advantage that can be gained from having an engaged, empowered
team. The implication of the Lean approach is that you would improve IT governance. And
you'll generate a will to win that focuses on motivating and enabling the teams, not on
controlling them. So, unfortunately this principle is often ignored to accommodate things like
the do what it takes or win at all costs mentality. Or else there's the just get it done culture
that delivers fast no matter what that mandate can create that just get it done scenario.
[Video description begins] Screen title: Lean Development Respects People [Video
description ends]
So Lean development, it emphasizes treating each team member with respect and
compassion. And the principle needs to be extended to all aspects of the interactions in your
organization. Whether that's recruiting or onboarding, project planning, process
improvement, or even conflict resolution.
[Video description begins] Screen title: Setting the Tone for Respect [Video description ends]
So how do you set the tone for respect? Well, each of the Lean development processes I
outlined needs to be guided. And it needs to be guided by a respectful, open, proactive
conversation that will encourage support as well as healthy competition. So, you must
motivate and support the development teams, not try and control them. And you want to give
them the tools that they need to succeed or win. Lean management encourages them to voice
their concerns in an open and supportive way, and that's how you create an atmosphere. And
you want to try and avoid controlling the environment as that rarely works well.
In this video, we'll discover the seventh principle of Lean, optimizing the whole. So if you
want to be effective at a solution, you're going to need to look at the bigger picture. You need
to manage the programs of interconnected systems so that you can deliver a complete product
to your stakeholders. You need to understand the high level business processes that individual
projects support. Processes that will often cross multiple systems. And then you should look
at taking measurements that address how well you're delivering on your business value.
[Video description begins] Screen title: The Problem with Testing in Waterfall [Video
description ends]
So, a Lean organization, it optimizes the whole value stream. So we can look at a specific
scenario where for example, a customer wants some new features yesterday and we know
that happens a lot. So what do the developers hear? Well, they hear, get it done fast at all
costs. So what happens? Well feedback is stifled. Developers don't get immediate feedback.
Testing occurs long after coding, testing has more work to do. Systems have multiple points
of defect. And developers don't learn because they're rushing to finish. Whatever it works
will do.
[Video description begins] Screen title: The Problem with Giving into Pressure [Video
description ends]
So let's take the same specific scenario where a customer A wants some new features
yesterday. We can see that some other things happen. Their sloppy code changes are made to
the code base. There's a rise in the number of defects in the code base. The complexity of that
code base increases and there's an exponential increase in the time it takes to add a feature. So
implementing Lean emphasizes thinking big-picture, and assessing everything when working
with the Lean methodology. Product owners and shareholders must take stock of the
processes as a whole before they make any sudden or drastic changes.
Things that might seem impractical with a narrow lens may be the foundation for something
are more productive. So it's up to you to identify the links between things and try and
optimize the process as a whole instead of individual pieces or components. So the most
successful innovations come when you gather intelligence. And you take insights from
different business units, such as sales or support, for example. And then cross-functional
teams are a good solution for optimizing the whole. As everyone on the team is responsible
for handling requests from beginning to end. That means that there are going to be multiple
opinions on the problems. This helps you think about the needs of your clients from a
different perspective. Making it harder for a team's goals to be hijacked if everybody is
responsible.
Course Summary
[Video description begins] Topic title: Course Summary [Video description ends]
So in this course, we've examined the Lean Development Process, including the seven wastes
and the seven principles of Lean. We've also looked at how Lean is connected to the Scrum
methodology. And we did this by exploring the origins of Lean, the seven principles for
eliminating waste to improve workflow. How Lean connects to Scrum.
Also, the seven principles of Lean, which were eliminating waste, building quality into
products, creating knowledge, deferring commitment, delivering fast, respecting people, and
optimizing the whole. And then we looked at how each of the seven principles of Lean can be
adopted into Scrum. So in our next course, we'll move on to explore a case study
demonstrating how Scrum development practices can be adopted into a real world scenario.