In fact, lean principles are based on lean production. The name that “lean” tells us the meaning and basis easly. “Lean” isn’t a software development approach, but a product production approach as the name gives. It is based on valuing employees and continuous development.
Although the Lean approach is a production approach, it can be adapted to software development processes. It has a very important role in the history of agile software development methodology.
Perhaps many of you were able to face with the Lean Approach during software development processes. Isn’t software development the process of actually creating and sustaining a product? In fact, every developer wants to develop faster, less costly and quality software. And the work you do will feel good. Maybe that also shows quality.
Principles
Amplify Learning:
Information should be kept up to date. Efforts should be made to ensure that the team is constantly learning.
Decide as Late as Possible:
As possible, no action should not be started without collecting data on all components. Because making a decision with incomplete information and starting work will reveal many problems later on. In addition, it is necessary not to be late at the point of decision and calculate the most accurate time.
Delive as Fast as Possible:
Fast delivery of the product makes the customer satisfied. The product should be produced as quickly as possible. Therefore, the product should be produced only as requested by the customer. Neither more nor less.
Empower the Team:
The most important thing for increase success and ability of team is doing all necessaries. The other important thing to empower team is building team members trust each other. If managers respect the team, team members also respect each other. Definitely, the right planning should be done in order to avoid the individual-based guilt feeling in the team.
Built Integrity In:
Integrity with the system owner should be ensured. It is absolutely necessary to keep the communication within the system intact and to establish a good bond with the customer. In addition, it is necessary to understand the customer correctly at every stage.
Eliminating Waste
Eliminate Waste The basis of the Lean approach is the product. Everything is product oriented.
For the software development process, the following list below can be considered as waste;
- Developing features that the customer does not want, creating and completing unnecessary work items,
- Unnecessary waits and processes,
- Uncertainty of customer requests,
- Unnecessary interface designs
- etc.
Even documentation, management and planning processes can be considered a waste for some software developers. Although I do not agree with the idea that all of them are waste, I believe that creating static documentation in constantly evolving systems would be wasteful. Because there will be a waste of time and work to revise the document at every stage. Instead, it should be preferred to use structures that create dynamic/automatic documents. Rather write up explanations to the code definitons.
If customer tells you as sounds written below, It means you have been successful.
I would do it this way too. It's exactly how I wanted it.
“Do mass production! Decrease the cost! Do not compromise on quality!”
A factory in Japan wanted to produce low-cost and quality products.
In fact, it can be ensured that the cost remains at a minimum level by mass production. It seems that it is not possible to expect a quality product to come out with this method.
Due to mass production, some products produced at any given time were all produced with the same problem. As a result of many products produced with these problems, the quality of the brand decreased. Many ideas have been proposed to solve the problem. One of them was that the quality control was carried out by the worker on the production line.
“If the worker detects any problems, they should be able to stop the production line!”
Of course, although this idea was the right solution for some people, it was a very bad idea for some. While this method will work to solve the problem, it would be dangerous to give this right to the worker. Especially in those years, the workers was a second class person. And some questions was;
- Should it be done? Wouldn’t the factory be damaged if it was done?
- How do we give control of the production line to a worker?
- How can a worker stop a factory while it is producing nonstop?
- Doesn’t this authority harm the production plan? .
- etc.
In the early days after the implementation of this idea, production at the factory stopped occasionally. The action of stopping the production line decreased as the situations that hindered the quality were eliminated. And then, as targeted, better quality products with less cost were produced by non-stop mass production.
Giving the worker the right to have quality control and to stop the production is to give value to the worker and to trust. This story is an example of trusting the team and increasing the strength of the team.
Thank you for your reading. See you on new post.
I recommend reading the book shown below.

Lean Software Development An Agile Toolkit
Marry & Tom POPPENDİECK







Add Comment