+ In lean manufacturing, one key aspect is the notion of + lead time: the time needed by the company to deliver the + product requested by the client starting when the client makes the + order. For lean practitioners, the way to deliver at the right time is + by improving how their delivery system works with... The pull system! +
++ The pull system is in opposition of the push system. Instead of trying + to make everyone work at their maximum capacity, we try to improve the + time it needs to deliver a feature. +
++ I wanted to create a simulation to see what are the consequences of + different strategy patterns and which is the most effective. +
++ Let's see what happens when we want to create a Newsletter mobile app. + We have some functionalities to implement and we want to measure how + long it takes. +
++ Note: as we'll visualize work done between teams, it needs space so + this article has a better experience on desktop. +
++ The project who has just started, our goal is to make a product as fast + as you can. With you, you'll have the product team, designers, + developers and a release team. +
++ First things first, what is a feature? A feature is a piece of software + that enables things for the user. It can be the capability to + read articles or to share them or even to be able to read one without + the need for internet connection. In our simulation, a feature will be + represented as follow: +
+
+ It starts with the intention "{{ feature.name }}". This is what we'll add to the mobile app.
+
+ ({{ feature.complexity }}) is the + complexity of the feature. The more complex a feature is, the more + chance we introduce a defect. +
++ {{ feature.leadTime }}d is the number of + days the teams work on the feature. The goal is to reduce this number + and deliver as fast as possible. +
+
+
+ Okay! We have 20 features to deliver. It takes one day for each team to + finish their part for each feature. +
+ +Each day, you can choose between 2 strategies:
++ In this article we'll focus on how these strategies are efficient and + what are the impact on the quality the teams produce. Let's dive in each + strategy! +
++ By pushing features from the start, we try to maximize the time worked + by teams on the product. This way, no money is wasted, everyone has + everytime something to do. +
++ Now, instead of pushing features, we wait for the next team to be ready. + It comes from the assumptions that we will never reach the best score + ever aka "the push system where everything goes right". We know we + prefer waiting for next team to be ready before doing some extra work + than having stock of feature pre-baked. +
++ To make this happen we first need to setup blue bins: our security + stocks Blue bins make sure teams can work without any blockers. The next + team will always have material to transform. Here, we'll have 2 blue + bins per team. +
+ ++ Not so obvious... So what can we learn? What are the patterns we can + identify? +
+
+ In a primarly
+ In a primarly
+ Before any conclusion, comparing two simulations is not enough. Let's be + more scientific here and let's generate 200 projects delivering the 20 + features of the Newsletter app and see what happens. +
++ Okay, now we're pretty sure! For a long time, I wanted a proof + to trust the process, that's the beauty of simulations. . It's + quite impossible to convince people when we're in the middle of the + battle. If teams change every time, you are doomed to get this problem + over and over again. +
++ Teams tend to underestimate how long a project will be. And how hard it + will be to work with others. +
++ Note that problem solving is always a good practice. The capacity of the + team to stop and think about how they work is critical. +
++ If we're not in a good pace, we just have to try harder. Only once. + "Just in time" becomes "Just this time" many times. So teams + overproduce. Creating stock and latent defects the teams need to rework. + The worse the project do, the more silot we become and we tend to argue + with a "I've done my job, if the project fails it's not my fault.". The + fact is that it's nobody's fault, it's a system. +
++ Short term objectives become the norm. It is never the right time to do + problem solving. To think on how we work. +
++ Pull system must be a constrain not a choice with the idea to build + around. +
++ The fact that + faster is slower + is counter-intuitive but it is a fact. The more we push the more we are + slowing down the system. +
++ When money and pressure are in the game, fear, uncertainty, and doubt + spread out rapidly. So we rush, as fast as we can, and when a team has + nothing to do, it becomes a disaster: money are being burned. +
++ Teams will overproduce. They will do every pieces they can as they can: + product team will prepare their features, designers will design every + screens, developers will rush to code. Then, they struggle to get these + pieces to the very end. So the fear of having nothing to give to the + next team pushes us to produce just in case. Bugs lead to more bugs that + lead to more bugs. The productivity drops. +
+
+ So the
- The fact that - faster is slower - is counter-intuitive but it is a fact. The more we push the more we are - slowing down the system. -
-- When money and pressure are in the game, fear, uncertainty, and doubt - spread out rapidly. So we rush, as fast as we can, and when a team has - nothing to do, it becomes a disaster: money are being burned. -
-- Teams will overproduce. They will do every pieces they can as they can: - product team will prepare their features, designers will design every - screens, developers will rush to code. Then, they struggle to get these - pieces to the very end. So the fear of having nothing to give to the next - team pushes us to produce just in case. Bugs lead to more bugs that lead - to more bugs. The productivity drops. -
-
- So the
- In lean manufacturing, one key aspect is the notion of - lead time: the time needed by the company to deliver the product - requested by the client starting when the client makes the order. For lean - practitioners, the way to deliver at the right time is by improving how - their delivery system works with... The pull system! -
-- The pull system is in opposition of the push system. Instead of trying to - make everyone work at their maximum capacity, we try to improve the time - it needs to deliver a feature. -
-- I wanted to create a simulation to see what are the consequences of - different strategy patterns and which is the most effective. -
-- Let's see what happens when we want to create a Newsletter mobile app. We - have some functionalities to implement and we want to measure how long it - takes. -
-- Note: as we'll visualize work done between teams, it needs space so - this article has a better experience on desktop. -
-- Okay, now we're pretty sure! For a long time, I wanted a proof - to trust the process, that's the beauty of simulations. . It's - quite impossible to convince people when we're in the middle of the - battle. If teams change every time, you are doomed to get this problem - over and over again. -
-- Teams tend to underestimate how long a project will be. And how hard it - will be to work with others. -
-- Note that problem solving is always a good practice. The capacity of the - team to stop and think about how they work is critical. -
-- If we're not in a good pace, we just have to try harder. Only once. "Just - in time" becomes "Just this time" many times. So teams overproduce. - Creating stock and latent defects the teams need to rework. The worse the - project do, the more silot we become and we tend to argue with a "I've - done my job, if the project fails it's not my fault.". The fact is that - it's nobody's fault, it's a system. -
-- Short term objectives become the norm. It is never the right time to do - problem solving. To think on how we work. -
-- Pull system must be a constrain not a choice with the idea to build - around. -
-- The project who has just started, our goal is to make a product as fast as - you can. With you, you'll have the product team, designers, developers and - a release team. -
-- First things first, what is a feature? A feature is a piece of software - that enables things for the user. It can be the capability to - read articles or to share them or even to be able to read one without the - need for internet connection. In our simulation, a feature will be - represented as follow: -
-
- It starts with the intention "{{ feature.name }}". This is what we'll add to the mobile app.
-
- ({{ feature.complexity }}) is the complexity - of the feature. The more complex a feature is, the more chance we - introduce a defect. -
-- {{ feature.leadTime }}d is the number of days - the teams work on the feature. The goal is to reduce this number and - deliver as fast as possible. -
-
-
- Okay! We have 20 features to deliver. It takes one day for each team to - finish their part for each feature. -
- -Each day, you can choose between 2 strategies:
-- In this article we'll focus on how these strategies are efficient and what - are the impact on the quality the teams produce. Let's dive in each - strategy! -
-- By pushing features from the start, we try to maximize the time worked by - teams on the product. This way, no money is wasted, everyone has everytime - something to do. -
-- Now, instead of pushing features, we wait for the next team to be ready. - It comes from the assumptions that we will never reach the best score ever - aka "the push system where everything goes right". We know we prefer - waiting for next team to be ready before doing some extra work than having - stock of feature pre-baked. -
-- To make this happen we first need to setup blue bins: our security stocks - Blue bins make sure teams can work without any blockers. The next team - will always have material to transform. Here, we'll have 2 blue bins per - team. -
- -- Not so obvious... So what can we learn? What are the patterns we can - identify? -
-
- In a primarly
- In a primarly
- Before any conclusion, comparing two simulations is not enough. Let's be - more scientific here and let's generate 200 projects delivering the 20 - features of the Newsletter app and see what happens. -
-