Monday, March 22, 2010

TaskJuggler

I've found the project management software of my life. TaskJuggler. How adorable piece of software this is. I strongly recommend TaskJuggler to anyone who needs a strong project management software which is open source and much more powerful than the commercial alternatives.

Here is a passage from their web site:

"TaskJuggler is a modern and powerful, Open Source project management tool. Its new approach to project planing and tracking is more flexible and superior to the commonly used Gantt chart editing tools. It has already been successfully used in many projects and scales easily to projects with hundreds of resources and thousands of tasks."

To use TaskJuggler, the only thing you need is a text editor and the taskJuggler's scheduler itself. You can start planing a project by writing about the project with the simple script like language of TaskJuggler.

They also provide a GUI. There are couple of downsides with that GUI though. The code-completion is not deeply aware of the TaskJuggler's language (or maybe I'm missing something). Although, it can complete simple text, it doesn't provide complex completion like an IDE can provide.

So for example, you can define a task (task1):

task task1 "Task1"

and create sub tasks (subTask1, subTask2 etc) under this main task:

task task1 "Task 1" {
   task subTask1 "Sub Task 1"
   task subTask2 "Sub Task 2"
   task subTask3 "Sub Task 3"
   # etc
}


then later in the project definition when you try to reach a sub task by writing "task1." I expect a list of tasks popping-up, but it is not, instead it waits until you enter 3 characters then it offers you a list of words starting with those letters, which are not always children of the original task. So you need to find the name by parsing the code by your-self, which is very annoying for even medium sized project files which spans over couple of hundreds of lines.

On the other hand, TaskJuggler designed for shell use, the gui is added later.

Another thing that makes me scratch my head is the new version under development, TaskJuggler 3. The down side (imho) of the new version is, it is developed under Ruby as a Ruby Gem. Which is very very nice for Ruby people. But I wished to have it with Python. If I had it under Python I could use it in my asset management system, to let my tool to have powerful management capabilities. And I can't imagine how fun will it be to use TakJuggler as a Python package under WingIDE. (See Edit 1)

On the other hand, its flexibility on every stage of project management is superior to other software's. I specially liked the part that you can define alternatives to resources with a lot of options which allows you precisely and efficiently allocate a resource.

You can use TaskJuggler as a project tracking tool too. You can refine an ongoing project till the delivery date etc.

Finally, I need to say that I loved that software and it was the tool I'm searching for the last 2 years. Thumbs up TJ people

Edit 1: On this page you can find a Python front-end of TaskJuggler. It is written for an old version of Python (2.3 I think). It seems, it needs to be updated.

4 comments:

Blazej said...

What I dislike is the lack of a centralized database. TaskJuggler relies on a the script and has to "recompile" the resulting structure each time.
It would be possible to create the scripts dynamically but this is an extra effort that makes the filebased concept questionable, don't you think?

Ozgur said...

You are absolutely right. TaskJuggler and the python equivalent Faces wants us to enter the data in their own file format (a python script in faces example) in which they are storing the data. Which is very ridiculous if you think about. It is like writing an assay with notepad in docx format.

That also forces you to write a TJP/TJI parser if you want to use the data in your own system. Which makes it very hard to use current tools. And formats like CSV is not helping that much, you loose information.

GuildWars2Items said...

The consequences of today are determined by the actions of the past scarlet blade gold. To change your future, alter your decisions today scarlet blade gold, Experience is a hard teacher because she gives the test first, the lesson afterwards scarlet blade gold, but it takes character to keep you there.
The world owes you nothing. It was here first. Being happy doesn't mean that everything is perfect Runescape Gold, Empty what's full. Scratch where it itches. Don't go around saying the world owes you a living RS Gold, It means that you've decided to look beyond Runescape Money the imperfections. Do not pray for tasks equal to your powers.

Gracie Christina said...

Thanks for sharing your experience of work on TaskJuggler. I also use Project Management Software for my business. Because your projects are important to the development of your company, it’s vital that you have a proper plan and people in place. A proper management software is very necessary.