Share this article

Need a job?

Lean Software Development Principles – Part 2

In part two of our series, we expand on the principles outlined in part one and explore the value-stream map concept, process, and tools in lean software development.

 

The foundations of Lean:

Lean management focuses mostly on the elimination of waste and optimizing the software development process as a whole. There are many tools and techniques that can be used to reach that goal. The ultimate starting point for optimizing all the process elements is the preparation of the value-stream map.

It is in the value-stream map that each process element added to the final product is identified with its cost and value.

The value-stream map concept in lean software development:

A value-stream map is a visualized form of the software creation flow. It includes the representations of all resources used in product development as well as the time needed to accomplish each flow step. For example, the time needed to develop the code, approve and deploy the change, as well as the testing effort. It also distinguishes the inactive time of the process where knowledge handoffs are being done or the change is waiting for the approval as well as the bottlenecks in testing when detected defects bounce back to the testing phase again. Those flow elements can be considered as a waste and should be analyzed and eliminated or reduced as much as possible.

Value-stream map visualization

Identifying waste and inefficient process elements

A value-stream map shows how the value flows through the whole process and helps make improvements that will lead to the quick delivery of a better product. Grey squares represent the process elements like the development or testing phases. Arrows represent the transitions between phases. The timeline in the bottom shows the active and inactive periods of time in the flow. The essential thing about the value-stream map is the recognition of the value-added and non-value added periods. As you can see in the example above each square representing a flow part is related to ‘added value’ as well as the cost which can be measured in the effort needed to accomplish it. 

The timeline shows that there are lags between phases that bring absolutely no added value. All of this leads to the calculation of the effective value-added time. Elimination of ineffective process elements that are considered waste can greatly increase the value-added time. This results in lower cost and faster delivery as well as more frequent feedback from the customer.

Tools

The software development process, due to its nature, can be highly unpredictable. For example, bouncing defects from the test phase back to the development process can seriously affect the developers’ work. That’s why it’s important not to only visualize each step of the process but also the work of team members. There are widely used tools like JIRA or Kanban which help manage and optimize the workflow as well as give information on the effort for each process step which is needed to visualize the value-stream map.

 Benefits of using process management tools:

  1. They give insight into how much effort was spent on each process step e.g. analysis, development or testing phase 
  2. What the team capacity is and how many story points the team is able to deliver
  3. What the bottlenecks are in the delivery process

All these observations can be measured and applied in the value-stream map. Also, any related waste can be either completely eliminated or at least reduced.

Applying lean software development

Lean management can be applied in any business process. In software development, it leads to an optimized and controlled software creation flow which continuously evolves in time while the development team goes further into the project development. To fully understand that we will show how to apply lean principles on an example project in part 3.

Share this article

Need a job?

Related Articles

Five steps to your managed remote software development teams with Algoteque

In today’s digital world, remote software development teams are becoming increasingly popular. Companies are seeking top talent from around the globe to meet their business…

Why outsourcing to Poland gives you a Competitive Edge

The trend of outsourcing managed remote teams is flourishing worldwide, and it will continue through 2023 and beyond. The outsourcing market in Central Europe is…

The rise of low-code and no-code platforms for rapid application development

The idea of no-code and low-code platforms started in the early 2000s with the emergence of visual programming languages and drag-and-drop interfaces.

The emergence of serverless computing and its benefits for developers and businesses

How the shift to serverless computing is unlocking a world of efficiency, simplicity, and cost-savings for developers and businesses alike. Introduction: In a digital age…

Machine Learning and Artificial Intelligence: Differences and Applications

Machine learning and artificial intelligence are terms that are used interchangeably, however, both AI (Artificial Intelligence) and Machine Learning differ in various aspects.

The Importance of Testing for a Successful Project

Great products have one thing in common: they are tested repeatedly during production. When creating a product, software houses want to capitalize on products with…

A Guide to Backend Frameworks in 2022

Backend frameworks are evolving at a fast pace and developers are looking for new ways to keep up with the requirements of users. In this…

Case Studies

Join our community

We create and deliver innovative technologies on roboost platforms and tools. Working with Algoteque means flexibility, respect and long term choices.