SDLC Lean Model And Phases
Introduction:
- The Lean approach is closely interconnected with Agile as they both focus on continuous improvement and the delivery speed.
- Lean has come from lean manufacturing practices and principles.
- The methodology implies working only on the things that can be managed at a time without multitasking.
- When lean comes to the software and projects, the lean SDLC model focuses on reducing waste in every phase and also reduces the scheduling, cost, and scope.
History:
Lean was invented by the employees of Japanese Toyota Corporation in the middle of the 20th century. At that time it was called Toyota production system. But when the lean methodology was spread to all over the world, it changed its name to Lean manufacturing. Elimination of wastes was the main idea of Lean.
Lean methodology was added to software development in 2003. Tom and Mary Poppendieck are famous lean researchers and they published a book called “Lean Software Development”. Its main idea was to adapt the main Lean principles to the software engineering industry. The book has succeeded as the methodology itself. Now the Lean model is considered one of the most effective Agile methodologies.
Principles of lean model:
The Lean method is based on set of seven principles, which are:
Eliminate Waste –
- A variety of wastes impact the outcomes of scrum teams.
- In large organizations, these wastes are commonly attributed to processes, complexity, structures, silos, hierarchies etc..
- Organizations and teams that are relentless about continuous improvement can benefit greatly from consciously and incrementally looking for opportunities to eliminate waste.
- Value stream mapping should be conducted at the business and development process level to expose waste and create urgency to eliminate them.
Build Quality In –
- One of the common struggles for scrum teams is to deliver the “potentially shippable” artifact.
- However; the most common reason is the number of defects produced in sprint or the lack of tools and/or automation to support end to end testing and the mindset of dealing with defects.
- Additionally, the lean principle of building quality starts by suggesting that quality is everyone’s job and not just QA’s and it needs to be a disciplined practice.
- Lack of it also is in conflict with the first principles of eliminating waste.
Create Knowledge –
- This is referred to as “Amplifying Learning” in Mary and Tom’s book where the best way of learning something is by doing it or in other words by actually creating value.
- Some common anti patterns that impede the principle of creating knowledge with scrum teams include team structures, where teams are built up of many specialized skills thus creating silo success criteria and outcomes.
- Additionally, scrum teams can also be seen doing “foundational” work with an excuse to build a sense of predictability.
- This is precisely why agile relates the term “evolving” to all dynamic aspects of software development including requirements, architecture, design etc..
Defer Commitment –
- The lean principle of defer commitments does not mean that the teams do not plan or make uninformed decisions.
- It encourages that decisions be made at the last responsible moment.
- Last responsible moment can vary from companies to industries to teams but the basic idea revolves around acknowledging and conducting experiments to enable informed decision making.
- Similarly, at the team level, the inability of the team to meet it’s sprint commitment, can go against the team leading to compromise in other areas, more often quality.
Deliver Fast –
- It is the most common reason why the most agile method companies adopt it. Fast can be interpreted differently in different contexts.
- Every team wants to deliver fast and get value in the hands of the customers as quickly as possible, but most scrum teams are unable to do so for a variety of reasons. Some examples:
- Organizational and team structures leading to increased complexity
- Lack of supporting practices and tools
- Big increments; looking too much into the future
- Lacking urgency to remove impediments
- Intent of building a perfect solution
Respect People –
- Lean also encourages respect for people by communicating proactively and effectively, encouraging healthy conflict, surfacing any work-related issues as a team, and empowering each other to do their best work.
- However, a common observation is about how most important decisions are taken outside the team that have a direct impact on the team.
- Another challenge for teams is the issue of psychological safety.
- In the lean world, respect is all about developing and empowering the people and trusting them to do the right thing.
Optimize the Whole –
- Sub-optimization is a serious issue in software development.
- Mary and Tom point to 2 critical reasons behind the sub-optimization.
- First is where developers release sloppy code for the sake of speed and second is the long cycle time that is created between developers and testers as a result of hand-offs.
- Leans suggests use of value stream mapping to design, produce, and deliver a product or service to customers.
Advantages of Lean model:
- Saves cost and time by eliminating the unessential activity
- Improved interaction with customers
- Capable to deliver more functionality in a shorter span of time
- Higher quality due to attention to detail
- Improvements in business culture
Disadvantages of Lean model:
- It is difficult to change over. The lean approach adoption takes patience and a complete overhaul of the work processes.
- High implementation costs. Companies may be unprepared for the increased expenses of bringing in new equipment and training programs.
- The temptation to over-structure.
- Relatively easy to lose focus