Start with ProjectForge

ProjectForge® 2012

Version: 4.1.0
Date: 2012-05-03
Project: ProjectForge® 2012
URL: www.projectforge.org
Author: Kai Reinhard
mailtok.reinhard@me.com

downloadPrint-friendly version: ProjectForge.pdf

Contents

1Introduction
2Quick start, create your first project step-by-step: ACME web portal
2.1 Set-up of your team members
2.2 Set-up your company: JavaGurus Inc.
2.2.1 Create your company's top level task
2.2.2 Create a group for all employees
2.3 Create project member group
2.4 Create your project root task, e. g. ACME Web portal
2.5 Assign the required team access
2.6 Finished
3Structure of your projects
3.1 The idea of task trees and hierarchy
3.2 Best practice: recommended task structure for your projects
4Time sheet booking
4.1 Adding time sheets
4.2 Consumption of work packages
5Gantt charts
5.1 Export
6Adding a project
7Cost-unit accounting
7.1 Setting up cost objectives, requirements (optional)
8Best practices
8.1 Making your life easier: with Favorites
8.2 Sharing addresses and books
8.3 Administrators, financial administrative user, organisational staff members and controlling users
8.3.1 System administrators
8.3.2 Financial administrative users
8.3.3 Project managers
8.3.4 Controllers

List of figures

1Recommended access management for team members.
2Recommended task structure of a project.
3Gantt charts.

1 Introduction

ProjectForge® is designed to improve the efficiency of projects and project teams from single-person-projects up to large-sized projects.
This document contains techniques and concepts for your successful project management, supported by ProjectForge®, the project management portal.

Hint

You can use the action links while reading this tutorial and create the objects of this tutorial by simply clicking on those action links (in the html version of this tutorial). You can change the tutorial data (user names etc.) like you want. The tutorial only needs the reference names placed in the description fields.

2 Quick start, create your first project step-by-step: ACME web portal

Hint

After the creation of the users you can use the wizard of the task tree page to generate groups and access rights very quickly. Follow this tutorial to understand the things behind the wizard...

2.1 Set-up of your team members

Login as admin user and create one account per project member (administration sub-menu users). In this example we start with three team members, one project manager and two team members:
Username Description (team role) E-mail Assigned groups Action link
linda Project manager l.evans@javagurus.com PF_ProjectManager {actionLink|createUser|linda}create{/actionLink}
dave Developer d.jones@javagurus.com - {actionLink|createUser|dave}create{/actionLink}
betty Developer b.brown@javagurus.com - {actionLink|createUser|betty}create{/actionLink}

2.2 Set-up your company: JavaGurus Inc.

2.2.1 Create your company's top level task

Login as admin user and create a top level task with the name of your company (JavaGurus Inc.). Click on the menu item "Tasks" and on the button "add". Select the ProjectForge®'s root task as parent. Create this task (and click the search button in the tree view for refreshing your task tree).
Task name Parent task Action link
JavaGurus Inc. ProjectForge®'s root task {actionLink|createTask|JavaGurus}create{/actionLink}

2.2.2 Create a group for all employees

Add a user group (meu item "Administration" -> "Groups") named e. g. "JavaGurus employees".
Group name Assigned members Action link
JavaGurus employees Linda, Dave, Betty. {actionLink|createGroup|JavaGurusEmployees}create{/actionLink}

2.3 Create project member group

Go to administration -> groups and create a new group:
Group name Assigned members Action link
ACME web portal team Linda, Dave, Betty. {actionLink|createGroup|ACME-WebPortal-Team}create{/actionLink}

Assign the members while selecting all members and clicking the left-arrow-icon. You can select multiple entries by using the keys [Shift] or [Ctrl] for assigning them at once.

2.4 Create your project root task, e. g. ACME Web portal

Click on the menu entry 'tasks' and create a task named as your project:
Task name Parent task Action link
ACME web portal Root (select parent task by clicking on the hierarchy icon and simply select Root). {actionLink|createTask|ACME-WebPortal}create{/actionLink}

Hint

