I’ve had the grave misfortune to work for companies that believed that software developers needed to be utilized at 100% capacity in order to maximize their value and efficiency.
First of all, what do I mean by “100% capacity”?
Let’s say a software developer says they will take about a month to complete a project, with the stipulation that they’re using 50% of their time doing so. Without fail, someone will suggest they complete the project in half a month by spending 100% of their time on that project. Or they’ll ask that developer to spend the other 50% of their time working on a separate project.
Why is this a dumb thing to do?
Let’s ignore the fact that developers are human beings, not resources to be “maximized” nor numbers to push around on spreadsheets.
When a developer is at full capacity, they no longer have any room for error. If there was a miscalculation in their estimates, they will have to push back their deadlines, which could have disastrous effects further downstream. If there had been some slack in their capacity, the developer would have been able to absorb those errors and make their deadline anyway.
Or say some issue outside of the project crops up that requires the attention of the developer, like a bug or a completely new project. Why would a developer be tasked with a new project while they’re working on something else? Consider a company in an especially volatile industry that requires changing directions frequently in order to stay competitive.
This is called unplanned work. The developer will either have to ignore the new issue, or delay their original project by however long they’re working on the new one.
If the developer had not been working at 100% capacity, they could have folded any unplanned work into their schedule. But because most companies operate under the assumption that they need to maximize every single worker’s time, everything inevitably grinds to a halt.
There will always be unplanned work. Bugs will always crop up at inopportune times. Many companies will need to pivot their business in a new direction. But because of this dumb idea companies have, they cannot easily take on new work without jeopardizing current work in progress.
If you ever wonder why nothing ever seems to get done even though everyone is working on something, look no further.