Marc Hughes


Home
Blog
Twitter
LinkedIn
GitHub
about
I am a developer from a bit west of Boston.

I hate Microsoft Project

31 Dec 2006

5/2008 Update: Software described below available at www.agileagenda.com

One of my primary responsibilities at work is managing software projects. To do this one of the most important tools in my toolbox is Microsoft Project. Unfortunately, I HATE IT HATE IT HATE IT. I have spent untold hours trying to get very simple things to lay out in a project the way I want it to. Then I've spent even more hours when tiny parts of plans change.

So why do I use it? Because I've found nothing else that's better. It seems like every single other bit of scheduling software out there is either just a low-cost clone of MS Project or even more complex and bloated.

Here's the work flow I crave for project management:

1) I enter in the necessary tasks in a project, including dependencies between tasks. 2) I enter in the available resources (people). 3) I assign tasks to people. 4) I assign priorities to tasks that influences the order they should be done.

The software should then crank through it all, tell me what each person should be doing next, and tell me when the entire project is currently estimated to be done.

I should be able to print a report out so when I say "We're not done for another 4 months" to management, I can point to the pretty GANNT chart to explain why.

This is all great. MS Project does that for me. Here's where it fails, miserably...

After I make that initial project I should be able to: - Alter anybody's availability EASILY AND PAINLESSLY. I never want to see a message about over-booking just because Bob will be out next Thursday. - Mark any task as complete (including tasks that aren't "supposed" to be done yet) - If I mark a task complete, and later find out it's not really done, I should be able to mark it 1/2 compete without the schedule going BONKERS. - Easily change the order tasks should be done in. - Be able to tell, based on what tasks are complete and the new availability, when our new expected end-of-project date is. - Intelligently manage milestones & builds.

I NEVER EVER EVER want to specify a start or end date for a task. I NEVER EVER EVER want to go through a tedious process to mark a task as already done and moving later tasks up.

So I'm writing my own replacement that handles all the above criteria in a simple, consistent way. It lacks many of the bells & whistles of MS Project, that's intentional and I call it a feature. Here's a screenshot of my current working version:

See the grey vertical bar? That's "today"... yes the software actually understands what "today" is, and understands that if tasks were supposed to already be completed, and they're not, the project is slipping. See line 14? That task isn't done but it should have been done days ago. The software knows that, and extended the end-date of the project automatically.

It also understands that if tasks that aren't scheduled until some later date, and they're already marked done, the project is ahead of schedule! See task #3? It's done, but wasn't scheduled to start until tomorrow. The software knows this, so It automatically moved the start-date of later tasks up like #4.

Since it's an AIR application, it will work on OSX as well, so I don't need to get my dell Laptop out to do schedule stuff anymore.

I'm probably one good weekend of work away from having a version that I can use, and two or three weekends away from having a version I could distribute to others.