Remarks on PRINCE2’s „Product-Based Planning“


What is Product-Based Planning?

Product-Based Planning is a longtime hallmark of PRINCE2. It consists of four steps:

  1. Write a Project Product Description, which is a high-level description of customer expectations.
  2. Write a Product Breakdown Structure (PBS), which is a logical hierarchy of the project’s deliverables.
  3. Write a Product Description (PD), which is a concise but complete verbal definition of what has to be delivered by the project.
  4. Create a Product Flow Diagram (PFD), which identifies the order of precedence of products and their components or constituents.

BTW, the PMI PMBoK knows something called a “Work Breakdown Structure” which comes quite close to the PBS idea, in fact, there should be a 1:1 relation between the details, i.e., for every item in the PBS there should be (at least) one task to deliver it.

How do I implement Product-Based Planning?

I implement PBP by implementing the four steps from above, where step 1 and step 3 effectively are boiling down to writing a word document. I know you can do it!

How to write a Project Product Description?

Well, write a word document. Some templates can be found on the web.

How do I do a Product Breakdown Structure?

By learning from examples. Well, here comes the example:  We want to move a shed from place A to place B. What would be a good PBS?

Before we start we should define different node shapes for different classes of products (or deliverables):

  • Logical groups are shown as parallelograms.
  • External products (delivered not by the project but consumed by it) are shown as ellipsoids.
  • Management products are not filled, all other products are filled (with non-white).

We see that our total outcome consists of three logical products groups (the parallelograms). For the sake of simplicity, we divide the complete hut into just two entities: the shed shell and its content. And we omit the management products (plans, reports, documentation, etc.)

Moving the shed is a bit more complex, since we foresee the need of a permission to build the hut at the new location, and we do not have a truck, thus an external mover will be involved. These are thus marked with an ellipse.

How on earth how did I create it? Well, I started my favorite text editor (sublime) and entered this:

digraph pbs { 
    splines=ortho
    rankdir="LR"
    node [margin=0.1 fontcolor=black fontsize=12 
      shape=rect style=filled           
      arrowhead="vee" fontname="Arial" fixedsize=true 
      width=2.5 shape="rect" 
      fillcolor=deepskyblue1  ]
    edge[arrowhead="vee"]  
      
    p [label="move shed"]
    o [label="old shed removal" shape="parallelogram"]
      o1 [label="disassembled shed"]
      o2 [label="packed content"]
    m [label="move" shape="parallelogram"]
      m1 [label="loaded shed"]
      m2 [label="building permission" shape="ellipse"]
      m3 [label="moved shed" shape="ellipse"]
      m4 [label="unloaded shed"]
    n [label="new shed build" shape="parallelogram"]
      n1 [label="new home, assembled shed"]
      n2 [label="new home, goods in place"]
    p -> {o m n} 
    o -> {o1 o2}
    n -> {n1 n2}
    m -> {m1 m2 m3 m4}
}

…and pasted this into this: https://dreampuf.github.io/GraphvizOnline/ (or http://magjac.com/graphviz-visual-editor/)

In fact, the data seen above is written in a graph language called DOT (https://graphviz.org) and with this or a command line tool you can generate wonderful scalable vector graphics (SVGs), which can be viewed in any modern browser or may be imported into word.

How to write a Product Description?

Well, write a word document with a table with two columns: “product name” and “product description”, and you should be fine.

How could I write a Product Flow Diagram?

Easy:

digraph pfd { 
    splines=ortho
    rankdir="TD"
    node [margin=0.1 fontcolor=black fontsize=12 
      shape=rect style=filled           
      arrowhead="vee" fontname="Arial" fixedsize=true 
      width=2.5 shape="rect" 
      fillcolor=deepskyblue1] 
    edge[arrowhead="vee"]  
     
    p [label="move shed"] 
    o [label="old shed removal" shape="parallelogram"]
    o1 [label="disassembled shed"]
    o2 [label="packed content"]
    m [label="move" shape="parallelogram"]
    m1 [label="loaded shed"]
    m2 [label="building permission" shape="ellipse"]
    m3 [label="moved shed" shape="ellipse"]
    m4 [label="unloaded shed"]
    n [label="new shed build" shape="parallelogram"]
    n1 [label="new home, assembled shed"]
    n2 [label="new home, goods in place"]

    o -> m -> n -> p
    o1 -> m3 -> m4
    o2 -> m3
    o1 -> o2 -> o 
    m1 -> m3 -> m4 -> m
    m2 -> m
    m2 -> n1 -> n2 -> n -> p
}

What should you learn to understand the DOT language? Here is my concise list:

  1. Start with PBS digraph <NAME> {}. This will generate an empty directed graph.
  2. Insert your products into the braces, one per line. The format is 
      <PRODUCT NAME> [label = “<TEXT”]. In graph theory these products are called nodes.
  3. Insert tree relationships, e. g., product-> component 1, one per line. In graph theory these relationships are called edges. Since we have a directed graph, these edges have start and an end, marked by an arrow or the like.
  4. If you like to manipulate certain attributes, you either change them in the nodes, or you insert a node item to change the default behavior of all nodes. The same holds true for edges.
  5. RTFM.