Thursday, July 9, 2009

History Based Estimation

Recently I started on a new programming project in my spare time. I call it History Based Estimation. It features a website to handle recording the elapsed time for tasks and using that to estimate future completion dates.

It is inspired by Joel Spolsky's Evidence Based Scheduling, which I've wanted to use since I read about it more than a year ago.

On my job we started using BugTracker.NET half a year ago, but that doesn't fill my need for the scheduling/estimating part. I started to write a web site in ASP.NET (web forms) three weeks ago, and open sourced it on SourceForge.net when I had something that looked like a start.

Features of History Based Estimation are currently:

  • Recording of projects, issues and tasks.

  • Prioritizing issues.

  • Recording estimates and time spent on tasks.

  • Chart with probability of completion dates.

  • Analysis of statistical average remaining time per issue.

  • Download of analysis in Word, Excel, and Latex formats.

  • Choice between English or Danish user interface.

  • Chart with historical task statistics (estimated time versus elapsed time).

  • Tracking of 'days off' when the person will be on holiday etc.



I think it is lacking in, at least, the following: There is no notion of person in the system. I.e. although it is possible for more than one person to use it, there is no authentication required and thus the system does not know who does what, who estimates what, and who has spent the time recorded.

Therefore, I hope to get more time to implement these features:

  • More than one person: I.e. record who is working on what and extract estimates per person.

  • Authentication linked to persons.



A technical note:


  • the web site is written in ASP.NET Web Forms

  • the business logic is written in C#

  • data is stored in a SQL Server database



As mentioned, the code is open source:

so if you would like to take a look at it, please follow the links. If you would like to give me feedback, or maybe even work on the code, please contact me.