taskjuggler / TaskJuggler

TaskJuggler - Project Management beyond Gantt chart drawing
http://www.taskjuggler.org
GNU General Public License v2.0
729 stars 168 forks source link

Add capabilities to resources and tasks to better employ resources #286

Open lalebarde opened 11 months ago

lalebarde commented 11 months ago

The idea is simple: some resources are expert or senior or have some extra capabilities in such or such domain. Some tasks may require some mandatory capabilities, or can be performed quicker with a given level of expertise or seniority.

Then the planification engine would take into account these information to better schedule the project and optimise resource use. As TJ doesn't perform Monte-Carlo optimisation or any optimisation, some simple heuristic could be used : when several resources are available, select the one which minimize task realisation time according to these data.

So capabilities may be mandatory or not, have numeric or qualitative levels. A workload may be given for a task for a given default level of expertise ; global workload conversion factors should be able to be declared, or more local one to follow TJ inheritance principles, to convert say workload for a "competent" resource to the one for a "beginner" one. Example of qualitative levels: novice, advanced beginner, competent, proficient, and expert. Example of capabilities: C++, Rust, Developper, Validator.

lalebarde commented 10 months ago

After some search, integration with OptaPlanner or MiniZinc would be cool.