Changes
Jump to navigation
Jump to search
This changes nothing
== Example Project File ==
http://www.taskjuggler.org/manual-svn/example.html shows this example file (presented here with syntax highlighting)
<source lang="cpp">/** This file contains an example project. It is part of the* TaskJuggler project management tool. It uses a made up software* development project to demonstrate some of the basic features of* TaskJuggler. Please see the TaskJuggler manual for a more detailed* description of the various syntax elements.*/project acso "Accounting Software" "1.0" 2002-01-16 2002-04-28 {# Pick a day during the project that will be reported as 'today' in# the project reports. If not specified, the current day will be# used, but this will likely be outside of the project range, so it# can't be seen in the reports.now 2002-03-05-13:00# Hide the clock time. Only show the date.timeformat "%Y-%m-%d"# The currency for all money values is the Euro.currency "EUR" # We want to compare the baseline scenario to one with a slightly# delayed start.scenario plan "Plan" {# Mark all paths as critical that have less than 10% slack time.minslackrate 10.0scenario delayed "Delayed"}} # This is not a real copyright for this file. It's just used as an example. # The daily default rate of all resources. This can be overridden for each# resource. We specify this, so that we can do a good calculation of# the costs of the project.rate 310.0 # Register Good Friday as a global holiday for all resources.vacation "Good Friday" 2002-03-29 # This is one way to form teamsmacro allocate_developers [allocate dev1allocate dev2 { limits { dailymax 4h } }allocate dev3] flags team resource dev "Developers" {resource dev1 "Paul Smith" { rate 330.0 } flags team}resource misc "The Others" {resource test "Peter Murphy" { limits { dailymax 6.4h } rate 240.0 }resource doc "Dim Sung" { rate 280.0 vacation 2002-03-11 - 2002-03-16 } flags team} # In order to do a simple profit and loss analysis of the project we# specify accounts. One for the development costs, one for the# documentation costs, and one account to credit the customer payments# to.account dev "Development" costaccount doc "Documentation" costaccount rev "Payments" revenue # Now we specify the work packages. The whole project is described as# a task that contains subtasks. These subtasks are then broken down# into smaller tasks and so on. The innermost tasks describe the real# work and have resources allocated to them. Many attributes of tasks# are inherited from the enclosing task. This saves you a lot of typing.task AcSo "Accounting Software" { # All work-related costs will be booked to this account unless the# subtasks specify something different.account dev task spec "Specification" {# The effort to finish this task is 20 man-days.effort 20d# Now we use the macro declared above to allocate the resources# for this task. Because they can work in parallel, they may finish this# task earlier than in 20 working-days.${allocate_developers}# Each task without subtasks must have a start or an end# criterion and a duration. For this task we use a reference to a# milestone defined further below as the start criterion. So this task# can not start before the specified milestone has been reached.# References to other tasks may be relative. Each exclamation mark (!)# means 'in the scope of the enclosing task'. To descent into a task, the# fullstop (.) together with the id of the tasks have to be specified.depends !deliveries.start} task software "Software Development" { # The software is the most critical task of the project. So we set# the priority of this task (and all its subtasks) to 1000, the top# priority. The higher the priority, the more likely the task will# get the requested resources.priority 1000 # All subtasks depend on the specification task.depends !spec task database "Database coupling" {effort 20dallocate dev1, dev2} task gui "Graphical User Interface" {effort 35d# This task has taken 5 man-days more than originally planned.# We record this as well, so that we can generate reports that# compare the delayed schedule of the project to the original plan.delayed:effort 40ddepends !database, !backendallocate dev2, dev3} task backend "Back-End Functions" {effort 30d# This task is behind schedule, because it should have been# finished already. To document this, we specify that the task# is 95% completed. If nothing is specified, TaskJuggler assumes# that the task is on schedule and computes the completion rate# according to the current day and the plan data.complete 95depends !databaseallocate dev1, dev2}} task test "Software testing" { task alpha "Alpha Test" {# Efforts can not only be specified as man-days, but also as# man-weeks, man-hours, etc. By default, TaskJuggler assumes# that a man-week is 5 man-days or 40 man-hours. These values# can be changed, of course.effort 1w# This task depends on a task in the scope of the enclosing# task's enclosing task. So we need two exclamation marks (!!)# to get there.depends !!softwareallocate test, dev2note "Hopefully most bugs will be found and fixed here."} task beta "Beta Test" {effort 4wdepends !alphaallocate test, dev1}} task manual "Manual" {effort 10wdepends !deliveries.startallocate doc, dev3account doc} task deliveries "Milestones" { # Some milestones have customer payments associated with them. We# credit these payments to the 'rev' account.account rev task start "Project start" {# A task that has no duration is a milestone. It only needs a# start or end criterion. All other tasks depend on this task.milestonestart 2002-01-16# For some reason the actual start of the project got delayed.# We record this, so that we can compare the planned run to the# delayed run of the project.delayed:start 2002-01-20# At the beginning of this task we receive a payment from the# customer. This is credited to the account associated with thhttp://www.taskjuggler.org/manual-svn/example.htmlis# task when the task starts.startcredit 33000.0} task prev "Technology Preview" {milestonedepends !!software.backendstartcredit 13000.0} task beta "Beta version" {milestonedepends !!test.alphastartcredit 13000.0} task done "Ship Product to Customer" {milestone# The next line can be uncommented to trigger a warning about# the project being late. For all tasks, limits for the start and# end values can be specified. Those limits are checked after the# project has been scheduled. For all violated limits a warning# is issued.# maxend 2002-04-17depends !!test.beta, !!manualstartcredit 14000.0}}} # Now the project has been specified completely. Stopping here would# result in a valid TaskJuggler file that could be processed and# scheduled. But no reports would be generated to visualize the# results. # A traditional Gantt Chart for the TaskJugglerUItaskreport "Gantt Chart" {headline "Project Gantt Chart"columns hierarchindex, name, start, end, effort, duration, chart# For this report we like to have the abbreviated weekday in front# of the date. %a is the tag for this.timeformat "%a %Y-%m-%d"loadunit dayshideresource 1} # A list of tasks showing the resources assigned to each task.taskreport "Task Usage" {headline "Task Usage Report"columns hierarchindex, name, start, end, effort { title "Work" }, duration,cost, revenuetimeformat "%Y-%m-%d"loadunit dayshideresource ~isLeaf()sortresources nameup} # A list of all tasks with the percentage completed for each tasktaskreport "Tracking Gantt" {headline "Tracking Gantt Chart"columns hierarchindex, name, start, end, effort { title "Work" }, duration,completed, charttimeformat "%a %Y-%m-%d"loadunit dayshideresource 1} # A graph showing resource allocation. It identifies whether each# resource is under- or over-allocated for.resourcereport "Resource Graph" {headline "Resource Allocation Graph"columns no, name, rate, utilization, freeload, chartloadunit dayshidetask 1} # A list of all project resources, both human and material resources,# together with the associated costs.resourcereport "Resource Sheet" {headline "Resource Sheet"columns no, name, efficiency, id, maxeffort, rateloadunit dayshidetask 1} # A list of resources and each task associated with each resource.resourcereport "Resource Usage" {headline "Resource Usage Report"columns no, name, utilization, freeload, costloadunit dayshidetask 0} # This report looks like a regular calendar that shows the tasks by# their dates.htmlweeklycalendar "Calendar.html" {# Only show work days in the calendar.weekdays mon - fri} # This report is a status report for the current week. It also# provides an outlook for the next week.htmlstatusreport "Status-Report.html" {} # A P&L report for the project.htmlaccountreport "Accounting.html" {# Besides the number of the account and the name we have a column# with the total values (at the end of the project) and the values# for each month of the project.columns no, name, scenario, total, monthlyheadline "P&L for the Project"caption "The table shows the profit and loss analysis as well asthe cashflow situation of the Accounting Software Project."# Since this is a cashflow calculation, we show accumulated values# for each account.accumulatescenarios plan, delayed} xmlreport "XML-Report.tjx" {version 2hidetask 0hideresource 0scenarios plan, delayed}</source>
[[Category:Applications]]