12 Min. Lesezeit

How to implement software projects faster and better with the LEAN method

lean
How to implement software projects faster and better with the LEAN method

LEAN software development is on everyone's lips, as it promises massive advantages, high efficiency, and significant quality boosts for software projects.

LEAN software development is on everyone's lips, as it promises massive advantages, high efficiency, and significant quality boosts for software projects. In this article, I will provide an overview of the advantages and disadvantages, the fundamental principles, and also tips on how you can apply LEAN in practice for your software development projects.

LEAN: The new stuff?

The origins of the so-called Lean Management System date back to the early 20th century when entrepreneur Sakichi Toyoda, along with his sons and engineer Taiichi Ohno, founded theToyota Production System. Soon, Toyota was known worldwide for its rapid innovation power. This was achieved through a strong focus on the perspective of customers, lean processes, their continuous improvement, and above all, the never-ending search for WASTE and itselimination.

Now, a century later, this management system has been adapted to the software development world. And indeed: These principles can be wonderfully applied to software projects and have often proven that a skilled application of LEAN can significantly boost productivity and quality.

Opportunities with LEAN

The method aims for the following advantages:

  • Faster delivery of software to customers
  • Higher quality of the produced software
  • Time savings by identifying and eliminating unnecessary process steps
  • Reduced project costs
  • Increased motivation of the entire team through more responsibility and decision-making authority

The challenge in introducing this method is that it only works if employees are well trained and experienced in eliminating WASTE. What this exactly means, we will look at now:

THE MOST IMPORTANT THING FIRST: VALUE vs. WASTE

To effectively use LEAN, it is essential to understand a central principle. Yes, like in any elaborate methodology, there is plenty of theory and lists here - and they are all meaningful. We will also delve deeper into these. But let's zoom out briefly and take a look at the big picture - at the one fundamental principle from which everything follows:

Rule #1: When you work, you transform time into VALUE and WASTE.

VALUE is everything that is demonstrably valuable to our end customers. Something that is useful and usable. Something for which customers are willing to pay us! WASTE is everything else. In every single meeting, we must ask ourselves: "Is this meeting so important that our customers are really willing to pay for it? To spend money?"

It is important to accept that there will always be WASTE. As soon as you work, you produce a part VALUE and a part WASTE.

The intuitive thought is probably: "I need to try to generate more VALUE". A good approach - but it is not the LEAN approach. Because LEAN means recognizing andeliminating WASTE as much as possible (the principle is called "Eliminate Waste" in English, so I also use the word in German ...).

Rule #2: If you produce less WASTE with the same output, you automatically produce more VALUE

VALUE and WASTE are, so to speak, viewed as communicating vessels. The amount of output remains the same, but the distribution changes. The less time you waste doing things that are considered ballast, the more of your time flows into the creation of something truly valuable, of VALUE.

How do I recognize whether something is VALUE or WASTE?

So now it is important to question and analyze everything you do with my time. This can be process steps or entire processes. This can be meetings, documents, documentation, software artifacts/source codes, workflows, the choice of your communication tools, and ultimately also blog articles.

Is this blog article VALUE or WASTE for our customers? To simply determine whether something is VALUE or WASTE, you can ask yourself 3 simple questions:

  1. Is it important for our customers? A sprint review meeting is probably important for our customers, as it allows us to quickly receive and incorporate feedback for our software project. A meeting about which coffee variety we prefer will likely be rated as less important.
  2. Does it have positive effects on one of our products or services? Whatever we do - if it has no (direct or indirect) impact on our offering, it has no impact on the customers and is therefore not to be considered VALUE.
  3. Is it correct / error-free? When we deliver software that we know or assume contains errors in critical areas, that is classic WASTE that consumes a lot of time and nerves. For comparison: An airbag that does not deploy in an accident delivers no value, no matter how well it was designed.

