Lean Principles and Quality Improvements

Luis Gustavo Luque
Globant
Published in
8 min readSep 29, 2021

Maybe you have heard about Marie Kondo. She is an organizer expert and founder of KonMari Media, Inc., her worldwide best-selling book, The Life-Changing Magic of Tidying Up: The Japanese Art of Decluttering and Organizing. The casually Lean approach was originated in Japan and it has much to do with Marie’s expertise

ORIGIN AND EVOLUTION OF LEAN MANUFACTURING

Lean Manufacturing arises from the culture adopted by Japanese companies that aimed to implement improvements in the manufacturing plant. They managed to improve results both in the jobs and in the manufacturing lines, although they were not the first to try to optimize the production and profitability of the companies.

The first techniques for the optimization of production emerged at the beginning of the 20th century from the hand of F.W. Taylor and Henry Ford. Taylor laid the foundations for the scientific organization of labor and later Henry Ford introduced the first mass car manufacturing chains.

TOYOTA MANUFACTURING SYSTEM

At the end of the 19th century, the first Lean Manufacturing thought emerged in Japan by Sakichi Toyoda, the founder of the Toyota Group.

Mr. Toyoda created a device that detected problems on looms and alerted workers with a signal when a thread broke. Toyoda’s machine not only automated a previously manual job, but it also added an element of machine error detection capability, “Jidoka,” a machine with a human touch. Production stopped when an element was defective, and they avoided producing errors. This measure allowed a single operator to control several machines, increasing productivity.

Kiichiro Toyoda developed this philosophy, and opted to create an “ideal situation of creation, where machines, facilities, and people work together to add value, without generating waste”. Created methodologies and techniques to eliminate waste between operations, both lines, and processes. The result was the Just-in-Time (JIT) method.

It was Eiji Toyoda who increased worker productivity, adding value to the JIT system, and established the Toyota Production System (TPS). The model was based on producing only what is demanded and when the customer requested it, this was complemented with the reduction of tool change times, through the SMED (Single-Minute Exchange of Die) system and with different techniques that enriched the Toyota system. Taiichi Ohno, supported by Eiji Toyoda, helped establish the Toyota Production System, and create the foundations of the Toyota spirit to “create things,” or the “Model Toyota.”

WHAT IS LEAN?

  • It is a concept for process improvement
  • Value is what the customer wants with Quality.
  • It is only possible to deliver what the customer wants, in the amount and time required, if the value flows.
  • The flow of value is hampered by waste.

To get the value to flow it is necessary:

1. Identify value from the customer’s perspective. Value is created by the producer, but it is defined by the customer. Companies need to understand the value the customer places on their products and services, which, in turn, can help them determine how much money the customer is willing to pay. The company must strive to eliminate waste and cost from its business processes so that the customer’s optimal price can be achieved — at the highest profit to the company.

2. Map the value stream. This principle involves recording and analyzing the flow of information or materials required to produce a specific product or service with the intent of identifying waste and methods of improvement. Value stream mapping encompasses the product’s entire lifecycle, from raw materials through to disposal.

Companies must examine each stage of the cycle for waste. Anything that does not add value must be eliminated. Lean thinking recommends supply chain alignment as part of this effort.

3. Create flow. Eliminate functional barriers and identify ways to improve lead time. This aids in ensuring the processes are smooth from the time an order is received through to delivery. Flow is critical to the elimination of waste. Lean manufacturing relies on preventing interruptions in the production process and enabling a harmonized and integrated set of processes in which activities move in a constant stream.

4. Establish a pull system. This means you only start new work when there is demand for it. Lean manufacturing uses a pull system instead of a push system. (i.e. a good production is initiated when a new consumer’s request is received instead of schedule the development of a number of products based on predictions).

5. Pursue perfection with continual process improvement or Kaizen. Lean manufacturing rests on the concept of continually striving for perfection, which entails targeting the root causes of quality issues and ferreting out and eliminating waste across the value stream.

LEAN & AGILE

Lean and agile are complementary. Both inform methods such as Scrum, kanban.

Commonalities:

  • Improve quality
  • Amplify Learning
  • Continuous improvement
  • Empower people

Benefits

  • Reduced delivery times.
  • Increase in quality.
  • Greater capacity.
  • Cost reduction, profitability improvement
  • More customer satisfaction.
  • Participation, responsibility, commitment, and satisfaction of collaborators

Note: Continuous improvement is applicable to any kind of project and team. In our experience, all teams showed improvements along with iterations but those with poor agile implementation were impacted faster and deeper

OTHER LEAN PRACTICES

Jidoka: (Automation)

In software development, the analogy to manufacturing are mechanisms to provide the ability to detect any defect/failure and stop automatically the processing

Implementation examples: Continuous Integration. Stop, solve, continue.

Andon: (Lamps)

It combines Jidoka with visual boards so the development team can check if the flow is on track and identify any issue/deviation immediately

