Project margins feature in LibrePlan


It’s been a while and Miciele has been very busy developing stuff for LibrePlan.

Our latest development has to do with project margins. As a projectmanager you will probably want to know if a task in a project takes longer than expected because it is your job to act upon those kind of things. Well, now you can!

In the “general data” tab of a project is is possible to add margins on time and budget. For instance, you can say that you work with a 10% margin. As soon as a task takes longer than expected the indicator turns orange. As soon as the task takes more than 10% longer the indicator turns red. This way, you do not have to check all of your projects every day, you can only check the ones that need some attention.

The screenhots that show this functionality are as follows: first the list of projects that show you which project needs attention:










As you can see in the picture above, there are some projects that need attention.  There is a new column and the left icon is for time, and the right column is voor money. Now, how does an open project look?


Now when I open one of those projects like in the picture above, I can see the tasks that need attention, and I can even see the containers that have tasks that need attention.

This makes it very easy to find tasks that need attention.

There is more stuff that we are working on but for now this should be enough 🙂

Kind regards,


Latest news about our LibrePlan development work

Hi all,

It has been some time and Miciele has been very busy developing new stuff to add to LibrePlan. In this post I will try to tell you all about our latest modifications.

Configuration database

The first one is under the hood, so not visible to users. We saw that the LibrePlan configuration was stored in 1 record in the “configuration” table and was extended by everyone who wanted to add configuration information to LibrePlan. We developed a new table called AppProperties with the fields “id”, “major”, “minor”, “parameter” and “value”. The idea behind this is that everyone who wants to add configuration information can add his or her’s own records easily. The “major” field is meant for indication some large piece of functionality, like “jira” for a Jira connector. The “minor” field is used for some submodule within this piece of code and the “parameter” and “value” field I guess explain themselves.

We hope the LibrePlan community will accept this configuration model as a new way of storing configuration information.

Multiple connectors

After developing a Jira and a Timn (more on this later) connector and realizing that more connectors are on the way elsewhere in the world we discovered that it could be a good idea if we made connector configuration a different part of the configuration process. To make it more scale-able than it was. So we made a “connectors” tab in the configuration screen with a pull-down list for available connectors.


The parameters you can change come from the configuration database and all have a “test-connection” button to help in the process. A screenshot shows this:



We discovered that some connectors need to run automatically so we added a Java schedulerlibrary to LibrePlan. The configuration syntax is based on the well known crontab configuration syntax so you can enter it manually.


There is a section with some hints about the crontab syntax, the schedules next time to start the job and a manual button to trigger an extra run if you like to test data-exchange if you like.

There is also a little extra window to give you also some basic data-entry functionality.


Timn Enterprise connector

This brings me to a new connector we developer specifically to interface with the Dutch Timn Enterprise product from Aenova. Timn is an application for the administration fo time spent on projects and tasks. It is a Dutch product and it is used a lot in large Dutch healthcare organisations and local municipalities (personally I am not very enthusiastic about the product but that is a whole other story). Anyway, we needed a way to sent all the billable hours stored/gathered in LibrePlan to Timn. Timn has some sort of soapish interface so we used that one to get out of Timn the roster of an employee (holidays, sick-leave, etc) and map that to the calender of a user, and we sent the timesheet info back to Timn.

This means that there is an extra connector that can be enabled and if that is done, an extra section is shown in all projectdata screens:

It shows you the last time a sync was made and with what product-code and you can edit and change to a new productcode if you like.


In the XML format to the Timn interface we define a replacement key based on date, time, user and product so a replace action is done if the record
already exists.

Future plans

We will submit the patches shortly to the core LibrePlan team and look forward to their feedback so we can hopefully have it in 1.4 as soon as possible.

Miciele will than start with a new piece of functionality to LibrePlan because sometimes we want to plan a project more SCRUM-like with a backlog combined with resource allocation. As soon as there is something to show we will write about it again.

Bye for now,



We are almost done!

Miciele has been very bussy with our LibrePlan-Jira connector and we are currently finalizing  our work into a patch. My guess is that we will send in our patch today or tomorrow. So it’s time to show you all the latest developments.

In project window General data: “Sync with jira” button disabled. This can happen if “Jira  activated” is unchecked in jira-connector configuration.

In project window General data: where to sart sync with jira (“Sync with jira” button enabled).


When you first start your sync, an auto-complete list box to select the Jira label you want to sync with will appear:






