So, I may have ranted on this topic before, but I don't recall (and I am too lazy to check for myself).
But, what I want is pretty simple, I think. And, there are a slew of things that are in the same ballpark. But, it looks like I'm going to have to write my own or modify one of the existing ones.
- Imagine you have a set of resources (people, equipment, locations, what-have-you). Each of those resources has times of availability, etc.
- Imagine, further, that you have a set of tasks which you'd like to get done.
- Imagine that some of the tasks cannot start until others have finished, but that not all tasks will have such dependencies.
- Imagine that accomplishing these tasks requires resources.
- Imagine that the resources can only be used when they are available.
- Imagine further that you cannot use more than 100% of any resource at any given time.
- Imagine that some tasks are more or less important than others.
- Imagine, too, that there are some tasks that, while you'd like to do them as speedily as time permits, you don't have a hard date for when the task needs to be done. Other tasks may have hard end dates.
- Imagine that at some point in time, I may be interested in knowing which tasks I could actually get meaningful work done on at the moment.
- Imagine that I'm in the fourth day of a task that was scheduled for five days and I am calling myself 10% done. Does anyone seriously think my program should stick with the five day estimate?
Tough to imagine all of these things, right? I mean, are some tasks more or less important than others? Why can't you use 280% of my time on January 4th? Why can't I do eight hours of work in two hours if it's four separate two hour tasks? Could I possibly seriously want my photos to ever get developed if I can't set an exact date on which I intend to take them in or an exact set of presiquites after which I will immediately take them in?
So, about two or three months ago I downloaded every MacOS- and every Linux- and every Cross-Platform- Project Manager, Gantt Chart Wizard, PERT "what the heck are these supposed to help with" Generation Tool that I could get my hands on. None of them cut the mustard. I even downloaded the trial versions of several tools which cost $300 and two which cost over $1400. I wasn't really interested in paying that much, but I had at least hoped I'd have something to point to.
I found exactly one program that I felt made a real stab at #5. But, that one thoroughly missed (what I thought was a very related concept) #6 and couldn't even conceive of #8, #9, or #10.
Most of the programs let me do #1 (though only a handful can be convinced that a resource is available for anything different from 8-hours per day Monday-Friday and not at all on weekends), #2, #3 (to an extent), #4, and #7. I haven't seen any program anywhere that has seriously considered #8 or even had an inkling of #9.
Only one or two of the programs let you 'automatically optimize the schedule' which means that if B can only be done after A, then they move B until it's after A. I consider this mandatory. But, I also consider it mandatory for the scheduling program to do the same for implicit dependencies: A and B could be done at the same time but for the fact that A requires 100% of me and B requires 50% of me.
So, my concept is largely Gantt-ish. You've got the things you're used to in Gantt charts. But, the program comes up with a plan that doesn't overbook resources. And, it's got a way to denote all of those tasks which could be in-progress at the moment.
For that last bit, I'm picturing a list of the possible resources. You check which ones are currently available. All of the tasks which could get work done on them at the moment, given those resources would be highlighted in some way.
I really like the look of 'ganttproject.org'. I really like its export capabilities and WebDAV features. It may be a good place to start. But, it would have a long way to go to add automated scheduling and get away from its dependence on dates and to add in useful resource-availability.
If anyone's got anything up their sleeve which accomplishes these 10 things, I'd love to see it. Or, if anyone wants to jump on writing such a thing, I'd love to use it.
In the meantime, this is going to be yet another one of the side-projects that I want to get done as speedily as time permits yet I have no hard date when it needs to be done.