Critical chain strongly recommends the use of buffers. It is the right thing to do. But just as local optimization does not necessarily lead to global optimization, adding safety to every task does not mean the project will be protected, which was the objective of adding buffers to being with. So how does this buffer management work?
Making Kanban work in matrix organizations
For those of us working in matrix organizations, this is reality. We have to constantly juggle between projects, maintenance and operational work. It takes forever for the work to get done. One who screams the loudest always appears to get attention. Work is typically assigned to teams based on schedules and forecasts. The nail in the coffin is that the estimates are treated as deterministic when they are, in fact, probabilistic; i.e. estimates turn into commitment as soon as it gets entered into the Gantt (or a roadmap)
Speed up project delivery using Critical Chain
Critical Chain is an application of Theory of Constraints (ToC) first proposed by Eli Goldratt. The premise of ToC is that just as a strength of a chain is determined by its weakest link, the throughput of any system is determined by its constraint or the bottleneck. In any system, there will be just one or two constraint/s that determines throughput.
If we consider a project as a set of dependent events; a.k.a. a chain, then the critical path is the project constraint. The length of the critical path dictates when the project can be completed. Any task that is late on a critical path makes the project late. However, the critical path assumes resources are available 100% of the time. This is an incorrect assumption especially if you are working in a matrix organizational structure. The resource you need might only be available 50% of the time. Your project schedule should reflect this.
On estimating project tasks
Estimation is one of the most important components of project management. In my opinion it is second only to the creation of a work breakdown structure (WBS). Project schedule and costs are directly impacted by accuracy of the estimation. Whenever I bring up the subject of estimation as a topic of discussion, invariably someone will mention: “We typically end up underestimating the amount of time needed to complete tasks – especially unfamiliar tasks.” The one common theme that resonated was that everyone was reasonably confident that the tasks would be finished on time. After all, they did add safety to tasks to account for variation. So if we had safety protecting the tasks, why then do we not finish projects on time? Before we look at answering this question, let’s briefly look at the principle behind Theory of Constraints.
No such thing as multitasking
There is no such thing as multitasking. Humans are incapable at multitasking. We only task switch. And so do computers. The difference is that computers can task switch at a much faster rate to create an illusion of multitasking. I’ll use the term multitasking and task switching interchangeably for the reminder of this post.
Importance of Kanban work-in-progress (WIP) limits
Traffic Jams! For some it is the bane of driving. Accidents, construction, reduced speed zones are all some of the root causes. But did you know of Phantom Traffic Jams? For no apparent reason the traffic slows to a crawl. No accidents or lane closures and there is no easy way out. Researchers have linked such phantom traffic jams to traffic density and variations in driver behavior. A trivial reason such as a driver braking too hard, can cause a phantom traffic jam 8 to 10 kms behind. And this traffic jam takes a life of its own. You could spend hours within that jam. So what does phantom traffic jams have to do with WIP limits on Kanban for software development?