Skip to content

fchauvel/rpp

Repository files navigation

RPP — Rapid Project Plan

NPM Version NPM Monthly download rate Build Status Test Coverage Code Grade

RPP is a CLI tool to quickly generate project plans including Gantt charts. Project planning for developers in a way. We review its key features, but checkout the documentation for more details.

Requirements

RPP is a NodeJS application and you must have NodeJS up and running on your machine. RPP is tested on Node 10, so later versions should work.

Installation

$ npm install --global @fchauvel/rpp

Gantt Charts

To export the associated Gantt chart, use:

$ cd docs/samples/epic
$ rpp gantt -p workplan.yaml -o gantt.svg

This yields the following Gantt chart:

Sample Gantt Chart

Project Descriptions

Work Plan

RPP consumes a description of the project split into multiple files (YAML or JSON), one for the workplan, one for the teams, etc. See for instance docs/samples/epic/workplan.yaml. This file specifies the work plan (work packages, tasks, deliverables and milestones) of our sample EPIC project (see the workplan schema). Here is an excerpt:

project:
  name: EPIC
  breakdown:
    - name: Project Management
      breakdown:
        - name: Infrastructure for Communication
          start: 1
          duration: 48
          deliverables:
            - name: Infrastructure for Communication
              kind: Software
              due: 3
        - name: Financial Reporting
          start: 1
          duration: 48
          deliverables:
            - name: Intermediate Financial Report
              kind: Report
              due: 24
            - name: Final Financial Report
              kind: Report
              due: 48

Project Team

RPP also accepts a description of the team, that this, the persons assigned to the project together with their roles (see the team schema). Here is an excerpt of the EPIC team description.

team:
  name: EPIC
  members:
  - name: SINTEF
    members:
      - firstname: Franck
        lastname: Chauvel
        leads: [ WP1, T1.1, T1.2, T3.1, T4.4 ]
      - firstname: Brice
        lastname: Morin
        leads: [ WP3, T2.1, T3.3 ]
      - firstname: Ketil
        lastname: Stølen
        leads: [ T1.3 ]
  - name: UiO
    members:
      - firstname: Olaf
        lastname: Owe
        leads: [ WP4, T2.2, T4.1, T4.2, T4.3, T5.2]

You can pass the team to the rpp gantt command using --team|-t option, so that the Gantt chart indicates who's leading each task. For instance:

$ cd docs/samples/epic
$ rpp gantt -p workplan.yaml -t team.yaml -o gantt.svg

Sanity Checks

RPP can also run sanity checks on your project description to help spot inconsistencies. To do so, use the following command:

$ cd docs/samples/erroenous
$ rpp verify -p workplan.yaml
  1. Warning: 'EMPTY WORK PACKAGE' on 'WP 2'
     - Work package 'First Package' is empty.
     - Tip: Have we forgotten some tasks or work packages there?

  2. Warning: 'NO DELIVERABLE' on 'T 1'
     - Task 'First Tasks' has no deliverable
     - Tip: Do we miss some?

  3. Error: 'LATE MILESTONE' on 'MS 1'
     - Milestone 'First milestone' comes after project end.
     - Tip: Check the milestone date

2 warning(s), 1 error(s).

Here as well the -t|--team option allows us to include the team description.

RPP checks for the following:

  • Work plan consistency

    • Empty work package, that is, work packages that do not contain any tasks or work packages.

    • Single activity work packages, that is, work packages that contain a single task or work package.

    • Discontinuity in work packages, that is, activities in work packages that are neither overlapping nor contiguous in time. In other words, RPP search for work packages that are idle at some point.

    • Tasks without any deliberable.

    • Deliverable due outside the task period.

    • Milestones set outside the project period.

  • Teams consistency

    • Empty teams
    • Duplicate activity leader
    • Tasks without contributors
    • Activities without leader
    • Idle partners (without any role)