Project-Task modules
bron:openerp.com
DRIVE YOUR PROJECTS
If you have a good system to manage tasks, your whole company will benefit. OpenERP’s project management application enables you to efficiently manage and track tasks, work on them effectively, quickly delegate them while keeping close track of your delegated tasks. OpenERP also helps people in the company to organize their personal time, and this chapter proposes a methodology aimed at improving the productivity of managers.
Start with a fresh database that includes demo data, install Sales Management (sale) and Project Management (project) and select the generic chart of accounts.
1.1 Project Management
In the previous chapter you learned more about the financial management of projects, based on OpenERP’s analytic accounts, structured into cases. This way of working enables you to analyze time plans and budgets, to control invoicing and to manage your different contracts.
Here we will explain operational project management to organize tasks and plan the work you need to get the tasks completed. All the necessary operations are carried out from the Project menu.

Most customer projects are represented by:
- one or several analytic accounts in the Accounting System to keep track of the contract and its different
phases,
- one or several projects in Project Management to track the project and the different tasks to be completed.
There is a direct link between the project and the analytic account, because for each new project created, OpenERP will automatically create the corresponding analytic account in the Projects analytic chart of accounts. Note that you have no access to the analytic account directly from a project.
1.1.1 Creating Projects and Related Tasks
To define a new project, go to the menu Project → Project → Projects. Click New and give your new project a Project Name.
You can put this project into a hierarchy, as a child of a Parent Project, and assign a Project Manager. Enter the general duration by completing Start Date and End Date.
The Administration tab displays information about Planned Time and the Time Spent on the project according to the task work completed. By checking the box Warn Manager, you configure the system to automatically send the project manager an OpenERP Request every time a task is closed. In case a project takes too long, it can also be escalated to another project. In Project Escalation, enter the project that will be used for escalated tasks. Define a generic Reply-To Email Address linked to all automated mails; this allows you to receive replies directly in OpenERP. You can also link to a Working Time category, which will be used to calculate the Project’s time line, i.e. through a Gantt chart.
The status of a project can take the following values:
- Open: the project is being carried out,
- Pending: the project is paused,
- Cancelled: the project has been cancelled and therefore aborted,
- Closed: the project has been successfully completed.
On the Members tab, add Members to the project; this is related to access rights too.
On the Billing tab, you find information to invoice your customer. Select the Customer; the Invoice address will automatically be filled from the customer form. You also have to complete the invoicing data, such as Sale Pricelist and Invoice Task Work to directly invoice from task work done. OpenERP allows you to set a Max. Invoice Price for the project (or subproject). The Invoiced Amount shows the total amount that has already been invoiced for the project concerned.
If you want to automatically keep your customer informed about the progress of the project, check Warn Partner.

The Task Stages tab allows you to define stages thath help you dividing your tasks. You can add a sequence number to set the stage order, allowing you to prioritize your task work, i.e. first you will have the Specification stage and then Development.
1.1.2 Managing tasks
Once a project has been defined, you can enter the tasks to be executed. You have two possibilities for this:
- click the ACTION button Tasks to the right of the project form, then click New.
- from the menu Project → Project → Tasks, create a new task and assign it to an existing project.
Each task has one of the following states:
- Draft: the task has been entered but has not yet been validated by the person who will have to do it,
- Open: you can start working on the task, or taks is in progress,
- Closed: task is completed,
- Cancelled: task work is no longer required,
- Pending: task is waiting for response of someone else (e.g. customer information).
A task can be assigned to a user, who then becomes responsible for closing it. But you could also leave it unassigned so that nobody specific will be responsible: various team members instead are made jointly responsible for working on tasks they have the skills for.
 Tasks in Project Management
Each user manages his or her own task using the various menus available. To open the list of unclosed tasks that have been specifically assigned to you, go to the menu Project → Project → Tasks. Or to open the unassigned tasks, go to Project → Project → Tasks and then click Clearbutton and then Unassigned button.

