HOME

TheInfoList



OR:

TaskJuggler is
GPL The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
-licensed (
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
) project management software that runs under the
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
operating systems and is programmed in C++ using the
Qt toolkit Qt (pronounced "cute") is cross-platform software for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems wit ...
and
KDE KDE is an international Free software movement, free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-know ...
libraries. The TaskJuggler Project was started in 2001 by Chris Schläger. 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 III was released on 5 July 2010. It is a completely re-implemented version of the TaskJuggler 2.x series and written in
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
. The graphical user interface from the 2.x version has not yet been ported to TaskJuggler III; TaskJuggler III documents, which are plain text files, are edited with a text editor and processed on the command line.


Approach

A TaskJuggler project consists of one or more plain text documents written in a domain-specific
declarative programming In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow. Many languages that ap ...
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.


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 A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in cel ...
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.

by Software Projects.


Notes


External links

* * {{DEFAULTSORT:Taskjuggler Free software programmed in C++ Free project management software Software that uses Qt KDE software Free software programmed in Ruby