Chapter 4. Tutorial: Your First Project

Table of Contents
Starting the project
Global Attributes
Declaring Resources
Declaring Accounts
Specifying the Tasks
Specifying Milestones
Generating Reports of the scheduled Project

We have mentioned already that TaskJuggler uses plain text files that describe the project to schedule it. As you will see now, the syntax of the file is easy to understand and very intuitive. This chapter will walk you step by step through your first project. You create the project plan for a made-up accounting software project. Refer to Chapter 8 for a full listing of the example. This project demonstrates some of the basic features of TaskJuggler for more advanced features please refer to Chapter 6.

Starting the project

To start a TaskJuggler project file you need to use the project property.


project acso "Accounting Software" "1.0" 2002-01-16 2002-04-26 {
  now 2002-03-04
  timeformat "%Y-%m-%d"
  currency "EUR"
  scenario plan "Plan" {
    scenario delayed "Delayed"
  }
}

It tells TaskJuggler the default project ID, a short name for your project, a version number and a start and end date. The start and end dates don't need to be exact, but must enclose all tasks. It specifies the time interval the TaskJuggler scheduler will use to fit the tasks in. So, make it big enough, that all your tasks fit within. But don't make it too big, since this will result in longer scheduling times and higher memory consumption.

All TaskJuggler properties have a certain number of fixed attributes and a set of optional attributes. Optional attributes are always enclosed in curly braces. In this example we use the optional attributes now to set the current day for the scheduler to another value than to the moment your invoke TaskJuggler. We pick a day during the above specified project period. So we always get the same results of a TaskJuggler run, no matter when we process our first project. The currency attribute specifies the unit of currency values.

Since each culture has it's own way of specifying dates, the format is configurable. Use the timeformat attribute to specify the default format. This is the format used for reports. It's not the format that you use in TaskJuggler project files. This format is fixed and must be Year-Month-Day-Hours:Minutes:Seconds-Timezone. All values after day are optional.

In this tutorial we would like to compare two scenarios of the project. The first scenario is the one that we have planned. The second scenario is how it really happended. The two scenarios have the same task structure, but the start and end dates of the task may vary. In reality we assume that the project got delayed, so we call the second scenario "Delayed". The scenario property is used to specify the scenarios. The delayed scenario is nested into the plan scenario. This tells TaskJuggler to use all values from the plan scenario also for the delayed scenario unless the delay scenario has it's own values. We'll see further down, how to specify values for a scenario.