The Delegations tab allows you to define links between your tasks. From Parent Tasks set the tasks that are related to this task. Use this feature to define the order in which tasks need to be accomplished, i.e. task 2 may not be executed before task 1.
1.1.3 Invoicing Tasks
Several methods of invoicing have already been described:
- invoicing from a sales order,
- invoicing on the basis of analytic costs (service times, expenses),
- invoicing on the basis of deliveries,
- manual invoicing.
Although invoicing tasks might appear useful, in certain situations it is best to invoice from the service or purchase orders instead. These methods of invoicing are more flexible, with various pricing levels set out in the pricelist, and different products that can be invoiced. And it is helpful to limit the number of invoicing methods in your company by extending the use of an invoicing method that you already have.
If you want to connect your Sales Order with Project tasks you should create products such as Consultant and Senior Developer. These products should be configured with Product Type Service, a Procurement Method of Make to Order , and a Supply Method of Produce. Once you have set this up, OpenERP automatically creates a task in project management when the order is approved. You can even take this further by adding a default project to your product. In the Product form, on the Procurement & Locations tab, enter the default project to which the automatically created task (from the sales order) should be linked.
You can also change some of the order parameters, which affects the invoice:
- Shipping Policy : Invoice on Order After Delivery(when the task is closed),
- Invoice On : Shipped Quantities (actual hours in the task).
Create the Sales Order using the product Consultant with the above configuration and confirm it. You can find the task created from this sale order using the menu Project → Project → Tasks. Once you find that task, click on the Start Task button in order to start it. You have to manually assign the project for this task, unless you specified a default project in the Product form. When you complete the task enter the information in the Task Work field. Then click the Done button in order to indicate to OpenERP that this task is finished. As for example the new task SO008:Create SRS generated from sales order SO0008 as shown in following figure.
 Task created from Sales Order

After finishing this task go to the menu Project → Invoicing → Invoice Tasks Work in order to find the list of uninvoiced task works. Click the action Invoice analytic lines when you want to create an invoice for this task work.
 Form to Create Invoice from Tasks Work
1.1.4 Priority Management
Several methods can be used for ordering tasks by their respective priorities. OpenERP orders tasks based on a function of the following fields: Sequence, Priority, and Deadline.
Use the Sequence field on the second tab, Extra Info, to plan a project made up of several tasks. In the case of an IT project, for example, where development tasks are done in a given order, the first task to do will be sequence number 1, then numbers 2, 3, 4 and so on. When you first open the list of project tasks, they are listed in their sequence order. You can simply drag and drop tasks to change their sequence.
You can use one of these three ordering methods, or combine several of them, depending on the project.
 Gantt chart, calculated for earliest delivery
You can set the Working Time in the project file. If you do not specify anything, OpenERP assumes by default that you work 8 hours a day from Monday to Sunday. Once the time is specified you can call up a project Gantt chart from Tasks. The system then calculates a project plan for earliest delivery using task ordering and the working time.

1.1.5 Delegate your Tasks
To delegate a task to another user you can just change the person responsible for that task. However the system does not help you track tasks that you have delegated, such as monitoring of work done, if you do it this way.
 Form for Delegating a Task to Another User
Instead, you can use the Delegate button on a task.
The system enables you to modify tasks at all levels in the chain of delegation, to add additional information. A task can therefore start as a global objective and become more detailed as it is delegated down in the hierarchy.
The second tab on the task form gives you a complete history of the chain of delegation for each task. You can find a link to the parent task there, and the different tasks that have been delegated.
1.2 Long Term Project Planning
You can plan your projects with Long Term Planning. To do this, use the Reconfigure wizard and in the Project Application Configuration section, select Long Term Planning and click Configure. This installs the project_long_term module. By using this feature you can link tasks to your planning to have a great view of who will do what at a specific time.
The traditional phased approach identifies the sequence of steps to be completed. Faces library is used for scheduling phases and tasks based on calendar resources. So resource availability or resource leaves are tracked using this tool. The Gantt chart allows you to easily manage your resources and plans by mere drag & drop. The Calendar view also helps you map your deadlines and tasks needing attention.
1.2.1 Project Phases
You can subdivide your larger projects into several phases. To define a new phase, go to Project → Project → Project Phases and click New. You must link your phase to a project through the Project field. For each phase, you can define your resources allocation (human or machine), describe the different tasks and link your phase to previous and following ones. You can also add constraints linked with dates and scheduling. A Gantt view of your project is available from this menu, which you may alternatively open through the Project → Long Term Planning → Project Phases menu.
 Form View of Project Phase
