12.07.2015 Views

Project management with Taskjuggler - Linux Magazine

Project management with Taskjuggler - Linux Magazine

Project management with Taskjuggler - Linux Magazine

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Taskjuggler</strong>KNOW-HOWrefit project. The box titled “RoughTasks” provides a first look at the tasklist.You can then go on to specify thedetails for each task, subdividing theminto separate subtasks, as shown in the“Detailed Tasks” box.At this point, we are consciouslyavoiding thinking about the order inwhich the individual steps will need totake place. Instead, we are just concentratingon defining the major tasks. Youcan take this to any level of detail youlike, although generally speaking, youshould be fine <strong>with</strong> the level of detail wehave chosen here.In the last phase of project preparation,you will need to decide who will beperforming the individual tasks. In ourexample, we will be doing the clean upwork ourselves. The material will beprovided by builders’ suppliers, and youhave two professionals to help you: aqualified plumber for the installationwork and for removing the old tub, anda qualified electrician for the electricalinstallations. And finally, you have yourown family to help you get rid of all therubble.We will be using <strong>Taskjuggler</strong> to assignhuman resources to the individual tasksand create the schedule.The ToolThe <strong>Taskjuggler</strong> project <strong>management</strong>tool is really a collection of libraries andcommand line tools <strong>with</strong> a GUI-basedfront-end for KDE. <strong>Taskjuggler</strong> autonomouslyplans individual tasks andresolves conflicting situations, for example,if there is a dependency between theend of one task and the start of another.Prepare replacement fittings1. Check water pipes2. Check heating3. Repairs4. Clean replacement fittingsRemove old fittings1. Turn off water and heating2. Remove furniture3. Remove tub4. Remove shower5. Remove tiles6. Remove ceilingDetailed TasksFigure 1: The <strong>Taskjuggler</strong> editor is used for entering the project data.InstallationThe <strong>Taskjuggler</strong> source code is availablein the download area of the website at[1]. To build the program, you will needthe KDE developer libraries (kdelibs-dev,kdelibs-devel, or similar). The package isbzip2 compressed, so you will need thetar -j option to unpack it:tar xfj taskjuggler-2.1.tar.bz2Change to the taskjuggler-2.1 directory,and ./configure your <strong>Taskjuggler</strong> sourcecode, then go on to build and install byentering make and su -c 'make install'.<strong>Taskjuggler</strong> gives you enough leeway todefine working hours, leisure hours, andeven breaks in the Gantt diagram.Resources can be assigned to groups forease of <strong>management</strong>, but this is somethingwe will not need for the bathroomrefit project.<strong>Taskjuggler</strong> allows you to assign coststo individual resources and to define initialand completion costs for the project.This means you will be able to budgetyour bathroom refit and manage yourcashflow should the project take longerthan you envisage.The program provides useful reportsorganized by topics such as individualtask, progress, or cost. The Gantt diagramvisualizes progressive planningand shows you how resources have beenassigned to tasks. <strong>Taskjuggler</strong> gives youa human resources overview, includingavailability, load, and cost data. Theresource calendar shows you whichresources are available when and towhat extent.<strong>Taskjuggler</strong> is a very powerful toolcapable of handling professional projects,and it givesyou a full setof time, resource,and cost <strong>management</strong>features.Data input and<strong>management</strong> areboth intuitive,and the tool isrounded off by thereporting functionsthat visualizethe currentproject statusbased on theparameters oftime, cost, andutilization of resources.PlanningThe next step is to enter the individualtasks in <strong>Taskjuggler</strong>. The program has itsown editor for entering tasks (Figure 1).When you set up a new project, firstuse the editor to define project data suchas the <strong>Project</strong>ID (a description of theproject that includes information on thetime frame for the work), the currentdate, the time format, and the currency.The entries for our bath refit project areas follows:project bare "Bath Refit" "1.0"2005-07-01 2005-08-30 {now 2005-07-11timeformat "%Y-%m-%d"currency "EUR"Listing 1: Subtasks in the<strong>Taskjuggler</strong> Editor01 task Bare "Bathroom Refit" {02 task repfit "Replacmentfittings"03 task chkwat "Check waterpipes"04 task chkhtg "Check heating"05 task rep "Repairs"06 task cln "Clean"07 }08 task oldfit "Remove oldfittings"09 task newfit "Install newfittings"10 task fini "Finished"11 }W W W. L I N U X- M A G A Z I N E . C O MISSUE 61 DECEMBER 200553


