This post is a part of a series of posts about iteration management. If you want to start from the beginning, go here.
Let’s take a break from our team-based planning talk about talk about you. Good planning starts with you and your ability to accurately track and plan for how you spend your own time. This will in turn help the team plan because you’re able to give the team a better idea of what you’ll be able to accomplish.
Track everything you do
Let’s be honest — tracking time isn’t really that much fun. We’ll do almost any menial task before we enter our time in a time tracking tool. Let’s put aside all of the accounting benefits of tracking your time (which is real money). Your success will be affected by how well you track how you spend your time.
I started tracking my time because I was doing consulting and I wanted to be ready in case someone came to me and questioned how I was spending my time. Then I started to see that I had a lot of meaningful data that I could use for my own benefit. I was able to look back and see how much time I spent on each project, on each work item, and how much time I spent doing development vs. analysis vs. testing vs. production support vs. project management vs. everything else.
You can track this information however you want, but I prefer Excel because I can set it up however I want and it’s easy to view, filter and aggregate past data.
This is really valuable data. If someone comes up to you and asks you how much work you’ll be able to get done next iteration, you’ll want to know how much time you typically can spend doing various activities. Often times they don’t ask you, but there’s an assumption of how much time people spend working on tickets. But if they’re assuming that you can spend 80% working on tickets but you actually only spend 70%, that’s 8 hours over 2 weeks that they think you have that you actually don’t have. Not only that, if you can back up your number with actual data, that’s a lot harder to argue with.
If you’re not tracking your time, you might have a lot of what I call “invisible time”. Invisible time is time that you spend doing something, but you aren’t tracking it and you don’t know where the time went. This is dangerous because you can actually end up having a lot of invisible time.
We all have random things to do that come up and keep us from working on our tasks that we have to do. This could be answering emails, hallway conversations, researching production support issues, or whatever else that might come up. Usually there aren’t tickets for these sort of things. I’m not saying that these activities are bad, but I want to know about them so that I can see if it’s getting out of hand.
I’m reasonable about this — I don’t write down that I spent 5 minutes answering an email — but if I spend 30 minutes or more doing something, I’m going to record that. I might even create a work item for it if that makes sense, because now other people will know that I did it and how much time I spent doing it.
I like to create tickets for everything I do when it makes sense to do so. This helps me cut down on the invisible time by making it visible to everyone. Having a record of work done in a work item tracking tool helps everyone plan better because it makes things visible to the people doing the planning. Maybe you’re getting inundated with production support requests and random analysis requests. Having work items for these sorts of things helps people see just how inundated you actually are and shows people what you’re spending your time on. However you do it, the point is that we want visibility into where our time goes.
Compare estimates vs. actuals
How accurate are your estimates? Do you have any idea? If you’re tracking the time you spend on a work item, you can compare the actual amount of time spent with the estimate that you gave, and this can help you get better at estimating.
Like many people, I’ve tended to underestimate tasks in the past. This was because when I thought of an estimate, I would typically think about how long it would take for me to get to a point where someone else could test the feature (after I did my testing, of course). But I found that I usually wasn’t accounting for time spent fixing bugs that the testers found, or even looking into questions that testers had about things that they thought were bugs that weren’t actually bugs. Once I started comparing my estimates, I was able to see what I was missing and start estimating better.
Protect your time
Let’s say that the people doing the planning come to me and ask me how much time I can spend working on development tickets in an iteration, and let’s say that I say 70%. While this is technically an estimate, in a way I’m making a commitment to them to try and spend at least 70% of my time working on tickets.
So what happens when your schedule starts to fill up with meetings? Maybe these meetings are coming from people outside your team.
My commitment is to my team first, and everyone else second. If that’s true, then I need to proactively manage my calendar so that it doesn’t get so full with meetings that I can’t meet my commitments.
When I’ve committed to working tickets, I’m going to block off my calendar for the rest of a day if that day gets more than half full with meetings. Those meetings can wait while I finish meeting the commitments I made to the people that are most important to me.
I’m able to be proactive with my calendar because I decided how I needed to spend my time ahead of time. Whether someone else asks to know this information or not, I can still come up with an estimate for myself so that I can try to hit my personal targets. Then next iteration I can adjust my estimates based on how things went in the previous iteration.
Trust me, it’s worth it
While this seems tedious and boring, I’ve found this information to be extremely valuable and it actually doesn’t take much effort to do it (especially once you get in the habit). As a professional, I want to have as much information so that I can make the best use of my time.
Read the next post in this series, Metrics.