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.