I'm leading the development team at Common Ground - both in terms of spec / design and planning the project. I've done this before, and am fairly comfortable doing it, but in this instance I didn't have M$ Project readily at hand when it came to estimating the project timeline. This turned out to be a good thing since I ended up writing a simple task planner in Python. The initial cut took a few hours, and I've been refining it small since then (adding Milestores, and Stuart wrote a gantt chart HTML renderer too).
Stuff the code does:
- List of tasks with dependencies and resource requirements, eg:
(1, 'Core', 'Dynamic Roles', 'dev', 5, [63]), (2, 'Core', 'Permissions views', 'web', 5, [1]), (3, 'Core', 'Unique-/One-Time-Key store','Richard', 3, []),
Note that the resource is defined as either a skill or a person, and a number of days. Anything more granular than days is silly, and the ability to say that Gus, Stuart and Richard are all capable of performing 'web' tasks is quite valuable (and AFAIK M$ Project doesn't do that!) - Plan the schedule of tasks, including Milestones, and dump the result
as an HTML table with columns for all participants and rows for each week.
For example (snippet of results here):
Week Date Gus Richard Stuart Milestones 0 01 Jun 5: Other Inactive 3: Core Unique-/One-Time-Key store
2: Ontology Schema5: Ontology Ontology 1 08 Jun 1: Other Public Holiday
2: Other Inactive
2: Core ZMI LAF customisation1: Other Public Holiday
3: Ontology Schema
1: Ontology Storage1: Other Public Holiday
4: Ontology Realm2 15 Jun 5: Core ZMI LAF customisation 2: Ontology Storage
2: Work Meta-data spec
1: Other UNUSED1: Ontology Realm
2: Publisher Meta-data spec
2: Identity Meta-data spec3 22 Jun 5: Core ZMI LAF customisation 5: Identity Meta-data edit view 5: Identity Identities 4 29 Jun 3: Core ZMI LAF customisation
2: Other UNUSED5: Identity Login / signup views 5: Publisher Publishers 5 06 Jul 5: Publisher Publisher views 2: Publisher Identity Adjunct Info
3: Other Zope3 Sprint2: Work Works
3: Other Zope3 Sprint - Indicate that Stuart and I are going to be Zope Sprinting in mid-July, and that I have three weeks of paternity leave planned for mid-November, and so on.
So it's pretty rough & simple stuff, and modifying the dependencies is a bit of a pain without the visual cues that M$ Project gives (writing a GUI or at least instant-feedback rendering of dependencies would be a next step, and not at all difficult). But even with its simplicity, I've been able to give esitmates of the project's timeline - including being able to trivially pull out or add new team members and quickly show the result (ie. add in anew 'web' capable person). I might look into making an SF project for this... I dunno... I already have too many :)