KNOW-HOW<strong>Taskjuggler</strong>scenario plan "Plan" {scenario delayed"Delayed"}}CostsOne of <strong>Taskjuggler</strong>’s biggest benefits isthe program’s ability to handle costs andcost calculations. This keeps us on top ofour budget during the bathroom refitproject and gives us the ability to recalculatethe project whenever we need to.The next step is to define cost factors byentering rate 120.0.This entry defines the daily wage forthe most expensive worker. <strong>Taskjuggler</strong>has an elegant approach to assigningcost factors based on macros that can beassigned later. This saves typing duringdata entry. The macro for our projectlooks like this:macro allocate_workers [allocate wo1allocate wo2 { load 0.5 }allocate wo3]The workforce wo1 through wo3 is coveredby a single macro. The load 0.5entry shows that the daily wage for thewo2 label is only half that of the others(factor 0.5). You can then run this macroin the context of a subtask by entering${allocate_workers}. We will be definingthe project resources in the next step:flags teamresource wo "Workforce" {resource wo1 "plumber"resource wo2 "myself"resource wo3 "electrician"flags team}This groups theworkforce to createa team, whileat the same timeassigning peopleto the wo1through wo labels.If you need to addmore details forthe members ofyour workforce,you can simplyadd this data tothe line for theperson involved.For example, ourelectrician is onvacation between8.1.05 and8.10.05.resource wo3 U"electrician" { vacation U2005-08-01 - 2005-08-10 }Let’s assume that the plumber has torethink the offer he made you andquotes a higher daily wage; you canenter the individual daily wage asfollows:resource wo1 "plumber"{ rate 100.0 }After completing this preparation, youcan finally get down to entering andplanning the individual tasks:task Bare "Bathroom Refit" {task repfit U"Replacment fittings"task oldfit U"Remove old fittings"task newfit U"Install new fittings"Figure 2: A Gantt plan shows the chronological progression of tasksand subtasks.task fini "Finished"}In the <strong>Taskjuggler</strong> editor language, thetask keyword identifies a task. Each taskcomprises an identifier, for exampleBare, and a description such as “BathRefit.” Subtasks for a task are surroundedby braces. Based on our originalspecs for the refit project, the four subtasksfor the main “Bath Refit” task areas follows:"Replacement fittings","Remove old fittings","Install new fittings" and"Finished" zu.You can now break down the subtasks.The details in Listing 1 are subtasks forthe “Replacement fittings” subtask.Repeat this for all other subtasks. Tocomplete your schedule, we still need afew details, such as the necessary timefor each task and the worker who willperform the task.01 task repfit "Replacementfittings" {02 task chkwat "Check waterpipes" {03 effort 1d04 allocate wo205 }06 task chkhtg "Check heating" {07 effort 1d08 allocate wo2Listing 2: Subdividing Subtasks09 }10 task rep "Repairs" {11 effort 2d12 allocate wo1, wo313 }14 task cln "Cleaning" {15 effort 1d16 allocate wo217 }18 }DeadlinesLet’s start <strong>with</strong> the first of those items.“How long does each task take?” The<strong>Taskjuggler</strong> editor has a few specialkeywords for this, for example, effortspecifies the number of man-days, followedby the workforce (resource)assignments for the task. The lengthkeyword defines the length of the taskin working days, and duration does thesame for calendar days.Let’s assume you have asked theplumber and the electrician to submit an54 ISSUE 61 DECEMBER 2005 W W W. L I N U X- M A G A Z I N E . C O M

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!