1.2.2 Scheduling
You need to define a working schedule and leaves since the project scheduler will use these to calculate the project dates. Ensure that you have entered a working schedule for your project in the Working Time field in the Administration tab of the Project form. This is useful to generate accurate Gantt charts for your project.
If you have tasks related to a phase, you can see them in the Tasks Details tab of your phase form. Schedule them by clicking the Schedule Tasks button. All the tasks which are in draft, pending and open state are scheduled and their dates are calculated based on the starting date of the phase.
 Schedule Related Unclosed Tasks
You can similarly derive the Gantt charts for Project Phases and Resources Allocation in the following ways:
Compute Phase Scheduling
Obtain the Gantt chart for Project Phases through the menu Project → Scheduling → Compute Phase Scheduling. A dialog box will appear allowing you to select all projects or a single project. It will compute the start date and end date of the phases which are in draft, open and pending state of the given project. Click Compute to open Gantt view.
 Gantt Chart for Project Phases
Compute Tasks Scheduling
This feature has the same purpose as the previous one and is used only for projects that are not cut in phases, but only consist of a list of tasks. To access it, go to Project → Scheduling → Compute Task Scheduling. You must and can select only a single project for computation. It shows the Gantt chart for Resources Allocation.
 Gantt Chart for Resources Allocation
1.3 Planning to Improve Leadership
Planning in a company often takes the form of regular meetings between the different teams. Each team has a certain number of projects and objectives that they must organize and establish priorities for.
Ideally, these planning meetings should be short but regular and systematic. They can be weekly or monthly depending on the type of activity. A planning meeting often runs in three phases: 1. Minutes of the preceding period, and analysis of the work done compared to the planned work. 2. Introduction of new projects. 3. Planning the next period.
The planning function covers several objectives which will be described in this section:
- planning live projects against the commitments that have been made to clients,
- determining staffing (HR) requirements in the coming month,
- setting work for each employee or team for the periods to come,
- analyzing the work done in the preceding periods,
- passing the high-level objectives to lower levels in the company’s hierarchy

1.3.1 Planning by time or by tasks?
There are two major approaches to enterprise planning: planning by task and planning by time. You can manage both with Open ERP.
In planning by task, the project manager assigns tasks from the different projects to each employee over a given period. Employees then carry out precisely the work they have been assigned by the project manager. Planning by time consists of allocating, for each employee, some time on each of the different projects for the period concerned. The tasks for each project are ordered by priority and can be directly assigned to a user or left unassigned. Each employee then chooses the task that he or she will do next, based on the plans and the relative priorities of the tasks.
 Monthly planning for work time of each employee
The figure Monthly planning for work time of each employee shows a monthly planning session where plans are being made for each employee to spend a number of days’ work on various different projects.
In this time-focused planning approach, clients’ priorities do not feature in the planning any more, but are explicit in the task list instead. So this approach helps you separate the planning of human resources on projects from the task prioritization within a project.

