Skip to main content

TaskJuggler

TaskJuggler is a modern and powerful, free, GPL-licensed(General Public Licensce, basically meaning Open source software) 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 the year 2001 by Chris Schläger and the early releases provided a command line tool that generated HTML reports. From August 2005 to July 2010, the package also provided a graphical user interface based on the KDE libraries.

TaskJuggler covers the complete spectrum of project management tasks from the first idea to the completion of the project. It assists you during project scoping, resource assignment, cost and revenue planning, risk and communication management. It provides an optimizing scheduler that computes your project time lines and resource assignments based on the project outline and the constraints that you have provided. The built-in resource balancer and consistency checker offload you from having to worry about irrelevant details and ring the alarm if the project gets out of hand. The flexible as-many-details-as-necessary approach allows you to plan your project as you go, making it also ideal for new management strategies such as Extreme Programming and Agile Project Management.

A TaskJuggler project consists of one or more plain text documents written in a domain-specific declarative programming language. The documents consist of a root project file and optional sub-files incorporated into the root 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. After TJP program is written, reports on the state of the project are generated by running the TaskJuggler compiler on the program. The TJP compiler includes a scheduling component based on a heuristic algorithm. TaskJuggler is able to generate a wide variety of reports including Gantt 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.

Features and Highlights

Basic Properties

Manages tasks, resources and accounts of your project

Powerful to-do list management

Detailed reference manual

Simple installation

Runs on all Linux, Unix, Windows, MacOS and several other operating systems

Full integration with Vim text editor

Advanced Scheduling

Automatic resource leveling and tasks conflict resolution

Unlimited number of scenarios (baselines) of the same project for what-if analysis

Flexible working hours and leave management

Support for shift working

Multiple time zone support

Accounting

Tasks may have initial costs, finishing costs

Resources may have usage based costs

Task and/or resource base cost models

Support for profit/loss analysis

Reporting

Comprehensive and flexible reports so you can find the information you need when you need it

Powerful filtering functions to provide the right amount of detail to the right audience

Time and status sheet reporting infrastructure

Project tracking and status reporting with dashboard support

Scaling and Enterprise Features

Projects can be combined to larger projects

Support for central resource allocation database

Manages roles and complex reporting lines

Powerful project description language with macro support

Scales well on multi-core or multi-CPU systems

Support for project management teams and revision control systems

Data export to Microsoft Project and Computer Associates Clarity

Web Publishing and Groupware Functions

HTML reports for web publishing

CSV data export for exchange with popular office software

iCalendar export for data exchange with calendar and productivity applications

Built-in web server for dynamic and interactive reports

Server based time sheet system for status and actual work reporting

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:[2]

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.