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.
Remember that you will have less options in Simplified view than in Extended view.
In OpenERP, a project is represented by a set of tasks to be completed. Projects have a tree structure that can be divided into phases and sub-phases. This structure is very useful to organise your work.
Whereas analytic accounts look at the past activities of the company, Project Management's role is to plan the future. Even though there is a close link between the two (such as where a project has been planned and then completed through OpenERP) they are still two different concepts, each making its own contribution to a flexible workflow.
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.
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,
In Progress: you can start working on the task, hence the task is in progress,
Done: 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.
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.
Every user should create a link in their own shortcuts to the Tasks menu, because they will have to consult this menu several times a day.
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.
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,
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 an example, the new task SO008:Create SRS generated from sales order SO0008 is shown in following figure.
You need to carefully configure the analytic account related to this project. If you use the Billing tab of the project to do this, the analytic account linked to the project will automatically get the related settings.
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.
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.
OpenERP implements the agile methodology Scrum for IT development projects in the project_scrum module.
Scrum supplements the task system with the following concepts: long-term planning, sprints, iterative development, progress meetings, burndown chart, and product backlog.
Look at the site: http://controlchaos.com for more information on the Scrum methodology.
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.
OpenERP can give you a calendar view of the different tasks in both the web client and the GTK client. This is all based on the deadline data and displays only tasks that have a deadline. You can then delete, create or modify tasks using drag and drop (only in web).
Calendar View of the System Tasks
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.
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.