Wednesday, January 2, 2013

Are You Looking For A Relational View of the PMBOK?

Altova MetaTeam is project management software for high performance team collaboration. 

MetaTeam is first and foremost simple and friendly.  You can see that for yourself in the examples on the MetaTeam blog.

But MetaTeam is also designed to support standards and methodologies, as well as to work alongside advanced Critical Path scheduling tools like Microsoft Project or ProjectLibre.

Because of this, we encourage our team to be certified as Project Management Professionals (PMP).

We have a tool for our own PMP exam prep that may be helpful for others.  It is a SQL database mapping the project management standard into a relational model.

Read on for why we created it, using our DatabaseSpy product, and to download it for your own use. 

The PMP credential is based on the Project Management Institute's standard Project Management Body of Knowledge (PMBOK). The print form is an overview called A Guide to the Project Management Body of Knowledge.  

The PMBOK is the leading project management standard worldwide — and MetaTeam dovetails with it by design. 

Preparing for the PMP exam is a non-trivial exercise in learning the details, processes and standard lingo of project management.

Now, why would someone want a relational database of the standard project management information? 

I'm glad you asked!

The reason is that the body of knowledge contains a very large amount of information that is linked in some very relationally-oriented ways.

And yet the relationships are not easily explored in paper-form or PDF.    

For a sense of the challenge, consider these numbers.  PMI's PMBOK Guide has: 
  • Roughly 500 pages
  • 42 processes
  • Five process groups
  • Nine knowledge areas, also structuring the 42 processes
  • Hundreds of tools and techniques tied to specific processes
  • Roughly 100 deliverables and assets
  • Hundreds of inputs and outputs links, and
  • A large glossary of must-know terms

And, of course there are many items only specified by name in the Guide, or just hinted at, with the details to be discovered by the reader elsewhere. 

How to deal with all that? 

For us it the next step was easy: break out DatabaseSpy and create a relational database we could use to make sense of all that information, and more.  

Yes, we are geeks here!  :)

Creating and populating a database using DatabaseSpy is no big thing, of course.  

But since I love DatabaseSpy, I’m going to give a quick overview of the process.  

The link to download the schema and data is at the bottom of this post.

The first task was to connect to a local MySql server.  The Connection Wizard made that a snap. 

After connecting we quickly created a new database in the SQL editor by clicking the New menu and select SQL Editor, then executing a database create statement.  

The create statement is in the SQL file you can download below.  We called the database “pmbok”. 

With the database made, we started to design by clicking the New menu and selecting Design Editor.  First thing to do is to switch to the “pmbok” database by changing the root object in the properties window.

For our database we wanted to focus on the PMBOK’s processes’ inputs, outputs, and tools and techniques.  The goal was to be able to quickly answer questions like:

  • What inputs are common to “Estimate Activity Resources” and “Estimate Costs”?
  • Where are “Performance Reports" created and used?
  • What processes rely on “Work performance information” vs “Work performance measurements”?

To do this we started with the basics.

First we needed a PROCESS table, along with PROCESS_GROUP and KNOWLEDGE_AREA tables.

You can execute the script below, but if you are following along, right click on the design and select create new table called “process”. 

The first column is an ID.  We made primary tables have varchar(45) IDs to hold meaningful keys based on the PMBOK names of the items.  For the dependent tables and we either used that, or compound meaningful keys or auto-increments depending on the data.

We also gave most every table a NAME column.  Right click on the new table to begin adding the columns. 

The rest of the process table looks like this screenshot.

The “pmbok” schema is small, just 11 tables.  It is definitely a simple model—which makes it more practical for studying for the PMP.

The IDs tying the tables together are the name of the process, process group, knowledge area, etc. used in the PMBOK, with “_” for spaces and very few abbreviations.  Take a second to have a look at the data before continuing.

The shortcut to finishing this design is to execute the database script in a SQL window and then just drag the tables out of the Online Browser into the design. 

Executing the script will also populate the tables with process, knowledge area, inputs, outputs and techniques, deliverables, and other data.

With all that in your database we can now go back to the SQL window and create queries to answer questions like the examples we gave above.

Our first query looked for the common elements to the Estimate Activity Resources and Estimate Costs processes.  We can answer that with:

select * 
from process_input_or_output
where process_input_or_output='input'
and process_id in 
    ('estimate_activity_resources', 'estimate_costs')

Next we wanted to know where Performance Reports played a role:

    select * from process_input_or_output

    where deliverable_or_asset_id='performance_reports'


And for the third question about the difference between the two work performance items we can use:

select * from process_input_or_output a
where a.deliverable_or_asset_id='work_performance_info'
select * from process_input_or_output b
where b.deliverable_or_asset_id='work_performance_measurements'

As you can see, it is easy to browse, list and make connections between concepts using this database.  

We find it very useful for study and in our work with MetaTeam.  I hope you will as well!  

Here is the schema and data download.

Please let me know if it makes your own PMP studies a bit easier.

A quick corporate word about this database script and its contents.  Please feel free to use it as an overview of standard project management thinking under a share-alike license for non-commercial purposes.  It is offered as-is with no warrantee or fitness for any purpose.  It does not map to A Guide to the Project Management Body of Knowledge precisely and includes information and assumptions not found in PMI's summary of the standard committee's work.  Undoubtedly the data contains errors and omissions that you must handle on your own.  And please remember that it is just an example and not intended as a substitute for anything or for any specific purpose.  If you have questions about the schema, data or usage please contact us.

No comments: