Let’s say you have a list of tasks to do and some time at hand (say 8 hours). In order to be efficient, you full in your schedule choc-a-block. But guess what happens, less tasks get done and you end up exhausted. Sounds familiar?
This is the reason the wise have advised to include some slack in the schedule. Include some buffer time, some time for context switching, or maybe some time for a coffee or two. Consider a highway that can accommodate 100 cars. But if all the 100 cars are there at the same moment, the traffic would come to a standstill owing to the congestion. For a free flow, it is imperative that the cars are spaced apart so that they can drive along smoothly and not crawl.
It is a similar situation with software development. In order to deliver early, some teams pack in too much work in their day. As a result, they are not able to complete all the planned features. Or if they are able to do so, the “definition of done” is not adhered to. And worst of all, the quality suffers. Not to mention that the team burns out while rushing through the work. We are not talking about letting the teams kick back and relax and not do any work. We are talking about doing work with a sense of urgency while not forgetting to take the occasional break. If you plan to work for stay in office for 8 hours, don’t plan work for more than 6 to 6.5 hours else you will end up tired and your work might not be as good as you would want it to be.
If you plan well, you can have just enough work in a day and build a schedule over days that would allow you to deliver stuff regularly, while keeping the quality alive and enjoying sound mental and physical health. True, one can not have enough time to do enough stuff as work never seems to come to an end. But, simply rushing through work ALL the time doesn’t help either. Move with a sense of urgency but take time to breathe. This reminds me of an old Zen adage: “You should sit in meditation for 20 minutes a day, unless you’re too busy. Then you should sit for an hour.“