Mapping the PMBOK Standard as a Graph Database

Management Consultant, GestioDinamica EIRL
4 min read

The Interdependencies of the PMBOK
But during the intervening decades, project management practice evolved in interesting ways. For instance, the accuracy to defining what is a proper scope — or the fact that every scope is built as a structured set of deliverables and requirements — encouraged project management practitioners to increase the accuracy of their defined inputs and outputs. These definitions would then trickle down into other chains and flows throughout the whole project lifecycle. For example, a project management process called “Collect Requirements” has five input elements and two output elements. The output elements are “Requirements Traceability Matrix” and “Requirements Documentation.” But the element called “Requirements Traceability Matrix” is also an input for another project management process called “Scope Control,” and so on. In addition, the process “Collect Requirements” belongs to the Planning Process Group, whereas “Scope Control” belongs to the Monitoring and Control Process Group.Why the PMBOK Standard Is a Perfect Graph
So, as you can see below, there are clearly identifiable nodes and relationships when it comes to these project management dependencies. Project management best practices are also well fit for a graph database because processes and elements fit perfectly as properties. Here are a few examples: Processes-
- Name
- PMBOK Code
- Process Group: Initiation, Planning…
- Knowledge Area: For example Scope Management, Time Management…
-
- Name
- PMBOK Code (although it can be unified when the element is at the same time input for one process and output for another process)
Organizing the PMBOK Standard
Neo4j proved to be a brilliant opportunity to organize the PMBOK Standard as a graph database. In November 2014, I submitted a paper to the PMI 5th International Congress (South Cone Tour) in Santa Cruz, Bolivia. Despite most project management practitioners not having a background in graph databases, the concept of organizing the PMBOK Standard as a graph was well-received by all in attendance. Loading the PMBOK Standard data in Neo4j, I was able to complete queries like these: Query: I want to know how the circuits are only for Scope Management Processes. Cypher:MATCH (p:Process {parea: ‘Scope’}), (e:Element), (p)-[r]-(e) RETURN rQuery: I would like to know what elements come out from planning processes and feed monitoring processes. Cypher:
MATCH (p:Process {pgroup: ‘Planning’}), (q:Process {pgroup: ‘Monitoring’}), (e:Element), (p)-[r]->(e)-[s]->(q) RETURN r,sQuery: I want to know the quantity of inputs for time management processes, making a list beginning with the process with more inputs. Cypher:
MATCH (p:Process {parea: ‘Time’}), (e:Element), (e)-[r]->(p) RETURN p.name, count(r) ORDER BY count(r) DESCThe image for the third query is shown below: In this graph above, blue nodes are elements and yellow nodes are processes. Green arrows represent that the element is an output and red arrows that it is an output. Once we get used to the sequence between green and red, we can easily understand how the project management concepts flow from process to process, being able to explain how the Standard describes the ideal functioning of the project.