So how about this blog article?

  1. Is this blog article important for our customers? New employees at LEAN-Coders may not yet be as proficient in the LEAN methodology as our experienced colleagues. This blog article helps them acquire this knowledge more quickly. Additionally, we attract applicants who are also interested in this topic. Our customers benefit from this, as they demand nothing less than the highest quality in software development projects.
  2. Does this blog article have an impact on one of our products or services? Yes, because the faster new employees can apply the LEAN method in practice, the faster we as a company can successfully and qualitatively handle an even larger number of software projects.
  3. Is the blog article correct / error-free? 100% error-free will probably never be achieved - neither in blog articles nor in software (see alsoThe 5 biggest mistakes we made in 2021


With this schema, you can already get started. Next, there will be information on how to recognize and reduce WASTE in practice. Consider whether you think that continuing to read this article will have a direct or indirect impact on your customers and your products/services? If so, read on!

What types of WASTE are there?

When it comes to recognizing WASTE, it helps to know the most common types of WASTE for software projects. There will be a follow-up blog article on this, but here is a brief overview of the 7 biggest types of waste:

  1. Bureaucracy (Management Activities): Excessive management activities slow down service delivery. (I think we can all agree on that ...)
  2. Currently unnecessary features (Extra features): Prolongs the time until release/delivery to the customer. This results in feedback arriving later, responding to problems later, etc.
  3. "Multitasking" (Task switching): Switching back and forth between tasks creates overhead and inertia and ultimately reduces productivity.
  4. Delays (Waiting): Often "WASTE smells" and prolong the time until the product is delivered to end customers.
  5. Inefficient communication/documentation (Handoffs): Slows down project progress.
  6. Bugs, quality issues (Defects): Lead to the delivery of defective products.
  7. Incomplete work (Partially done work): Increases the complexity of the overall system without delivering added value. Ideally, projects should be worked through sequentially.


If you want to dive deeper into WASTE recognition and countermeasures, feel free to check out the following article:WASTE Alarm! 3 essential measures against bugs in software projects.

0

The 7 principles of LEAN software development

According to the LEAN method, the following 7 principles must be adhered to or kept in mind and improved to ensure the most efficient project progress. In combination with the previously discussed types of WASTE, we can now see a larger picture: The WASTES prevent a good implementation of these principles.

  • Eliminate WASTE: In line with the motto "there is always more WASTE", this is the core of LEAN. With a lot of practice and training, you will become a "WASTE detector" and can eliminate unnecessary ballast from the project.
  • Learn quickly: Here, "learning" particularly means internalizing customers and their processes, domain, problems, structure, and working methods. Learning quickly also means using rapid release cycles or prototypes to quickly receive feedback and "learn" what your customer really needs.
  • Decide late: Making a decision now that needs to be made in 2 months is WASTE. Because first of all, there is surely something more important to do right now than to decide something that has no impact yet. And secondly, in 2 months you might have much more information and could make a much better decision. Therefore, make sure to make decisions as early as necessary and as late as possible.
  • Deliver quickly: Fast release cycles bring VALUE quickly for customers, and you quickly receive feedback with which you can implement the next software package for the project even better. Scrum, for example, is an excellent project management method that supports fast release cycles.
  • Give responsibility to the team: Power to the People! Rely on the competence of your team. This eliminates unnecessary decision cycles and communication paths and ultimately also potential for misunderstandings. The decisions that the team can make based on its skill set should also be made by them.
  • Enforce integrity/quality: It has never been so important, but also never so easy, to implement complex software systems "defensively" and well thought out and structured. A well-considered system and software architecture, use of design patterns, linting, continuous integration, automated tests, etc. are good concrete means to maintain the integrity of the software.
  • Optimize the big picture: A project is only successful if all project parts work. Your software must integrate as smoothly into the overall system as a 3rd-party tool or the interface to the internal IT system. Another interesting dimension is the temporal one. It would be WASTE to want to foresee now which features might be desired in 2 years. But well-secured information that is already available can certainly be included in architectural considerations, etc.

I will also write a separate article on these principles in the near future, as a more detailed discussion at this point would exceed the scope.

7 tips for practice

In conclusion, I would like to give you a few tips that have proven effective in implementing LEAN in practice:

  • Better Done Than Perfect Delivering 50% VALUE early is better than delivering 100% VALUE late. Short release cycles and targeted avoidance of overengineering make this possible. Ask yourself: What features does the software absolutely need to go live with a first version?
  • Fail Fast, Learn Rapidly: Don't hesitate to tackle difficult chunks in your project early and learn quickly from the mistakes you make.
  • Think Big, Act Small: Think visionary, as if you were the market leader, but work (diligently) as if it were your first week as a sole entrepreneur.
  • Agile Software Development: Use Scrum, Kanban, or another agile software development method whenever possible. They offer many advantages that fit well with LEAN.
  • Full Transparency: Design processes, access, documentation, and communication as transparently as possible to find and eliminate WASTE faster and to support the principle of "learning quickly".
  • Retrospectives: Hold regular retrospective meetings to evaluate what has gone well or poorly in the project so far. Retrospectives are powerful WASTE identification tools.
  • Task Based Working (PULL instead of PUSH principle): Those who work task-based (e.g., with a Kanban/Scrum board or a task list) reduce communication overhead and waiting times. If you need to hand over a work package to someone, do not communicate immediately and directly, but create a task or a ticket first. The target person will take the work package (pull) when they have the capacity to do so.

Conclusion

LEAN is already in the name of LEAN-Coders. We stand for"Create Value Without Waste", and after reading this article, you now know very well what that means in practice. We are constantly working to sharpen and train our "WASTE detectors".

With LEAN, you can optimize your performance in software projects, increase quality, and even deliver faster.

If you are interested in collaborating or working with us as LEAN software developers, feel free to contact us here on the website or via social media.