But what’s life without a few time management challenges, right?
As programmers, we get asked to estimate things all the time and sadly most of us aren’t very good at it.
The industry as a whole tells us that much with IT projects coming in late more often than not.
So when it came time to estimate how long it would take to code my second premium plugin at the start of January, I physically cringed.
Time budgeting and managing your time
Like most of you reading this, I tend to go through ebbs and flows when it comes to working on projects outside of work hours.
I need to be careful to schedule something that I find personally realistic and achievable so that I don’t beat myself up if I don’t end up putting that many hours in for whatever reason (or even if I put more in).
I wanted to know, when I went back to work this year, what my schedule would roughly look like, and when I could realistically launch this thing.
Anyway, to make a long story short, I figured that once I’m back on the job, I’ll have a time budget of roughly 15 hours per week without burning myself out.
And since I’ve completely cut my freelancing at the moment I’m getting the most hours I’ve ever been able to spend on developing products which I’m finding really fun.
It’s great news, because I’m hoping this means that instead of a development and testing cycle that used to take 6 months+, I’ll be able to cut that down dramatically without all the interruptions of other jobs.
How to evaluate your time
There’s a number of things that you need to consider when setting a time budget for yourself and in this article I’m hoping to explore some of them to help you set your own (realistic) time budget that you can use to put toward whatever project you want to work on.
This is a bit of a look into an analytical mind’s way of figuring out what time you have for projects and when you’re going to get things done.
The first step of creating a time budget
You need to ask yourself these two important questions:
- When would you ideally like to launch (be somewhat realistic, but still optimistic)
- How much time you have to put towards your project per week (be pessimistic)
I’m going to use myself as an example through this because it’s the story I know best. Sorry if you’re sick of hearing it
I’ve been planning on launching a WordPress plugin and I’ve set my initial sights on 1st Feb. I also know I have 15 hours to spend on all of my projects per week.
So from the start of Jan that means I have approximately 65 hours (I’m rounding) to dedicate over all.
It’s time for you to do the sums, how much time do you have from now until your desired launch date?
Next, do a stocktake of all the things you have on the go
Now that you have your figures sorted it’s time to move on to finding out what you’re currently spending time on and how to adjust that for your new project.
For me I have a number of projects that take up time in my 15 hours per week.
I need to find out what’s going to happen with them so that I can accommodate spending more time on my new project, hopefully without ignoring my other tasks. I do suspect there will be some scaling back.
Here’s what my stocktake looks like:
- I have blogging here
- There’s my other product (ThirstyAffiliates) which I’ve already decided to put on autopilot which means just admin tasks
- I have various other websites that I run including writing content for some niche sites
- Ongoing SEO tasks for ThirstyAffiliates and niche sites
- Various other projects (of which I’m being deliberately vague)
I estimate that by culling and chopping tasks here and there that don’t have any real urgency to them I have at least 5 hours of duties during a normal week.
That leaves me with approximately 10 hours to put towards my new project per week.
Now it’s your turn. Open up a notepad and just write down in a very high level way like I have what things you’re currently involved with.
Now estimate your time remaining on tasks
Because 65 hours is the total time I have for putting towards all of my projects I want to do a big burst of productivity on my new project so that I can then scale it back and start paying more attention to my other tasks again.
This time I was a bit lucky that I was still on holidays for the first 9 days of January. I managed to squeeze out about 3 days of extra time.
With this extra time it means I’m going to have around 67 hours to do the full code, test and prepare for launch of the plugin.
If you haven’t read my end of year recap post on how to launch a product while still working a full time job, go check it out now. I detailed a lot of stuff on what I did to prepare for the launch of my first plugin and I’ll be repeating some (if not all) of these steps again this time.
Write down a list of things left to do on your project. It can be as high level as you like, we’re going to break it down later.
- Design and implement website 1
- Design and implement website 2 (for shooting the video, trust me this will all make sense when I launch in the coming weeks)
- Script, shoot and edit video screencast
- Sort out payment system and implement
- Start on prelaunch activities
I know that I’m faster at some of these things than I am at the rest. But there’s some big items there too that I need to dig into.
Coding and testing is going to take a while because I’m really going through it with a fine tooth comb to make sure I don’t have any bugs on release.
There’s nothing worse than releasing a product and having to send out an update straight away to customers because you found a show stopping bug.
With the websites, I’m pretty quick at rolling these out because I do it everyday.
Video shooting is quick, but writing the script and editing all takes time.
And prelaunch, well.. yeah we’ll see how much time I have for that.
As you can see I was pretty much as the start of the process when I wrote this list. You might be part way through or like me you might not have started yet.
You need to write down these tasks now. Just get them out of your head and into a rough list because we’re going to use them in the next step.
Breaking down your tasks will help
Looking at the tasks in their “big form” like that can be pretty intimidating to say the least.
Two websites!, coding!, testing!, video!, zOmg!
It sounds completely bonkers.
Now is the time that you break down the tasks into smaller, more manageable pieces.
For recording and estimating how much time you have on tasks like programming you should be using a bug tracking/project management system.
I’m using an extra addon for Mantis called Timecard and I was able to set this whole system up in about an hour. There’s heaps of paid web based solutions that will have you up and running in even less.
Now that I have a bug tracker, I can plug in every little task I think of that I have left to do and at the end of it I get a running tally of how much time is left on the project overall.
Giving estimates for each task is about 1000x easier than estimating a big chunk of work. This is because an estimate for a small bit of work is much simpler to explain and encapsulate than something overwhelming thing like “make a website”.
If you don’t have a bug tracking or project management system of some sort like this, then I highly recommend you set one up, even if it’s just a basic one like mine.
You will save a truck load of time trying to figure out if you have coded everything you wanted to code, plus you don’t need to hold it all in your head (a bad programmer’s habit).
All in all, by breaking down the tasks further than what you see above it is possible to determine exactly how much time you have left on each task. This gives you three major benefits:
- A realistic estimate of how much work you have to do
- The ability to see if anything needs to get chopped to make your release date
- The insight to know exactly what needs to get chopped
This is the point where you start chopping in order to make the date you’ve set for yourself. Or alternatively, you can extend the date to accomodate the project if it’s not too far out.
If you’re really, really far out then I think you need to reassess what you want to included in your version 1.0.
For me, by chopping some of my prelaunch activities and doing them throughout the launch I’m hopeful I can make the date or at least be within a week or so which I’m pretty happy with.
How about you? What are your project management tools telling you now?
Using your tools
Don’t forget to use the tools you’ve setup for yourself.
Sounds silly, but that’s what they’re for and it’s surprising how many people neglect them once it’s all setup nicely.
A good project management tool will let you compare how much time you estimated on tasks to how much time you actually did spend.
This is super useful as a benchmarking tool for estimating things in the future and has the added benefit of giving you the appearance of prophetic abilities when it comes to estimating how long typical tasks take.
Tell me how you do it
Now it’s your turn, tell everyone in the comments what tools you use for keeping track of your projects.
This is your chance to brag about your sweet setup and tell me how outdated I am and that I need to get on board with the tools you’re using.
And if you say “it’s just in my head” I will personally come down to those comments and kick you in your digital ass. Go re-read this post and earn your licence to being a time mastering, gantt chart dominating, time budgeting god.