Joel Spolsky talks about Painless Software Schedules in his book “JoelOnSoftware“. Accurately estimating how your much time it will take to complete a task is one of the fundamental skills of any professional. Joel’s approach is simple:

Keep a spreadsheet with Feature / Task / Priority / Original Estimate / Current Estimate columns.

Track effort in hours, not days/weeks. Tracking in hours forces you to do a straw man analysis of the tasks that are needed upfront. Tracking in longer intervals of time encourage more “rough guessing”.

Use Excel. Mind you, Joel was the project manager for Excel once upon a time.

See original article for the other guidelines.

After the break, evaluating different programs.



The reason for having the Original Estimate and Current Estimate columns is to create a feedback loop and improve your estimation skill over time. It can also be helpful to have the estimation history when you are developing an estimate for a similar task.

One useful concept I think he might have left out is doing a best case / worst case original estimate. (See this article for a commentary on best case / worst case as presented in Steve McConnell’s Software Estimation ).

He originally wrote that article in March of 2000, so I had to wonder if any of his fans had developed a better software alternative. Here is a loose comparison of five of the contenders:

Microsoft Excel COST : Free, maybe. Probably already installed on your work computer. MEMORY : 6.2MB on startup. PRO : Flexible, you can do anything with it. CON : Flexible, you can do anything with it and waste a lot of time fiddling instead of working on those tasks you are estimating. In his article Joel gives tips on the key Excel features that are needed to get the system working: pivot tables, WORKDAY



Safari Software’s Masterlist-XL

http://www.safarisoftware.com/ COST : Free spreadsheet, requires Microsoft Excel. MEMORY : 33.4MB on startup. CON : The version Joel links to in his article is out of date and does not work with modern versions of Excel. Grab the latest version from Safari’s website instead. PRO : Roadmap tutorial. PRO : Very focused on getting you working on the high priority / low time tasks first and the low priority / high time tasks last. CON : Pop-up dialog boxes used for editing instead of editing the spreadsheet directly. Data validation is good, and the fields are bigger/more readable than they would be using the spreadsheet directly, but this slows you down. CON : Has concept of deadlines for when tasks are due. Doesn’t appear to have a mechanism for determining deadlines from the amount of work to be done. PRO : Schedule tasks into specific windows of time on a calendar. CON : Scheduling tasks this way is time consuming. I have to assume that you would only do this 1-2 days in advance. CON : Where is the original estimate / current estimate tracking for giving yourself feedback to improve your estimation skills? PRO : Import internal format (mostly used to upgrade to new versions). CON : Even though you can use Excel to access the raw data, you are most likely going to screw up the application if you try to play around with it.



Positive-G’s Task Tracker

http://www.postitive-g.com COST : $25 USD. – MEMORY: 3.1MB on startup. Seems to spawn lots of separate processes as you use it. PRO : This *exactly* the mechanism Joel describes in his book. CON : Pop-up dialog boxes used for editing instead of editing the spreadsheet directly. PRO : Task timers if you don’t want to manually keep track. PRO : You can set how many working hours are in a day. (When was the last time you got 8 effective hours of work in a day without working overtime?) PRO : “Add 1 Hours Work” button to quickly keep track of how long you’ve been working on a task. PRO : Export XML, HTML, MS Project. PRO : Very simple, not going to waste a lot of time learning it. CON : Very simple, no frills.



AllNetic Working Time Tracker

http://www.allnetic.com/ COST : $30 USD. MEMORY : 7.4MB on startup. PRO : Timers for keeping track of exactly how much time spent on tasks. CON : No concept of original / current estimates, just actual time spend. This tools is more intended for generating billable hour reports. PRO : Import CSV / internal format. PRO : Export HTML / TXT / XML / CSV/ SQL. Generates invoices. This definitely is intended more as a billable hours application. CON : The UI is poorly organized.



Safari Software’s Masterlist Professional

http://www.safarisoftware.com/ COST : $25 USD. MEMORY : 23.5MB at start-up. PRO : Professional look and layout. PRO : Context sensitive help and tutorial. PRO : Has all of the features of Masterlist-XL plus more. PRO : Scheduling can integrate with your Outlook calendar. Doesn’t track current estimate, but can keep track of original estimate (Time Needed) and how long it took (Time Spent) so feedback is possible. Timer support. PRO : It has an algorithm for suggesting the order in which tasks should be done, and auto-scheduling. PRO : Is a tool for a productivity enhancing methodology. PRO : Prioritizer wizard for assigning finely grained priority. PRO : Data can be edited in a spreadsheet view. PRO : Export to Excel. CON : The program has enough smarts in it that there will be some ramp up time while you get used to it. CON : It wasn’t readily evident if you could use the data for project planning. It seems more focused on enhancing productivity. Not a bad thing.



AbstractSpoon’s ToDo List

http://www.codeproject.com/tools/todolist2.asp COST : Free, open source. MEMORY : 7MB at start-up. PRO : ISO data format support! (I’m a freak who doesn’t understand why YYYY/MM/DD isn’t the defacto every where since it is unambiguous and easily sortable). PRO : Plug-in architecture. Existing plug-ins include: encrypt/decrypt, iCal Exporter, RTF comments, custom spellcheck, Gannt Project Export. PRO : 3rd-party tool support. PRO : Multiple user support with XML data files that can be merged with source control software. PRO : Tree based task lists with functions for breaking existing tasks into lists of subtasks. The branches of the tree roll up into their parents in terms of tracking data. PRO : Timers. PRO : Keeps track of your original estimate and time spent. PRO : Smart set of tracking fields. Priority, Risk, % Complete, Start Date, Due Date, Completion Date, user defined status. PRO : Completely configurable UI. PRO : Export HTML, TXT, CSV. PRO : Spellchecker. CON : Overwhelming amount of configurable options (you can even reconfigure all of the keyboard shortcuts!) CON : For programmers, by programmers. It is very well done but suffers from clutter. This comes from being so highly configurable. CON : I’m surprised there aren’t user-defined fields. It doesn’t directly have metrics for comparing original estimate and time spent, but it would be easy to whip up a plug-in to support that.



UPDATE 2006/09/07

willCode4Beer does it very simply with an XML file and an XSL transformation

http://willcode4beer.com/design.jsp?set=sched PRO: How much simpler can you get? CON: How much simpler can you get? :) PRO: It was cool that he found this page and left a comment on it. PRO: Because it’s bare-bones you’ll spend time on doing work and not fiddling around with scheduling.



Overall:

First choice : ToDo List.

: ToDo List. Second choice : Using homegrown Excel application. This will give you a lot of flexibility, but it will be more time consuming. Or use the XML/XSL approach.

: Using homegrown Excel application. This will give you a lot of flexibility, but it will be more time consuming. Third choice : Masterlist Professional. I have a feeling it can be a very powerful tool, but do you have time to ramp up?

: Masterlist Professional. I have a feeling it can be a very powerful tool, but do you have time to ramp up? Fourth choice: Task List. Use Painless Software Schedules methodology with a slightly nicer interface than a raw Excel spreadsheet. If you have to do anything beyond scheduling one person you’re screwed.

Not recommended:

Working Time Tracker

Masterlist XL (just buy Masterlist Professional if that’s the format you are comfortable with).

Please leave comments with any other suggestions (that’s how I found out about ToDo List — thank you Jay Kint).

Related Posts: