PT | EN
Published May 3, 2023

Lean Software Development for Unique Products

Micaela L. Rossetti | Reading time 7 minutes Reading time 7 minutes
Lean Software Development for Unique Products

Looking for the definition of the word lean in the dictionary, we will find “an industry or company efficient and with no waste”. Lean Software Development is, therefore, a methodology that proposes eliminating waste in Software Development to reduce risks and promote a more agile delivery. 

But what is a waste? It is everything that does not add value to the end product. In this case, valueis the sum of the customer’s demands with the product needs, all related to functionality and usability. Therefore, creating Value Stream means linking only the essential work processes to achieve the desired results. 

Important Milestones in Lean Software Development

The Lean methodology has a long history, intertwined with the Administrative Theory and with relevant connections to the cultural traits of its origins. It started at Toyota in the 1950s, where Taiichi Ohno, Head of Production at that time, worked on an alternative method of organization.

Instead of copying the North American model, which greatly adapted to the production in scale, Ohno was concerned with creating a method that handled properly the complexity of post-war Japan: scarce resources, inconstant orders, and the production of a variety of items.

Because it was developed at Toyota, the methodology became known as Toyota Production System (TPS). Forty years later, with the publication of the book The Machine That Changed The World (1990) by the Massachusetts Institute of Technology (MIT), the model attracted attention from the market. Through research studies, it was proven that it was much more efficient than the traditional production model, and was renamed as Lean to represent a new paradigm. 

Toyota Production System - SoftDesign

It is interesting to remark, however, that the Lean methodology developed at Toyota included not only an approach to manufacturing production (TPS), but also approaches for supply chain management (Keiretsu) and for product development. The latter was adapted to the Software Development when, in 2003, Mary and Tom Poppendieck published Lean Software Development: an Agile Toolkit

Since then, the methodology has become popular in the IT area. Currently, it is mandatory in the creation of innovative digital products. 

Lean Software Development Principles

The book by Mary and Tom Poppendieck established principles specific to Lean Software Development, because, despite sharing Lean values applied to manufacturing, in the creation of digital solutions the goal is not having a single product on a large scale (achieved through repetition). The goal is to have a unique software development suitable to the product context and to the users’ needs. 

In this sense, Lean in the IT area is much more related to continuous improvement and to increased efficiency, getting close to Agile Methodology.

The principles of Lean Software Development are:

  • Eliminate Waste: it looks a lot easier to think about wasting material products than wasting software, right? But the truth is that the idea is the same: it is necessary to look at the entire creation process, from the moment the work started with the client order to the delivery of the digital product, and remove all unnecessary activities that do not add value to the project. An example are features that will not be effectively used but are developed by the client’s request or to please users. Here, it is worth remembering the importance of a good Product Conception to guide the Lean Software Development. It is also worth mentioning that this method sees intermediate inventories as waste because every inventory generates additional work for its management. Mary and Tom explain that, in software universe, inventory is every “incomplete” work. For example: specifications that are ready but not being used yet, are a type of inventory; the same is said about software that is ready but not in production. 
  • Build Quality In: we know that Test Analysts have a crucial role in any project, right? With Lean, more than finding errors afterward, these professionals must work with developers to ensure the construction with quality beforehand. A way to execute this principle is to test each small implementation, not just the entire functionality when it is ready. It is the famous prevention, based on process control to avoid possible errors. A very strong concept in Lean is “stop the line”: the idea that, if someone finds any issue throughout the process, they must stop the workflow to resolve it before it extends. In addition to a change in the way of handling quality, this also implies a cultural transformation: everyone becomes responsible for quality. 
  • Create Knowledge: the days of only developing what was planned in the beginning of the project are gone. Creating knowledge is about learning during the work, observing the market, receiving feedback from users and reprioritizing. It is important to create a culture of accepting changes, provided such changes are duly managed and shared among all team members. 
  • Defer Commitment: before deciding, reduce the uncertainties. This means having concrete facts as guides, not being based on speculations. Commitments are permanent decisions. This principle is strongly connected to the principle of Create Knowledge that is: learn, see and listen to determine. 
  • Delivery Fast: it is no use releasing on the next year a product that is necessary now, right? In Lean Software Development, speed is related to market volatility but also to quickly correcting mistakes and collecting feedback. Now, being fast cannot mean losing quality. For this reason, plans, processes, organization, standardization and cohesive team are mandatory to work in this principle. 
  • Respect People: here, we must look at respect broadly. Obviously, politeness is essential, but trust is also included in this case. This means understanding the expertise of each team member and believing in their potential; it means listening to everyone and assessing their ideas equally, regardless of their role. A team that respects itself works better and in harmony. 
  • Optimize the Whole:  here comes an aspect that is heavily addressed in Lean: the important thing is to optimize the whole, not the parts. Aristotle said: the whole is greater than the sum of its parts. The end product is not the result only of codes, tests and interface designs. It involves initial client service, all meetings, all processes and all lessons learned. Optimizing the whole is about constant improvements from the beginning to the end of a project journey. This item is very difficult to follow since we are generally taught to optimize the parts: we are asked about individual productivity from each step or each person. Following this principle goes through learning how to see the forest, not only the trees. 
Lean Development Principles - SoftDesign

Source: https://www.remoteprogrammer.com/

A Cultural Change

Lean thinking is revolutionary to Software Development, but it is not simple. It requires a cultural change, absorption of principles, and transformation of long-standing attitudes in our corporates. 

Many times, we see teams capable of implementing Scrum, but having the feeling that there is something missing: agile culture. Studying Lean and its principles is one of the most valuable paths to absorb this culture, because in it we do not simply get the definition of a work methodology but look deeply into the principles. It is like it enabled us to truly understand the reasons for agile. 

Need help implementing Lean Software Development at your company? Fill out the form below so we can help you.

Let’s build exceptional software solutions together!

Experience having a reliable partner to your IT challenges. Let’s talk about our unique approach to discover and deliver outstanding solutions.

*Related Content: What is Lean Change Management?

Author's photo

Micaela L. Rossetti

Head of Marketing at SoftDesign. Journalist, MSc in Social Communication and Project Manager (MBA). Specialist in Growth Marketing, Search Engine Marketing, Inbound Marketing e Content Marketing.

Do you want to know more about design, strategy, and technology?