Avoiding hour creep: get your work done and still go home at 5PM
You want to work 40 hours a week, you want to head home at 5PM, but—there’s this bug. And you’re stuck, and you really need to fix it, and you’re in the middle so you work just a little longer. Next thing you know you’re leaving work at 6PM.
And before long you’re working 50 hours a week, and then 60 hours a week, and if you stop working overtime it’ll hit your output, and then your manager will have a talk with you but how you really need to put in more effort. So now you’re burning out, and you’re not sure what you can do about it.
But what if you were more productive?
What if you knew how to get your work done on company time, and could spent your own time on whatever you wanted?
You can—with a little time management.
Before we get to the actual techniques you’ll be using, some preliminaries.
First, these techniques will only work if you have a manager who judges you based on results, not hours in the office. Keep in mind that there are many managers who claim they want a 50-hour workweek, but in practice will be happy if you do a good job in just 40. I’m also assuming your company is not in constant crisis mode. If these assumptions are wrong, better time management won’t help: it’s time to find another job.
Second, these techniques are here to help you in day-to-day time management. If production is down, you may need to work longer hours. (And again, if production is down every week, it’s time to find another job.)
Finally, for simplicity’s sake I’m assuming you get in at 9:00AM and want to leave at 5:PM. Adjust the times below accordingly if you start later in the day.
Taking control over your time
Since your problem is time creep, the solution is hard limits on when you can start new work—together with time allocated to planning so future work is more productive.
Here’s the short version of a schedule that will help you do more in less time:
- When you get in to work you read your checkpoint from the previous workday (I’ll explain this in a bit).
- Until 3:30PM you work as you normally would.
- After 3:30PM you continue on any existing task you’re already working on. If you finish that task you can start new tasks only if you know they will take 15 minutes or less. If you don’t have any suitable tasks you should spend this time planning future work.
- At 4:45PM you stop what you’re doing and checkpoint your work.
- At 5:00PM you go home.
Let’s delve deeper so you can understand what to do, and why this will help you.
End of day → start of next day: checkpointing
In the last 15 minutes of your day you stop working and checkpoint your work. That is, you write down everything you need to know to get started quickly the next morning when you come to work.
If you’re in the middle of a task, for example, you can check in “XXX” comments into your code with notes on the next changes you were planning to make. If you’re doing planning, you can assign yourself a task and write down as much as possible about how you should implement it.
This has two benefits:
- Next morning when you get to work, and even more so after a weekend or vacation, you’ll spend much less time context swapping and trying to remember where you were. Instead, you’ll have clear notes about what to do next.
- By planning your work for the next day, you’re setting up your brain to work out the problem in the background, while you’re enjoying your free time. You’re more likely to wake up in the morning with a solution to a hard problem, or have an insight in the shower. For more about this see Rich Hickey’s talk on Hammock Driven-Development.
No new large tasks after 3:30PM
By the time the afternoon rolls by you’ve been working for quite a few hours, and your brain isn’t going to work as well. If you’re in the middle of a task you can keep working on it, but if you finish a task you should stop taking on large new tasks near the end of the day. You’ll do much better starting them the next day, when you’re less tired and have a longer stretch of time to work on them.
How should you spend your time? You can focus on small tasks, like code reviews.
Even more importantly, you can spend your afternoon doing planning:
- Take vague tasks and write down the details and sub-tasks.
- Investigate potential solutions.
- Research new technologies.
- Try to understand the underlying causes of problems you’re seeing come up again and again.
- Think about the big picture of what you’re working on.
In the long run planning will make your implementation work faster. And by limiting planning to only part of your day you’re making sure you don’t spend all of your time planning.
Going home at 5:00PM exactly
There’s nothing inherently wrong with spending a few more minutes finishing something past 5:00PM. The problem is that you’re experiencing hour creep—it’s a problem for you specifically. Having a hard and fast rule about when you leave will force you not to stay until 6:00 or 7:00PM.
Plus, sometimes it’s not just a few minutes, sometimes you’ll need more than that to solve the problem. And a task that will take two hours in the evening might take you only 10 minutes in the morning, when you’re well-rested.
In the long run you’ll be more productive by not working long hours.
Here’s a recap of how you should be spending your day at work:
- 9:00AM-3:30PM: Start by reading your checkpoint notes from the day before so you can get started immediately, then work normally.
- 3:30PM-4:45PM: Continue on existing task, if you’re finished then transition to small tasks and planning.
- 4:45PM-5:00PM: Checkpoint your work, then leave your office.
- 5:00PM-…: Whatever you want to do.
There’s nothing magic about this particular set of rules, of course. You will likely want change or customize this plan to your own needs and situation.
Nonetheless, since you are suffering from hour creep I suggest following this particular plan for a couple of weeks just so you start getting a sense of the benefits. Once you’ve taken control over your time you can start modifying the rules to suit your needs better.