May 11, 2005

Making plans with GanttProject

Author: Dmitri Popov

Think that project management software belongs only in the realm of big corporations with huge budgets? In reality, anyone can benefit from using a project management tool. With the open source GanttProject application, you can easily keep track of big and small projects.

Although on first sight GanttProject may seem like a rather simplistic application, it hides many useful features that make it suitable for a wide range of project planning activities. If you were writing a thesis or a book, for instance, you could use GanttProject tools to develop its basic structure, and then create a timetable for it. If you run a small business, GanttProject can help you plan both long-term projects and daily tasks. Moreover, GanttProject allows you to share your projects with other users, which makes it a good tool for workgroups.

GanttProject is written in Java, which means that you have to install the Java Runtime Environment (JRE) on your computer. Once you have JRE installed, the application can run on Windows, Linux, or Mac OS X.

GanttProject's interface

The application's interface features the mandatory tool bar with buttons. The right pane is the project area, where you can view your project as a Gantt chart, showing the project phases, relationships between them, and other related info. The left pane contains two tabs: Gantt, used for structuring and managing project and its phases; and Resources, used for managing users.

If you use GanttProject in single-user mode, you don't have to add users to GanttProject. However, if you plan to use the application for managing projects that involve several users, then you should populate the Resources area with information about the project's members, such as name, phone, and email address. Although the name Resources might suggest that you can use this feature to specify "non-human" resources, such as conference rooms, projectors, etc., it's designed mostly for keeping tabs on people.

You can also select users' roles from the Role list. Roles describe what every project participant does (for example, project manager, editor, or proofreader) These roles can come in handy when assigning project tasks (for example, you wouldn't want to assign proofreading to a project manager). The list contains a number of default entries; if they don't fit your projects, you can define your own roles. User-defined roles, however, are stored in the project file and not in GanttProject's preferences, which means that you have to define custom roles for every new project.

GanttProject screenshot -- click to enlarge

Working with projects and tasks

Every project in the main window is shown as a hierarchy of tasks and relations between them. A project is, in fact, a top-level task with a series of sub-tasks. This means that you should start by creating a task that represents the project itself. You can then add a sub-task which will be the first phase of the project. Under the General tab you can enter general information about the task, such as its name, priority, duration, status, and even a Web link. You can use the Color button and the Shape list to choose a colour and fill pattern for the task. Instead of entering a number of days in the Duration field, you can use the Date section to specify the start and end dates of the task. The section even includes a handy calendar icon you can use to enter dates. Under the Resources tab you can assign users to the task by selecting their names from the Resource Name list. Finally, under the Edit notes tab, you can also add notes to the task.

By default a new task is placed on the same level as the project. To move it "under" the project you must right-click on it and choose Indent from the context menu, or use the Indent button on the toolbar.

Using the built-in tools you can also specify dependencies among tasks. In other words, you can create a new task whose start date depends on the end date of a previous task. You can specify different dependency types, such as Finish-Start, Finish-Finish, and Start-Start.

GanttProject allows you to manage not only projects and tasks, but also users' workloads and schedule conflicts. The Resources tab provides you with a graphical representation of each user's workload. If you've assigned the same user to two different tasks that take place at the same time, this will create a schedule conflict, which will be marked as a red segment on the workload bar.

Sharing projects

When it comes to sharing projects with other users, you have two options. The Export feature allows you to output the project data in a number of formats, including PDF, comma-separated text file, PNG, and JPEG graphics. You can also export projects as a set of HTML pages and graphics files ready to be published on the Web.

The application also allows you to work with project files stored on a WebDAV server. The WebDAV server prevents two or more people from editing the same file simultaneously. Using the commands under Project > Web Server menu, you can open projects directly from a server and save them back when you are done.

Instead of creating an "everything but the kitchen sink" solution, GanttProject's developers focused on the application's core functionality. As such, GanttProject does only a few things, but it does them exceptionally well. You can't use GanttProject to track time, print invoices, store addresses, and send emails. But if you are looking for an application that can help you to visualize and manage projects, you should definitely give GanttProject a try.

Dmitri Popov is a freelance writer whose articles have appeared in Russian, British, and Danish computer magazines.

Click Here!