Time and Project Management for Programmers

Programming is about getting to a minimum viable solution quickly and then refining it. That only works if the time is actually there, so this is how I account for it.

The three rules I work from

Time management

Start by knowing what you actually have. There are 24 hours in a day, and for most people they split roughly three ways:

That last eight is what you are really budgeting. Being honest about its size is the whole exercise, because a plan that quietly assumes twelve free hours fails on the first day and takes your confidence with it.

Building a routine that holds

The simplest advice I have found, in order:

  1. Use a calendar app. This is not optional. A schedule you are holding in your head is one you are also negotiating with.
  2. Fill in everything you already have to do — work, sleep, meals. The fixed things first.
  3. Build the routine around those constants rather than around what you wish the week looked like.
  4. Fill the empty space with project steps, and guess how long each will take.
  5. Compare the guess with what it actually took. This is the part that pays off: it keeps you accountable to a timetable, and after a few weeks you have a real sense of how long a given kind of task takes you.

It is about finding the balance that works, and the only way to find it is to write down the estimate and then check it.

Project management

The same idea, applied to the work itself:

Why the estimate matters more than the plan

The plan will be wrong. That is fine — the point of writing the estimate down is not to be right, it is to find out how wrong you are and by how much, so that the next estimate is better. After a few projects you stop guessing and start knowing, and that is the difference between a deadline you set and a deadline you meet.