1.3.2 Plan your Time
Install the module project_planning to get additional functions that help with both planning and reporting on projects. Start a plan by using the menu Project → Long Term Planning → Plannings. On each planning line you should enter the user, the analytic account concerned, and the quantity of time allocated. The quantity will be expressed in hours or in days depending on the unit of measure used. For each line you can add a brief note about the work to be done.
Once the plan has been saved, use the other tabs of the planning form to check that the amount of time allocated to the employees or to the projects is right. The time allocated should match the employees’ employment contracts, for example 37.5 hours per week. The forecast time for the project should also match the commitments that you have made with client.
You should ideally complete all the planning for the current period. You can also complete some lines in the planning of future months – reserving resources on different project in response to your client commitments, for example. This enables you to manage your available human resources for the months ahead. Plans can be printed and/or sent to employees by email. Each employee can be given access to a dashboard that graphically shows the time allocated to him or her on a project and the time that has been worked so far. So each employee can decide which projects should be prioritized.
The employee then selects a task in the highest priority project. She ideally chooses either a task that has been directly assigned to her, or one which is high on the priority list that she is capable of completing, but is not yet directly assigned to anybody.
At the end of the period you can compare the duration of effective work on the different project to that of the initial estimate. Print the plan to obtain a comparison of the planned working time and the real time worked.
 Comparison of planned hours, worked hours and the productivity of employees by project
You can also study several of your project’s figures from the menus in Project → Reporting.
1.3.3 Planning at all levels of the Hierarchy
To put planning in place across the whole company you can use a system of planning delegation.
The planning entry form can reflect the hierarchical structure of the company. To enter data into a plan line you can:
- assign time on a project to an employee,
- assign time on a project to a department manager for his whole team.
You can now allocate the working time on projects for the whole of a department, without having to detail each employee’s tasks. Then when a department manager creates his own plan he will find what is required of his group by his management at the bottom of the form. At the top of the form there is a place for assigning project work in detail to each member of department.
If you do not have to plan time to work on a final draft you can do it on an analytic account that relies on child accounts. This means that you can create plans to meet top-level objectives of the senior management team and then cascade them down through the different departments to establish a time budget for each employee. Each manager then uses his own plans for managing his level in the hierarchy.
1.4 The Art of Productivity without Stress
Now you can take a slight detour away from pure enterprise management by looking at some tools offered by Open ERP to improve your own personal time management. It is not much of a detour because good organization is the key to better productivity in your daily work. Open ERP’s project_gtd module was inspired by the work of two books focusing on efficient time management:
- Getting Things Done – The Art of Stress-Free Productivity, by David Allen (2001), most often referred to
by its initials GTD (trademark registered since 2005). This book is built around the principle that people should clearly write down all their outstanding tasks and store the details about these tasks in a trustworthy system. They then do not have to worry about holding all of this stuff in their head. Since they can be quite sure that it is recorded safely, they can allow themselves to relax and so have the energy and time to concentrate on handling the tasks themselves systematically.
- The 7 Habits of Highly Effective People by Stephen R. Covey (1989) : the author advises organizations on
the use of these practices, and reports on the productivity improvements in the organization that result.

The objective in this detour is not to detail the whole methodology but to describe the supporting tools provided by Open ERP’s project_gtd module.
1.4.1 Not everything that is urgent is necessarily important
The first modification brought by the module to the basic Open ERP system is a separation of the concepts of urgency and importance. Tasks are no longer classified by a single criterion but by the product of the two criteria, enabling you to prioritize matters that are both urgent and important in a single list
Many managers with a heavy workload use urgency as their sole method of prioritization. The difficulty is then in working out how to plan for substantive tasks (like medium term objectives). These are not urgent but are nevertheless very important.

