Today I found out that if I don’t change a few things very soon, I am going to be the bottleneck in my team’s upcoming development projects. I will have people waiting around for me to catch up and get my piece of the puzzle finished. Never good. This realization made me review my thoughts on “The Goal” by Eliyahu M. Goldratt.
The web development cycle is a lot like a manufacturing plant. A product (web page, widget, whatever) has to be treated and assembled by different machines (like business, development, QA) before it is a completed product. Whenever there is a sequence such as this, one part of the process will inevitably be the part that takes the longest and impedes the flow. This will cause all the parts downstream to wait and waste time sitting idle.
Up until today the developers have had so much work in front of them that I have not had to develop the new projects and initiatives to hand off to them. There is no point in spinning my wheels months ahead of time when there is no resources to work on the projects I design. But now the major projects are coming to a close and I have realized too late that I haven’t spent enough time developing the new projects. Now I am the bottleneck holding up production.
So how do you turn a bottleneck around? Here are some giblets of wisdom from the book:
Never have a bottleneck sitting idle
If you are really the part of the process the rest will wait on, then your time is the most important of all. The time the bottleneck wastes is time the whole system loses, because down the line they can’t do anything without your product. Shorten lunches, work extra hours, shuffle priorities. Make sure that you are working on the things others are waiting on first, and then work on everything else.
Never have a bottleneck produce defective parts
This is a little harder – how do you know if what you are producing is defective? One way is to make sure there is some quality assurance upstream from you. If you are like me and are in charge of developing the concepts and design, make sure that the concepts are sound and agreed upon by business units. If you spend a few weeks designing a project that later has to be scrapped because the boss doesn’t agree with it, that’s a few weeks lost for everyone.
Never have a bottleneck working on parts you don’t need
If you really are the piece that is holding up the rest of production, why would you work on anything extra? Get the basic parts completed as quickly as possible, and come back to the extra features and projects when you are no longer holding up production.
Take load off bottlenecks and give it to non-bottlenecks
If you simply don’t have the resources, then perhaps it is time to bring in some extra help. Since you will have people waiting on you, any time that they can spend helping you finish your parts faster is time well spent. If you are short on QA, then have your developers do unit testing before they hand it off. If you are short of creative design, include some designers from other departments. If necessary, you may have to hire or outsource to get projects completed on time. Outsourcing is expensive, but if the cost of not having the project done on time is greater than the cost of outsourcing then it makes sense.
Make bottlenecks work on only what will contribute to throughput today
It makes no sense to be working on future projects when you have people waiting on you today. Make sure that the parts you are completing can be worked on immediately after you hand them off. That way you ensure that you are not holding up production any longer than you have to.
The idea is to change the situation so that the bottleneck’s capacity can meet the demand placed upon it. Everything else in the system has more capacity by definition, so offsetting the bottleneck makes everything more productive. Don’t be surprised to find that after you optimize one bottleneck, another pops up. What do you then? The first step is to identify the weakest link, then do what you can to make sure it has the capacity to meet the demand.