After sync: the synchronized label is displayed. If you now click the “Sync with Jira” button no pop up screen(to select label) will be shown, instead sync will start for the displayed (already synchronized) label.

If there is something to report, a Synchronization info dialog will appear. It  shows the failure or success info of the sync operation. This can be info like (no Jira worklog found for  a specific issue, or an error if a resource is missing from the LibrePlan configuration. We decided some time ago not to auto-create resources because there is not enough info available to do that automagically.






The WBS(tasks) window: The “hours” colum is disabled (because they come from Jira) and the “code” column contains clickable(!) links to the Jira issues.


And now the really fun part starts! This next 2 screens are so cool (imho).

The Project planning window, zoomed on “Week”.  What you see is the sum of the worklogs. But you also see a progress estimation, based on the Jira estimated time per issue and the worklogs available. So it looks like we are a little ahead of our initial planning. This makes a projectmanager always happy 🙂

If we open the project and look at the individual task progress we see the following screen, scheduling zoomed on a “day” level. As you can see the task in the middel needs some attention because the worklogs have past our initial planning and the progress is only halfway there. This issue needs a project manager’s attention quick!

We have decided to make a timesheet based on a jira-connector timesheet template. The next picture shows the list of available timesheets.

This one shows the timesheet details. The only difference with a ‘default’ timesheet is the extra ‘summary’ column. It shows the comment field of a Jira worklog entry.

The last picture shows a timesheet lines list.

So this is it. We are building the patch right now and hope you all like what we have build.

Kind regards,

Jeroen Baten




New developments in the Jira-Libreplan connector

We have been bussy! 🙂

It turns out that montly timesheets are NOT the best way to handle Jira worklogs!

Initially we thought that developers would make a Jira worklog in a daily basis. But allthough I can mandate that as a manager, there people in the rest of the world who might do this differently and just enter a worklog of say, 80 hours. So storing that in a LibrePlan monthly timesheet wouldn’t make any sense.

We could store the worklog in a standard LibrePlan timesheet but that way we would not be able to use any additional comments that the developer would have written in the worklog. So we decided to store worklogs in a new LibrePlan timesheet, based on the default timesheet but with an additional summary or comment field. This can easily been done by making a new timesheet template and adding an extra field.

The other thing is, and now it becomes fancy (!), we can calculate the progress of the task since we also get the estimated time from Jira. So if we divide the sum of all worklogs by the estimated time, we get a progress estimation! So we also store that as a progress report on the date the sync is done.

But now it becomes tricky. Suppose someone changes the estimation. Let’s say he doubles it. That means that the progess estimation drops to halve of what is was. This is currently not possible to do manually in LibrePlan, but we are going ahead and doing it anyway in our code. This way, the progress shown in the task is accurate, still the new estimated duration of the task is not. However, the amount of worklogs can be shown in a bar above the task so when that one exceed the length of the task it is a clear signal to a projectmanager to look into that and, if needed, change the amount of time the task needs.

All this new stuff looks pretty fancy and I can’t wait to show a screenshot of it. We are still building so you just have to wait a bit. I will post an update as soon as possible.

In the mean time, I have started to write the book “LibrePlan, the missing manual”. It currently contains 30 pages of newbie course material and I want to write a lot more. I will publish it on my own page when it is done. I am using Asciidoc so I intend to keep the  book as up to date as possible in the future.


New progress report Jira-LibrePlan connector (with timesheets!)


It’s been some time since my last update. Miciele is still working hard to get our Jira-LibrePlan connector working.

In this post I will show some new screenshots and tell you where we are heading.

Sofar we can import Jira issues into LibrePlan as separate WBS items. (see earlier post). After setting up a sync you can not change the label in LibrePlan to prevent people from really screwing up the WBS contents:

After a sync the WBS is filled with the summaries of Jira issues:

Now we can import the worklogs from jira to generate a monthly timesheet based on the work done on these issues.

So the timesheet list looks like this:

Now, from this list, we can select a sepatate montly timesheet from someone. That one looks like this:

Thing is, when LibrePlan imports worklogs from users that are known in Jira but not yet known in LibrePlan. Off course auto-create would be nice. But it has some drawbacks. After some thinking we decided to start this release with giving an error message:

So now you know which users/resources you have to add to LibrePlan.

Are we done yet?

Actually, no. We need to cleanup stuff, document it and write some unit-tests. We plan to send our first attempt for a patch somewhere in the next week (october 1st-7th 2012).

After a succesfull merge we will continue with trying to get it connected to a product called Timn Enterprise from a Dutch company called Aenova.