new schedule assignment being generated. TaskJuggler presently contains (as of version 2.3.0) no provision for generating a minimal schedule change from an existing schedule projection based on a hypothetical input, such as "what if I assign Bob for four hours to the documentation task?". One can, however, feed desired elements from one projection output back into the TJP as additional constraints as fixed assumptions relative to further refinements of the schedule projection. Iterative constraint refinement is a powerful technique, but lacks the immediacy of incremental recalculation in a spreadsheet when used in a similar capacity as a financial projection tool. Advantages The TaskJuggler design frees the project manager to focus on information that is known about the project at any stage of the project. TaskJuggler then turns this information into meaningful reports and charts. It supports the project manager in all phases of a project, from the initial idea, to effort estimation, budgeting and status tracking. The textual project description sets TaskJuggler apart from other project management programs. It allows the user to focus on the work breakdown structure, task priorities and dependencies, the given resources and their availability. Based on the provided constraints TaskJuggler computes a schedule for the given task items. The built-in load balancer honors working hours and levels resource usage automatically. TaskJuggler computes task intervals, allocation times for every resource, and a profit/loss analysis for the project. These results can then be turned in a large number of reports by using a filtering mechanism that can be used to restrict the information to the subset to be presented. Disadvantages The plain text project description is written in a hierarchical, declarative programming language that requires one to think abstractly about the sequencing and constraints in the project, as well as the structure of the program itself. A typical project has the following sections: Project Header Macro definitions Flag declarations Shift definitions Account definitions Resource definitions Task definitions Bookings Reports While powerful, this complexity can lead to a steep learning curve for gaining proficiency in the use of TaskJuggler. See also List of project management software References The Art of Juggling, (PDF) Linux Magazine, issue 61, December 2005, p. 52-55. TaskJuggler: The Best Laid Plans (PDF), Linux Magazine, January 2004, p. 75-77. Review of TaskJuggler by Software Projects. Notes External links Free software programmed in C++ Free project management software Software that uses Qt KDE software Free software