Implementation examples: Visible dashboards indicating relevant information for the whole team: Dashboards, radiator monitor, flagged cards, blockers, release/integration dates

METRICS

The most common metrics for development flow are: Lead time, value-added time, non-value-added time, and Cycle time

There are several tools that can be used for gathering and analyzing metrics

For example, JIRA tool provides them for free with enough flexibility

Example chart:

The X-axis represents the date and Y-axis means the number of days spent to complete the cycle (i.e. from “Ready to dev” to “Done”).

The points in green means User Stories moved to “Done” and the blue line is the average of those data points.

If the line in blue decreases, it means that cycle time is being improved along with iterations.

CONTINUOUS IMPROVEMENT

It means the continuous execution of actions to improve the organizational processes.

There are well-known methodologies to implement it such as:

5S: Remove, organize, clean, standardize, discipline

Kaizen: Select a problem, analyze the cause, identify actions, verify results, standardize

A3: Background, current condition, target condition, root cause analysis, experiment, confirmation, follow up

LEAN PRACTICES EXPLAINED WITH A SUCCESS CASE:

Lean development defines seven principles for software development.

In our case, we implemented them for an important airline account with more than 20 teams (+500 members team), approaching this new mindset with significant improvements in terms of maturity and cycle time

Below you will find them and the main actions implemented for each one:

1. Eliminate waste:

Aims to remove from the process and the product everything that does not add value to the customer.

It is important to classify the following kinds of value:

Value Added: The customer wants it

Non-Value Added but Necessary: Required by law, regulation or policy

Non-Value Added: Waste

Waste types:

  • Overproduction: Features that weren’t requested, redundant/unneeded coding.
  • Waiting: Delays/bottlenecks, waitings for verification or validation, on-hold code reviews.
  • Transportation: Task switching, excessive multitasking.
  • Overprocessing: Documents/reports that nobody reads, inflexible processes.
  • Defects: The quicker a defect is detected, the more likely waste is mitigated. Each process step should be mistake-proof and self-inspecting.
  • The killer “re’s”: Rework, Rewrite, Redo, Re-test
  • Inventory: Incomplete work, documentation without code, code without merge, code without testing, non deployed code

Implementation examples:

  • BDD, Three amigos
  • Early testing, shift left
  • Granular user stories, increased code reviewers
  • Unified internal/external communication channels

2. Amplify learning:

It means learning to improve results from several points of view, such as team member’s skillset and also from customer feedback on the product

Implementation examples:

  • Pair Programming
  • Knowledge transference between corners (business analyst, developers, quality control), roles switching, shadowing
  • Short customer/development sessions team to learn about the domain problem
  • Root cause analysis

3. Decide as late as possible:

Schedule irreversible decisions until the last responsible moment. Avoid large term plans (in excessive detail). Don’t commit ideas or projects without a full understanding of the business requirements.

Implementation examples:

  • Story mapping
  • Promote Spikes and POCs to minimize uncertainty

4. Deliver as fast as possible

The question isn’t why teams want to deliver fast, but rather, what slows them down. The sooner the product is delivered without major defects, the sooner feedback can be received, and incorporated into the next iteration

Implementation examples:

  • Test Automation: Functional, CI/CD/Configurations
  • Shift left testing/Early testing
  • Test data ready to use

5. Empower the team

Avoid micromanagement. Let those with knowledge and expertise make the work and make decisions.

Implementation examples:

  • Work on delegation/autonomy/ownership
  • QA’s reskilling
  • Suggest solutions instead of asking for directions/avoid unnecessary approvals
  • Increase code review approvers based on complexity

6. Build Integrity In:

Measured by how well the system components work together as a smooth, cohesive whole. Ensure that components match/work well together

Implementation examples:

  • CI/CD
  • Feature mapping
  • Contract test
  • Third-party integrations

7. See the Whole:

Avoid local improvements that impact the whole product. Large systems development will require more organizations working together and the well-defined relationship between them

Implementation examples:

  • Impact mapping
  • Cross teams’ product discovery sessions
  • Metrics gathering and analysis

RESULTS AND FOLLOW UP

We created a group of mentors who volunteered to follow up and drive the actions implementations in each team based on the principles of Lean.

In parallel with the actions, we measured Cycle time for each task and also and between “stages” in order to measure development flow, detect bottlenecks, and measure improvements

Also, we tracked defects in order to be sure that actions to reduce cycle time didn’t impact the delivered quality

One of the things that immediately discovered in the implementation was that the smaller the User Story was (in terms of story points) the faster the cycle time was reduced with the implemented actions

As an overall continuous improvement, we followed an organizational framework based on experiments and provided visibility on the teams’ member and upper-level Management with great commitment and tangible results

We have to take into account that this is an iterative process, It needs a mindset change, the whole team involved and the results will be achieved gradually

BIBLIOGRAPHY

Lean Software Development — Mary Poppendieck/Tom Poppendieck

Lean Thinking — James P. Womack/ Daniel T. Jones

--

--