You can change the hierarchy and the names of your tasks (e. g. for organizing your projects per customer) later, so start with your project as top level task. Also user names, group names etc. can be changed any time you want without loosing any references in the system.

2.5 Assign the required team access

ProjectForge® has an very detailed access management, so you can configure which user has which access to the system. Enable your ACME web portal team for working with the project. Some access rights depends on the tasks, so define the task access by choosing the menu entry 'access management' and clicking the button 'create':
Task Group Recursive Description Access rights Action link
JavaGurus Inc. JavaGurus employees yes The employee's main task for books, addresses, for time sheets not assigned to projects such as ill-ness, holiday, research and development etc. Choose template 'employee'. {actionLink|createAccess|JavaGurusEmployees}create{/actionLink}
ACME web portal ACME web portal team yes The top-level task for the ACME web portal project. Choose template 'employee'. {actionLink|createAccess|ACME-WebPortal}create{/actionLink}
Figure 1: Recommended access management for team members.

Hint

If they're are any labels or text fields with italic letters (such as the label 'recursive') you'll get a tool-tip explaning the component when you place your mouse over such elements.

2.6 Finished

No your project team members are able to book time sheets on your ACME web portal project. They're also able to give their project a sub structure, explaining in the next chapter.

3 Structure of your projects

3.1 The idea of task trees and hierarchy

ProjectForge® supports a hierarchy of your tasks without any limitations concerning the depth of your tree or the number of your tasks. Task is a general term which can represent customers, projects, project phases, work packages, issues and further more.

3.2 Best practice: recommended task structure for your projects

It's recommended to organize your project as followed, see fig. 2 for an example:
Level Type Description
Top level Customer e. g. ACME. This is useful for grouping a lot of projects per customers. You can start without this level and can insert it later, if needed.
Level two Project name Simply the name of your project, e. g. ACME web portal
Level three Release Your project will have hopefully several releases, so you can group your activities per release. In non-IT projects the release can be something such as e. g. year for annual conferences etc.
Level four Phases Your project consists of several phases, e. g. akquisition, specification, build, maintenance.
Level five Work packages For large projects (more than 10 md) it's useful to break down your packages.
Level six Issues For very large projects it's useful to break down your packages in issues. If you're using the issue tracking system JIRA it's recommended to link the JIRA-Issues to your tasks and/or time sheets..

Figure 2: Recommended task structure of a project.
Please remember: You can change your hierarchy whenever you want, so you can start for example with your project as a top level task and insert the customer later, if you'll have more projects and customers.

Hint

You can add sub tasks by selecting your the parent task and pressing the button 'create sub task'. A more convenient method to organize the task structure of your project is by using the menu entry Gantt.

4 Time sheet booking

4.1 Adding time sheets

All team members should book every activity on the project as time sheets. They can book their time sheets in a very convenient way. The easiest way is to use the calendar, click on a day or the start-/stop-times of an existing time-sheet to book new time sheets.
Every time sheet needs at least a start- and stop time, the task on which the user has worked on. Optional the user can enter a JIRA-issue-id for having a direct link to your JIRA-system.

Hint

Please choose yourself as the user in the calendar view by simply clicking on the smiley at the right top, for displaying all your time sheets you have already booked.

4.2 Consumption of work packages

For getting an overview every time you work with ProjectForge® it's recommended to configure your estimated time budgets to every task. If the user books his time sheet on a task he can instantly see the consumption of this task.
In the task tree you can see all consumptions of every displayed task.
There are two ways to configure budgets. The easiest way is to enter the budget in hours on every task. If a task has sub tasks with given maximum hours and the task has itself no budget setting, the budget for this parent task is automatically calculated (sum of all sub tasks budgets). The other way is to define your budgets by assigning orders (described not here). You can mix both approaches.

5 Gantt charts

