2

I'm no project manager but I have a time management issue. I'm a programmer in a small team with plenty of tasks distributed among many projects and I'm responsible for managing my time.

I'm alright at analysis/design on small to medium projects and at slicing down work into reasonably-sized tasks. I generally produce decent estimates.

Unfortunately I still suck at placing estimated end dates on tasks. I go by instinct based on my perception of my current workload. As a result it's a very hit and miss process. I'm wishing for some sort of dynamic queue of tasks ordered by priority over a timeline. That way I could provide sensible estimated end dates for new tasks and I could see when changes would compromise my meeting certain end dates. What tool could help me? How is such a thing generally called?

(We use Jira as an issue tracker, although we may change for something simpler in the future.)

2
  • It sounds like there's two separate issues here - difficulty in estimating with reasonable accuracy, and difficulty in making it visible to yourself/others to set expectations and find dependencies - is that correct? Apr 13, 2016 at 17:05
  • To put it simply, I have no difficulty estimating how much man hours it will take me, but I have plenty of tasks with various priorities so I struggle to figure out when I'll do it. (Sorry if the wording may be confusing, english is not my mother tongue.)
    – lampyridae
    Apr 13, 2016 at 20:44

3 Answers 3

1

If you can figure out how to get two pieces of information out of Jira, you can provide very reasonable estimates by utilizing Little's Law. You'll need to know the date you began a task, and the day it was considered done. The more history you have, the more accurate this will be.

Start Date - End Date = Cycle Time

In Excel, to exclude weekends (important later)

=NETWORKDAYS(StartDate, EndDate)

The cycle time is the number of days it takes you to complete a single item, from the time you began working on it. Perform this calculation for all of your previously completed tasks, then calculate your average cycle time.

The next step is to figure out how much work you can do in an iteration. We use two week iterations, so I'll use 10 business days as an example.

Tasks per iteration = Avg. Cycle Time / Days in Iteration

Ex:

I have an average cycle time of 3.5 days.

(1 item / 3.5 days) * ( 10 days / 1 iteration)

10 items / 3.5 iterations = 2.86 items / iteration

So I can accomplish (on average) 2.86 items every 2 weeks.

Now it's trivial to take the number of items in my queue, divide it by the average number of items I can do in an iteration and determine when the last one will be done.

10 items in queue / ( 2.86 items / iteration)
Last item in queue will be done in 3.50 iterations. 

But when will my other items be done? Instead of dividing the total number of items in the queue by the average number done, replace it with its priority ranking.

Ex: When will my 5th rank task be done?

5 / 2.86 = 1.75 iterations 

Once you've mastered this, you can take your estimations further out by looking at when an item is entered into the backlog and when it is done. This is called Lead Time. The calculations are the same, but provide a longer term view.


Of important note is that none of this relies on how good you are at guessing how long a particular item will take. It relies purely on historical data of how long it actually took you to get things done in the past.

2
  • If I understand well, the main challenge of the approach is to get good at chunking work into tasks of similar sizes and to establish throughput from historical data. Is this related to what @jefflindsey is suggesting: Kanban boards?
    – lampyridae
    May 17, 2016 at 15:51
  • Certainly, the better you get as slicing your work into similar sizes, the better this type of estimation will be. It is a method that many Kanban folks use, but you don't necessarily need a board to do this. You just need a Started Date and a Completed Date.
    – RubberDuck
    May 17, 2016 at 15:55
2

You might want to investigate/try a personal kanban board. It would require "sizing" the tasks (estimating relative to each other) or breaking them down into a common size, but after using it for a bit and measuring the flow, you'd probably have a good idea of how long it takes a task to get done including the effects of re-prioritization, interruptions, etc.

0

I use MS Project but that's probably overkill to manage your own tasks. You could try using an Excel spreadsheet like this:

Task Name | Start Date | Daily Allocation | Remaining Hours | Est. Days | Finish Date
Task1     | 4/14/2016  | 25%              | 40              | 10        | 4/28/2016
Formulas  | 4/14/2016  | 25%              | 40              | =C2*D2    | =WORKDAY(B2,E2)

Just make sure your daily allocation always sums up to 100%.

Alternatives, use this free agile planner from https://trello.com/tour. http://www.thedigitalprojectmanager.com/microsoft-project-alternatives/ http://www.techrepublic.com/blog/five-apps/five-free-microsoft-project-alternatives/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.