Posted
almost 14 years
ago
NavalPlan is a Java application built using Object Oriented Programming and whose data are stored in a relational database – currently PostgreSQL and MySQL are the RDBMS supported and tested-. To map objects from the objects models to relational
... [More]
tables the Hibernate ORM is used, which is a well-known framework in Java platform widely deployed.
In the business layer, it is applied the Domain Model architecture pattern which briefly consists of having rich business objects which encapsulate in the same class the data and the behavior related to them. I think that it was a good decision and I am happy with it. Among other advantages, it allows to organize complex behavior and to reuse business logic easily.
The NavalPlan domain model is large and complex, and one of the problems is its maintenance from documentation point of view. This is so because to have UML diagrams updated is time consuming.
To address the problem above and to have some nice diagrams to teach NavalPlan to new developers, I have being playing today with a tool to infer UML class diagrams from the Hibernate mapping files. With a tool like this a lot of time would be saved !!
The tool I found is Linguine Maps. You have to develope a program to use it but, after resolving some configuration issues, I got a quite good result. Therefore, we will use it in NavalPlan from now on.
With Linguie Maps you can configure several things and create diagrams just with the classes you are interested in. As an example and to view a whole picture of NavalPlan I generated a chart with all the classes. I know that maybe it reminds you of an Indian war with so many arrows, but I think that it could be got a good poster from it
[Less]
|
Posted
almost 14 years
ago
This post has the intention to announce a small tutorial I’ve just written called How To Create A New Report In NavalPlan. From tutorial abstract:
NavalPlan uses JasperReports to create reports in the application. This document tries to explain how
... [More]
to create a new report in NavalPlan.
During this tutorial you are going to create a report that will show the list of resources in NavalPlan.
This manual was created with the goal of helping developers to create new reports in NavalPlan. Following the steps described in the document, you will create a simple report which will generate the list of resources stored in NavalPlan.
However, it’s not a tutorial about how to use JasperReports or iReport, it’s just about how to integrate those tools in NavalPlan following project architecture and conventions.
Finally, please don’t hesitate to contact us on mailing lists or IRC channel if you find any issue. I hope you find it useful [Less]
|
Posted
about 14 years
ago
The purpose of this post is to start a set of blog entries to share my thoughts about ways to measure progress in project planning and to explain methods about how to do it.
Delimiting the problem
The field I want to talk about is the progress
... [More]
measurement in projects which are represented by Gantt charts. These projects consist of a set of activities with logical dependencies among them and which are done by resources, that can be people or machines. Besides, resources can be over-allocatable.
The aim of the planning is to fulfill the project deadline, to have a cost lower than the budgeted money and assess if it is possible to carry out the project with the available company resources. This job is complex and is usually aided by the use of planning, monitoring and controlling project management tools.
In my opinion, on measuring progress it is important to distinguish two levels:
Task level. It is the most common analysis scope and consists of measuring the progress inside tasks. Although there are several possibilities, to put it simple, it will be supposed that it consists of specifying the work already finished in the task in which the measure is being taken.
Project level. In this level the project is taken into account as a whole, with all its tasks, to know how it globally goes. It is a scope which is not as studied as the task level one and, therefore, is less known by people too. I will use the term global progress to call to this type of progress as well.
Having said that, I will focus on the measurement of progress at project level. In this area, the key is to answer the next two questions: is the project delayed or ahead of its planning at the present time? how much?
The project manager needs to know the answers to those questions because they allow him to make decisions. For instance, if there is a certain accumulated delay in a project, the project manager could order to devote more resources in order to recover the delay and arrive on time.
Progress at project level by doing a weighted addition of tasks
This is the method I will explain in this post and is one of the methods that maybe first comes to your mind if you think about this problem. I will explain it by answering two questions which are mandatory if you define a method to measure progress at project level.
Which tasks contribute to calculate the project progress?
In the method I propose all the tasks are considered. The rationale of this answer is that all the tasks which make up a project are important and, therefore, all of them must contribute to the global progress.
How is the contribution of each task ?
The thing here is to make the decision about the way in which each task influence the global progress. Two strategies can be thought:
To use the average
The principle which supports this option is equality. It sets that contribution is the same for all tasks.
To use a weighted average.
It implies to break the equality principle and to set that contribution to the global progress is not the same for each activity. There are many ways to establish equality and, regarding to the global progress calculation, the point is to identify the task feature(s) that makes them different. So, which are these features ? Well, from my point of view, the feature which distinguishes them concerning to progress is the amount of work a task consists of. This is so because, having tasks with different amount of hours causes that, for the same progress value at task level, the amount of remaining work to be completed per task was different.
The bad effect of ignoring the different amount of remaining work of each task can be seen in the next example easily: If we have a two tasks project, one having 100 work hours and another 10 work hours and we receive a progress of 10% in the firs task and 90% in the second one, we get the following global progress value using average: ( 10 + 90 ) / 2 = 50%. Half of the project is already done according to the global progress, but, however, the remaining work to finish is much more than 50%.
To correct the behavior described, the method I propose is to add progresses per task weighing the progress value of each task by the hours percentage the task represents with regard to the project total hours. With the average calculation the project manager thinks that project goes very well when reality is not so good but, however, using the weighted average, he sees a value which approaches project state better, he gets a global progress value of 10*(100/110) + 90*(10/110) = 17,27%.
Finally, I would not like to end up without stressing that in NavalPlan users can measure global progress choosing among several options and the method explained here is one of the alternatives. [Less]
|
Posted
about 14 years
ago
The purpose of this post is to start a set of blog entries to share my thoughts about ways to measure progress in project planning and to explain methods about how to do it.
Delimiting the problem
The field I want to talk about is the progress
... [More]
measurement in projects which are represented by Gantt charts. These projects consist of a set of activities with logical dependencies among them and which are done by resources, that can be people or machines. Besides, resources can be over-allocatable.
The aim of the planning is to fulfill the project deadline, to have a cost lower than the budgeted money and assess if it is possible to carry out the project with the available company resources. This job is complex and is usually aided by the use of planning, monitoring and controlling project management tools.
In my opinion, on measuring progress it is important to distinguish two levels:
Task level. It is the most common analysis scope and consists of measuring the progress inside tasks. Although there are several possibilities, to put it simple, it will be supposed that it consists of specifying the work already finished in the task in which the measure is being taken.
Project level. In this level the project is taken into account as a whole, with all its tasks, to know how it globally goes. It is a scope which is not as studied as the task level one and, therefore, is less known by people too. I will use the term global progress to call to this type of progress as well.
Having said that, I will focus on the measurement of progress at project level. In this area, the key is to answer the next two questions: is the project delayed or ahead of its planning at the present time? how much?
The project manager needs to know the answers to those questions because they allow him to make decisions. For instance, if there is a certain accumulated delay in a project, the project manager could order to devote more resources in order to recover the delay and arrive on time.
Progress at project level by doing a weighted addition of tasks
This is the method I will explain in this post and is one of the methods that maybe first comes to your mind if you think about this problem. I will explain it by answering two questions which are mandatory if you define a method to measure progress at project level.
Which tasks contribute to calculate the project progress?
In the method I propose all the tasks are considered. The rationale of this answer is that all the tasks which make up a project are important and, therefore, all of them must contribute to the global progress.
How is the contribution of each task ?
The thing here is to make the decision about the way in which each task influence the global progress. Two strategies can be thought:
To use the average
The principle which supports this option is equality. It sets that contribution is the same for all tasks.
To use a weighted average.
It implies to break the equality principle and to set that contribution to the global progress is not the same for each activity. There are many ways to establish equality and, regarding to the global progress calculation, the point is to identify the task feature(s) that makes them different. So, which are these features ? Well, from my point of view, the feature which distinguishes them concerning to progress is the amount of work a task consists of. This is so because, having tasks with different amount of hours causes that, for the same progress value at task level, the amount of remaining work to be completed per task was different.
The bad effect of ignoring the different amount of remaining work of each task can be seen in the next example easily: If we have a two tasks project, one having 100 work hours and another 10 work hours and we receive a progress of 10% in the firs task and 90% in the second one, we get the following global progress value using average: ( 10 + 90 ) / 2 = 50%. Half of the project is already done according to the global progress, but, however, the remaining work to finish is much more than 50%.
To correct the behavior described, the method I propose is to add progresses per task weighing the progress value of each task by the hours percentage the task represents with regard to the project total hours. With the average calculation the project manager thinks that project goes very well when reality is not so good but, however, using the weighted average, he sees a value which approaches project state better, he gets a global progress value of 10*(100/110) + 90*(10/110) = 17,27%.
Finally, I would not like to end up without stressing that in NavalPlan users can measure global progress choosing among several options and the method explained here is one of the alternatives. [Less]
|
Posted
about 14 years
ago
I, as part of NavalPlan team, am going to FOSDEM this weekend. I’ll be there to learn from other people but I’ll also be available to explain NavalPlan to these people interested in knowing more about the project.
I’ll be wearing this t-shirt:
... [More]
So, if you are interested in NavalPlan don’t hesitate to ask me about it.
NavalPlan is a free software web project planning tool developed and Igalia is one of the main contributors. Main features are:
Multiproject management. It offers a global vision of the company managing several projects sharing resources.
Group resource allocations: dynamic groups based on criteria.
Flexible calendars.
Configurable Gantt charts from Work Breakdown Structure (WBS).
Resource Breakdown Structure chart.
And much more….
[Less]
|
Posted
about 14 years
ago
I, as part of NavalPlan team, am going to FOSDEM this weekend. I’ll be there to learn from other people but I’ll also be available to explain NavalPlan to these people interested in knowing more about the project.
I’ll be wearing this t-shirt:
... [More]
So, if you are interested in NavalPlan don’t hesitate to ask me about it.
NavalPlan is a free software web project planning tool developed and Igalia is one of the main contributors. Main features are:
Multiproject management. It offers a global vision of the company managing several projects sharing resources.
Group resource allocations: dynamic groups based on criteria.
Flexible calendars.
Configurable Gantt charts from Work Breakdown Structure (WBS).
Resource Breakdown Structure chart.
And much more….
[Less]
|
Posted
about 14 years
ago
I, as part of NavalPlan team, am going to FOSDEM this weekend. I’ll be there to learn from other people but I’ll also be available to explain NavalPlan to these people interested in knowing more about the project.
I’ll be wearing this t-shirt:
... [More]
So, if you are interested in NavalPlan don’t hesitate to ask me about it.
NavalPlan is a free software web project planning tool developed and Igalia is one of the main contributors. Main features are:
Multiproject management. It offers a global vision of the company managing several projects sharing resources.
Group resource allocations: dynamic groups based on criteria.
Flexible calendars.
Configurable Gantt charts from Work Breakdown Structure (WBS).
Resource Breakdown Structure chart.
And much more….
© Xavier Castaño for My blog at Igalia, 2011. |
Permalink |
4 comments
Add to del.icio.us
Search blogs linking this post with Technorati
Want more on these topics ? Browse the archive of posts filed under Free Software, Igalia, navalplan. [Less]
|
Posted
about 14 years
ago
Project management according to PMI is the application of knowledge, skills, tools and techniques to project tasks to meet the project requirements. It is made up of a set of activities which can be grouped in five areas:
Initiating
Planning
... [More]
Executing
Monitoring and Controlling
Closing
Different applications can be used to help to carry out the activities above and they are usually called project management applications.
Throughout my experience, however, the previous name is not the most suitable one because it causes two undesirable situations.
The first one relates to the fact that the inclusion level is too broad. It is too general to say that a program is a project management application.
The second situation happens when the use of the term causes confusion. Maybe people taking part in the communication attribute different meaning to that software category. There are two reasons which explain this fact from my point of view:
I do not know programs which cover all the process areas and, in case they exist, they are a minority and are not widely spread.
Project managers use a set of programs which cover just some of the mentioned areas (but not all of them).
Therefore, if we take into account both things, we find scenarios where people use the term project management to mean qualitatively different applications and that is the cause of the confusion.
The solution I suggest to avoid these problems is to use the process area name(s) to categorize applications and add this prefix to the project management term. Besides, many times this last part will be implicit and not necessary. As an example, we can say that NavalPlan covers (2) and (4) areas and, thus, would be a planning, monitoring and control tool.
Finally, I would like to end up with a last perception about applications which have among their features:
Bug tracking.
Time tracking.
Wiki
Calendar
Document management
etc
These applications are very common and I do not know a specific term for them, apart from project management. They are used for coordination, for resource collaboration, etc during the execution of certain type of projects.
Having said that, the idea I want to share, is that, according to my proposal, I would call them executing project tools, (3) area.
I will go in depth about project management tools categorization in a later blog entry. [Less]
|
Posted
about 14 years
ago
Project management according to PMI is the application of knowledge, skills, tools and techniques to project tasks to meet the project requirements. It is made up of a set of activities which can be grouped in five areas:
Initiating
Planning
... [More]
Executing
Monitoring and Controlling
Closing
Different applications can be used to help to carry out the activities above and they are usually called project management applications.
Throughout my experience, however, the previous name is not the most suitable one because it causes two undesirable situations.
The first one relates to the fact that the inclusion level is too broad. It is too general to say that a program is a project management application.
The second situation happens when the use of the term causes confusion. Maybe people taking part in the communication attribute different meaning to that software category. There are two reasons which explain this fact from my point of view:
I do not know programs which cover all the process areas and, in case they exist, they are a minority and are not widely spread.
Project managers use a set of programs which cover just some of the mentioned areas (but not all of them).
Therefore, if we take into account both things, we find scenarios where people use the term project management to mean qualitatively different applications and that is the cause of the confusion.
The solution I suggest to avoid these problems is to use the process area name(s) to categorize applications and add this prefix to the project management term. Besides, many times this last part will be implicit and not necessary. As an example, we can say that NavalPlan covers (2) and (4) areas and, thus, would be a planning, monitoring and control tool.
Finally, I would like to end up with a last perception about applications which have among their features:
Bug tracking.
Time tracking.
Wiki
Calendar
Document management
etc
These applications are very common and I do not know a specific term for them, apart from project management. They are used for coordination, for resource collaboration, etc during the execution of certain type of projects.
Having said that, the idea I want to share, is that, according to my proposal, I would call them executing project tools, (3) area.
I will go in depth about project management tools categorization in a later blog entry. [Less]
|
Posted
about 14 years
ago
Yesterday, NavalPlan community met at #navalplan channel on IRC. Even when most of us are igalians, also some other external people attended and participated in the meeting. We’re really glad to see that project community is growing bit by bit.
In
... [More]
the meeting we defined the roadmap for next release, more info in the official piece of news. This was the first public meeting of NavalPlan and, IMHO, it worked quite well, so we’ll repeat the experience in the future.
BTW, Igalia web group is looking for a new hacker to help us keep rocking on the web free software world. Send us your resume if you’re interested. [Less]
|