In case you haven’t heard, Washington DC has recently been crowned with the prestigious title of worst traffic city in the United States. Move over Los Angeles, there’s a new sheriff in town! As a resident and worker in one of Virginia’s main business hubs, known as Tysons Corner, I have seen my share of traffic jams. In late January of this year I had front row seats to one of the more memorable traffic disasters the Capital city has ever seen.
It was about 3pm when the first snow flake touched down. Almost immediately the office parking lots around Tysons Corner came to life with workers scurrying to beat the avalanche of traffic trying to rush home before the winter storm hit. Tysons Corner’s 120,000 workers rushed onto the area’s boulevard tributaries headed for the Dulles Toll Rd. and 495. I don’t think it could have been scripted any better. In a matter of 5 minutes, Tysons Corner’s major arteries reached 100% capacity and began overflowing and backing up into upstream side roads and parking lots.
After 3 hours of watching this debacle climax from the comfort of my office, we started seeing the futility of the situation outside. Stranded cars littered the roadway and shortly thereafter coworkers who had tried to beat the rush 3 hours earlier began returning to the office to tell their war stories. It was a truly a sight to be seen!
While this illustrates an extreme case of system overload, it draws similar parallels to the important correlation between capacity and throughput. Simply put, capacity describes how much stuff will fit into a system, while throughput describes to how much stuff will flow. This traffic catastrophe illustrates that the traffic system does not maximize the flow of vehicles when it is filled to 100% capacity. At 100% capacity, nothing flows. As it turns out, the optimal capacity to maximize traffic flow is about 65%.
Similarly, development teams do not maximize the flow of work when their workload reaches the team’s capacity. It is important to build slack into a team’s capacity. Slack allows team members to have time for emails, meetings, and impromptu office gabbing. Most importantly slack allows workers in the creative thinking world the buffer they need to architect a sound solution for complex problems.
Often times project managers want to fill their technical team’s capacity to the brim. Some PM’s want to put an equation together to figure out a team’s output or flow based on available hours. It’s really hard to estimate work in the creative thinking world. It’s so hard that it’s referred to as a black art.
Since precise estimates are nearly impossible to make, slack becomes even more important. It is best for developers to estimate based upon what we do know and make sure slack is built into our estimates to allow for a certain amount of discovery. After all, as a good friend of mine says, software development is more of an art than a science!
We’ll continue this conversation in our next blog post as we starting exploring limiting the work in progress.