A few years ago, my brother, a programmer, shared with me the concepts and challenges with estimating time for software development. For example, as addressed in Software Estimation: Demystifying the Black Art. I’ve found the concept interesting before, but now more applicable in my work.
Part of my recent work has been to start developing a system of course development and revision. As I organize a small force (army?) of student workers and staff to work on courses, I’ve been looking more closely at estimation. I am heading towards having an estimate for how long it takes to do certain sets of jobs – like creating quizzes, applying CSS designs to content pages, etc.
This includes teaching my workers how to do their own estimation for converting lessons to HTML pages with appropriate CSS applied. In one case, we thought through carefully two different ways to approach the estimation process. I thought it might be helpful to share here two simple methods that I taught:
Approach #1: Starting with known amount of time on a task
If you know how much time it takes to do a certain task, then you can estimate how long it will take 10 or 20 items of the same type of task.
So, the question is: Given a known amount of time to finish a task, how long will it take to finish x tasks?
For example: given 1.5 hours to finish 1 lesson how long will it take to finish 40 lessons from where I am now.
- 40-14 = 26 (40 lessons – 14 done = 26 lessons to do)
- 26×1.5 = 39 (26 lessons left x 1.5 hours to do the lesson = 39 hours to complete goal). Round up to 40 hours; which is about 5 days of work
- Given that 80-90% of work day is accomplishing tasks; 10-20% is interruptions and breaks etc. …
- 40 hours x 10% is 4 more hours; so that is about 45 hours actually accounting for breaks etc. Or a better more generous estimate would 45-50 hours left for this job.
Approach #2: Starting with a desired end time (pedal to the metal method)
If you have a desired end time, then you can estimate how fast each task needs to be completed.
So the question is: Given a specific deadline; how fast do I need to do each task?
For example: Given that I want to finish 26 lessons by the end of the day on Thursday, and it is now Tuesday afternoon, how fast do I need to do each lesson?
- I have 26 lessons left (40-14=26 see above).
- In two days (Wed & Thu) I plan to work 9 hour days with an hour of interruptions and breaks, so I can estimate about 8 hours a day per day.
- 16/26 = .61 (16 hours divided by 26 lessons = the fraction of an hour that I need finish a lesson in)
- Convert the decimal to hours:.61 x 60 minutes = 36 minutes per lesson
I’ve come to the conclusion that this type of thinking isn’t necessary “caught” or “taught” in our high schools and colleges. Students may know what estimation is, but might not be able to apply it to real-life scenarios when they graduate.
What do you think? I realize this is a very simplistic method to estimate how we are doing in our work, but it’s a start. Do you try to estimate progress on online course development? How do you do it? What data do you collect and track?