Planning a project and controlling a project to keep the project on track, Gantt charts are a very often used technique. ProjectForge® supports Gantt charts as descriped in this chapter.
You can edit all Gantt parameters such as start/stop dates, duration, predecessors etc. by editing the task in the task tree. But it's more convenient to edit the parameters of the task in the Gantt tree directly.
You'll get the Gantt functionality by choosing the menu entry 'Gantt'. Add a new chart and choose your task (project, release of project phase) you like to plan. In this example we choose the project's main task 'ACME web portal'.
Figure 3: Gantt charts. With the Gantt chart view you can easily create and modify Gantt charts. This view is also recommended, if you want to create your task structure of your project.

Rules

5.1 Export

You're able to export Gantt diagrams to most common graphic formats (PNG, PDF etc.) and to MS Project. The MS Project export considers the holidays configured in ProjectForge®'s config.xml.

6 Adding a project

tbd. (better configuration of time sheet booking: inherit etc.)

7 Cost-unit accounting

Project managers and especially controller like reports, reports and reports. If you like to answer one of the following questions regarding your project(s), you should use the cost features of ProjectForge® as introduced below.

7.1 Setting up cost objectives, requirements (optional)

Following steps are required to enable your ProjectForge installation for having cost objectives:
  1. Activating cost
    Set the flag "is cost activated" to true (see configuration menu).
  2. Access rights and required group of the financial administrative user
    Please ensure that the financial adminstrative user is assigned to the group PF_FINANCE and the right "cost *" is set to read/write, same for projects.
  3. Define cost2 types
    You've to define cost2 types which are valid for all tasks and projects. Later you'll be able to do cost calculation based on those cost type, e. g. how much profit do you have with "maintenance" for all projects of customer ACME. Here is an example list to get an idea (feel free to find your own numbers and descriptions, you can extend this list any time later): Please note: invoiced is only a flag which you can use later in your reporting scripts.
  4. Define customers and projects
    For project/customer specific cost objectives you'll need to define customers first and then the customer's projects. It's a best practice to have a misc project for every customer to assign time-sheets and cost which aren't specific to a project or for small projects where you don't need a separate cost calculation for.
  5. Define cost2
    You can define cost2 entries (independant from projects) or project specific cost2 entries by selecting the project first.
  6. Assign projects or cost2 to tasks
    You can assign projects to tasks in your task tree (in the project edit page) or by adding non-project-specific cost2 entries directly to a task. For project-specific cost-assignments you can use a black/white-list to reduce the available cost2 objects for a sub task / or sub task tree. Please see the task edit page for a better understanding.

8 Best practices

8.1 Making your life easier: with Favorites

As a project manager you need often to select users, so have a look at the select box right to each user selection panel. Select a user and then choose 'create' for generating a favorite entry for users.
It's also possible to create favorites for tasks, time sheets (templates) etc.
You can manage your favorites by choosing the menu entry 'my preferences'.

8.2 Sharing addresses and books

Go to "Administration" -> "Settings" and configure the top level task of your company (JavaGurus Inc.) as default value for addresses and books. Afterwards all your employees are able to work with your library and company address book.

8.3 Administrators, financial administrative user, organisational staff members and controlling users

In larger companies it's use-full to split this role._

8.3.1 System administrators

You should have system administrators who're responsible to manage users, groups and access rights to tasks and functionalities.

8.3.2 Financial administrative users

You should have users of your financial administrative staff who're responsible to manage employees (and salaries), customers, order book, cost objectives, projects as well as invoices (outbound and inbound). You can specify which rights each user should have. The user's of the group "PF_Organization" (if exist) have reduced rights at default.

8.3.3 Project managers

Project managers are able to plan human resources and to organize the order book for the projects they're members of the project manager group (set in project details).

8.3.4 Controllers

Members of the group "PF_Controlling" have read-only access to most areas of ProjectForge at default. The also have the possibility to use, create and modify scripts. The scripts are run with read-only access. The rights of the user who runs a script is checked for every object read of the data-base. If the user has no read-access to one object, the object is removed from the result-set. (In future releases scripting will be accessible by all user with the "scripting"-right). ProjectForge ensures, that a scripting user will always have access to only those objects he has the read-access for. But you should only give this access to well-known users, because a fraud has the possibility to get write access via e. g. Java reflection API.