TaskJuggler

From Wikipedia, the free encyclopedia

TaskJuggler

TaskJuggler screenshot
Developed by The TaskJuggler Team
OS Linux
Genre Project management software
Website TaskJuggler

TaskJuggler is GPL-licensed (open-source) project management software that runs under the Linux and Unix operating systems and is programmed in C++ using the Qt toolkit and KDE libraries. The TaskJuggler Project was started in 2001 by Chris Schläger. The project typically releases between two to three stable versions per year. Early releases provided a command line tool that generated HTML reports. Since August 2005, the package also provides a graphical front-end based on the KDE libraries.

Contents

[edit] Approach

A TaskJuggler project is a textual document written in a domain-specific declarative programming language. The textual document consists of a root project file and the contents of sub-files incorporated by means of the include keyword (property in TaskJuggler lingo), to one or more levels. The TaskJuggler language reference refers to the project definition source document somewhat loosely as The TJP File. This discussion refers to the project definition source document simply as the TJP.

The TJP is a declarative document. The focal objects are tasks, resources, reports, scenarios, and scheduling constraints applied to tasks and resources. There is also a rudimentary facility to describe accounts and accrue costs and expenses. Project progress can be tracked by declaring task completeness properties (as a percentage) or resource booking properties which associate resources to tasks for specific durations, which can be used to generate schedule projections.

TaskJuggler functions as a report compilation tool. When the TJP is edited, new reports on the state of the project are generated by running the TJP compiler from scratch. The TJP compiler includes a scheduling component based on a heuristic algorithm. TaskJuggler is able to generate a wide variety of reports including Gantt and Pert based on report declarations within the TJP. The TaskJuggler compiler is able to handle large projects with over 10,000 tasks, 1000 resources, and complex constraints.

[edit] Non-incremental projection

A common feature of compilation tools shared by TaskJuggler is that future compilations (reports) do not necessarily reflect past outputs, even where the inputs are extremely similar. Any change to the project state as declared in the TJP can potentially result in a completely 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.

[edit] 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 the optimal 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.

[edit] See also

[edit] External links

Languages