In Open ERP urgency is given by the Deadline of the task and importance by the Priority. The classification of the tasks then results from the product of the two factors. The most important tasks and the most urgent both appear at the top of the list.
1.4.2 Organizing your life systematically
A methodology of organizing yourself using the concepts of context and timebox is presented in this section.
Context
The context is determined by the work environment you must be in to deal with certain tasks. For example you could define the following contexts:
- Office : for tasks which have to be dealt with at your workplace (such as telephone a customer, or write a
document),
- Car : for tasks that you need to do on the move (such as going shopping, or going to the post office),
- Travel : for tasks that you can handle on the plane or in the train while you are doing travelling on business
(tasks such as writing an article, or analyzing a new product),
- Home : for tasks which have to happen at your private address (such as finding a cleaning contractor, or
mowing the lawn).
An employee / system user can create his or her own contexts using the menu Project → Configuration → Tasks → Contexts.
Timebox
You then have to define the timeboxes. You have to complete the tasks in the time interval specified by a timebox. You usually define timeboxes with the following periods:
- Today : for tasks which must be handled today,
- This Week : for tasks that have to be dealt with this week,
- This Month : for tasks which have to be completed within the month,
- Long Term : for tasks that can be dealt with in more than one month.
A task can be put in one and only one timebox at a time.
You should distinguish between a timebox and the deadline for completing a task because the deadline is usually fixed by the requirements of the project manager. A timebox, by contrast, is selected with reference to what an individual can do.
To define timeboxes for your company, use the menu Project → Configuration → Tasks → Timeboxes.
Methodology and iterative process
To organize your tasks efficiently, Open ERP uses a method based on the following systematic and iterative process: 1. Identify all the tasks that you have to deal with, including everything that keeps you awake at night, and enter them in Tasks, which you will find in the menu Project → Project → Tasks. 2. Classify the tasks periodically, assigning them a context and a timebox. This indicates both when and where the task should be handled. If a task takes less than 10 minutes then maybe it could be handled immediately. 3. Every day, carry out the following process:
- First thing in the morning, select those tasks contained in the current week’s timebox that you want to
deal with today. These are presented in order of importance and urgency, so you should select the tasks closest to the top of the list.
- Carry out each task, that is to say either work on the task yourself or delegate it to another user,
- Last thing at the end of the day’s work, empty that day’s timebox and return all unclosed tasks into
the week’s timebox. 4. Repeat the same process each week and each month for the respective timeboxes.

So start by entering all the tasks required by project. These could have been entered by another user and assigned to you. It is important to code in all of the tasks that are buzzing around in your head, just to get them off your mind. A task could be:
- work to be done,
- a short objective, medium or long term,
- a complex project that has not yet been broken into tasks.
A project or an objective over several days can be summarized in a single task. You do not have to detail each operation if the actions to be done are sufficiently clear to you.
You have to empty your Tasks periodically. To do that, use the menu Project → Project → Tasks. Assign a timebox and a context to each task. This operation should not take more than a few minutes because you are not dealing with the tasks themselves, just classifying them.
 Timebox for tasks to be done today
Then click on the button at the top right Plannify Timebox. This procedure lets you select the tasks for the day from those in the timebox for the week. This operation gives you an overview of the medium term tasks and objectives and makes you review them there at least once a day. It is then that you would decide to allocate a part of your time that day to certain tasks based on your priorities.
Since the tasks are sorted by priority, it is sufficient to take the first from the list, up to the number of hours in your day. That will only take a minute, because the selection is not taken from every task you know about in the future, but just from those selected for the current week.
Once the timebox has been completed you can start your daily work on the tasks. For each task you can start work on it, delegate it, close it, or cancel it.
At the end of the day you empty the timebox using the button at the top right Empty Timebox. All the tasks that have not been done are sent back to the weekly timebox to sit in amongst the tasks that will be planned next morning.
Do the same each week and each month using the same principles, but just using the appropriate timeboxes for those periods.
Some convincing results
After a few days of carefully practising this method, users have reported the following improvements:
- a reduction in the number of tasks and objectives that were forgotten,
- a reduction in stress because people felt more in control of their situation,
- a change of the priorities in the types of tasks carried out daily,
- more notice taken of the urgency and importance of tasks and objectives in the long-term organization of
time,
- better management of task delegation and the selection of which tasks were better to delegate,
Finally, it is important to note this system is totally integrated with Open ERP’s project management function. Staff can use the system or not depending on their own needs. The system is complementary to the project management function that handles team organization and company-wide planning.
|