software solutions / project leadership / agile coaching and training

Iteration Management – Post #9 – Personal iteration planning

Posted on March 20, 2015

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.

(click for a larger, more readable image)

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.

Invisible time

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.

Create tickets

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.

1 Comment »

  1. [...] Iteration Management – Post 9 – Personal Iteration Planning (via Jon Kruger) [...]

    Professional Development – 2015 – Week 12 — March 23, 2015 @ 8:30 am

Leave a comment

I have over 15 years of software development experience on several different platforms (.NET, Ruby, JavaScript, SQL Server, and more). I recognize that software is expensive, so I'm always trying to find ways to speed up the software development process, but at the same time remembering that high quality is essential to building software that stands the test of time.
I have experience leading and architecting large Agile software projects and coordinating all aspects of a project's lifecycle. Whether you're looking for technical expertise or someone to lead all aspects of an Agile project, I have proven experience from multiple projects in different environments that can help make your project a success.
Every team and every situation is different, and I believe that processes and tools should be applied with common sense. I've spent the last 10+ years working on projects using Agile and Lean concepts in many different environments, both in leadership roles and as a practitioner doing the work. I can help you develop a process that works best in your organization, not just apply a prescriptive process.
Have any questions? Contact me for more information.
Ditching the Office - How an everyday corporate development team turned into a remote working team
From Stir Trek 2018
From Stir Trek 2017, cbus.js 2017
Iteration Management - Your Key to Predictable Delivery
From Stir Trek 2016 and QA or the Highway 2015
From CodeMash 2016, QA or the Highway 2014, Stir Trek 2012
The Business of You: 10 Steps For Running Your Career Like a Business
From CodeMash 2015, Stir Trek 2014, CONDG 2012
From Stir Trek 2013, DogFoodCon 2013
(presented with Brandon Childers, Chris Hoover, Laurel Odronic, and Lan Bloch from IGS Energy) from Path to Agility 2012
From CodeMash 2012 and 2013
(presented with Paul Bahler and Kevin Chivington from IGS Energy)
From CodeMash 2011
An idea of how to make JavaScript testable, presented at Stir Trek 2011. The world of JavaScript frameworks has changed greatly since then, but I still agree with the concepts.
A description of how test-driven development works along with some hands-on examples.
From CodeMash 2010
From CodeMash 2010