Book Review

Software Extension to the PMBOK® Guide Fifth Edition

Reviewed by Jim Ure, Edited by Jean Richardson

SW Extension book cover Authors Project Management Institute together with the IEEE Computer Society
Core Committee: 13 members
Subject Matter Expert Reviewers: 26 invited contributors  
Publication PMI, 2013; Soft cover, 247 pages; ISBN: 9781628250138; List price: $52.95, PMI Member price: $42.35.
Purpose This book supplements the PMBOK® Guide with more specific and precise methods for managing software projects. It is part of the PMI Library of Global Standards.
Audience This is a valuable reference for project and functional managers engaged in creating and maintaining software. It is intended for anyone involved with software projects.
Availability The print version is available for sale in the PMI Marketplace
The electronic version is free for PMI members. Information and access to a personalized PDF is available through the PMI Library of Global Standards.

Introduction–A reference book long overdue

In the fall of 2013, PMI partnered with the IEEE Computer Society to publish the Software Extension to the PMBOK® Guide Fifth Edition. Given the complexity and challenges of software development today, this addition to PMI’s Library of Global Standards is perhaps long overdue, but it is still a welcome and significant event. Project methodology has long been part of software development but the PMBOK® Guide editions lack detail and specificity to address the unique context and needs of software projects.

Furthermore, in recent years, as agile frameworks and practices have gained wider acceptance and are increasingly the way software is typically done, there has been uncertainty about how agile fits within the process-driven structure of the PMBOK® Guide. For better or worse, a view emerged among some that associated the PMBOK with “waterfall” and considered anything “agile” as being beyond the scope of our formal body of knowledge.

Fortunately, this false dichotomy and misleading characterization of the PMBOK is on the wane and the Software Extension does a good job of establishing how the PMI structure accommodates a variety of specific approaches. It includes detail on structured practices common in predictive life cycles together with techniques common in adaptive lifecycles. It also includes the rigor of software quality management associated with IEEE standards and fits all of this within the broader PMBOK process framework.

This volume is a significant accomplishment; it gives everyone associated with software projects a common way to understand the full range of practices and techniques in use today.

Organization–Following the PMBOK

The Software Extension uses the same section and subsection organization found in the PMBOK® Guide. There are sections for Project Life Cycle, Project Management Processes, Project Integration, Project Scope, Time, Cost, Quality, Human Resources, Communications, Risk, Procurement, and Stakeholder Relations. Each Section has an introduction which outlines how it relates to the corresponding section of the PMBOK® Guide. It is thorough - every subsection of the PMBOK is referenced and for areas where the Software Extension has nothing unique to add, a citation is given - "See Section X.x.x.x of the PMBOK® Guide."

The Software Extension has substantial new material with detailed and specific explanations on how the broader PMBOK processes and techniques apply to software development. Some of material will be second nature to most senior software development or IT project managers, making it feel unnecessarily long. Those in earlier career stages, however, may benefit from this detail. In any case, there are extensive contributions that make the Software Extension invaluable. Examples include the remarks on why software project management is particularly challenging (section 1.3.1), how software projects differ from other types of projects, and the role of operational issues with software (1.5).  Other notable new contributions include the sections on WBS (5.4), project team composition (2.3), cost management and estimating (7), project quality (8), developing the project team (9.3), risk responses (11.5), and stakeholder management (13.2).

Project Life Cycles–The Continuum of Predictive <-> Adaptive

One of the most important contributions of the whole volume is the discussion of Project Life Cycles (section 2). Somewhat surprisingly, the Software Extension does not attempt to define “agile” or “agile methods” and does not even mention the term “waterfall.” Rather, it describes different project life cycles as being a continuum of varying degrees of predictive and adaptive approaches. Adaptive is a broader, more general term than agile; using it here allows us to reference practices commonly associated with agile without having to be limited to associations with any specific agile terminology. Predictive and adaptive life cycles are not mutually exclusive, but there are many distinct differences.

Software project life cycles are also described as “complex and multidimensional” with scope areas beyond the delivery of completed software. Consequently, software project managers need to be aware of the full range of life cycle options and apply practices appropriate to different phases of each project.  This is important, because it underscores the fact that a single project need not be constrained to a single life cycle and may utilize different practices for different stages of execution.

Understanding this continuum of predictive <-> adaptive life cycles is fundamental to the Software Extension. It is referenced throughout the volume and each section clarifies the concepts and practices in light of this fundamental concept.

Figure

Adaptive life cycle tools

The Software Extension is a rich source of material on practices utilized in an adaptive life cycle or project phase. These concepts are presented and discussed in the context of their PMBOK process. For example, the section on Scope Management (section 5) covers incremental feature set planning, rolling wave planning, continuous validation, and the role of the customer in determining the scope of features  to be delivered in each development cycle. In a similar way the use of backlogs, timeboxing, on-demand scheduling, and cumulative flow diagrams are discussed in Project Time Management (section 6); estimating with story points and team velocity are covered in Project Cost Management (section 7); pair programming, test-driven development, colocation, and team trust are part of Project Human Resource Management (section 9) and information radiators, storyboards, and reprioritized backlogs are part of Project Communications (section 10).

Predictive life cycle practices

There is an equally rich set of tools appropriate for projects or project phases governed by predictive life cycle practices. Section 2 has a good summary which states that “predictive life cycles are most successful for software projects that have well-defined requirements, a familiar problem domain, stable technology, and a familiar customer.” These attributes support the analysis of scope, time, and cost early in a project with techniques to manage the execution of project phases against the initial baseline. Additionally, in predictive life cycles, more effort is typically given to upfront creation of project plans, including consideration of configuration management, quality assurance, controlling cost, and more formal risk management techniques.

Given the importance of managing schedule and cost in a predictive project, techniques for detailed estimation are particularly important. Estimating is covered in both Time (Section 6) and Cost Management (Section 7). Practices include bottom-up estimating, three-point estimation, reserve analysis, parametric estimating, and projecting the cost of quality.

Adaptive and Predictive Together

The Software Extension is organized so that adaptive and predictive techniques are continually discussed side by side. This way of presenting material reinforces the view that predictive and adaptive methods can work together. Material on Project Quality Management (section 8) demonstrates this. The role of SQA (Software Quality Assurance) and SQC (Software Quality Control) is contextualized for both adaptive and predictive approaches, but it is also embraced as a common team value for all software projects.

“Planning for SQA and SQC is more than designating a small group of auditors and testers who are budgeted proportionately to the developer team and scheduled to pick out defects at the end of a project. Since it is less expensive to ‘build a little, test a little’ . . . , SQA and SQC need to be performed by everyone on the team, through continuing peer reviews, walkthroughs, inspections, automated regression tests, and analyses. …
Adaptive software project life cycles that rely on frequent iterations to produce working, tested, and deliverable software are well suited for planning an integrated approach to SQA and SQC. For predictive software project life cycles that consist of distinct development phases, SQA and SQC are planned as distinct processes.” (pg 144)

Conclusions and Commentary

The Software Extension is a strong contribution to the project management discipline. It is comprehensive, well written, detailed, and covers the full spectrum of project approaches that apply to developing, enhancing and maintaining software.

One weakness of the PMI framework is that topics often have multiple presentations within a given standards document. Having estimating techniques covered in both Time Management and Cost Management is necessary from a process perspective but it may also be confusing to a reader simply looking for guidance on the topic.

It is also uncertain if this volume will gain the widespread acceptance and use it fully deserves. Given its length, complexity and the need to refer back to the PMBOK® Guide, it is unclear if the agile community will embrace this book. It also doesn’t have the kind of focus that non-PMP Scrum Masters will find useful. Maybe that doesn’t matter and we can’t expect such a book to address all audiences. Nonetheless, this is one of the most important titles PMI has recently produced. It fills a gap, it provides solid content for software projects, and functions as a good reference book. The Software Extension to the PMBOK® Guide Fifth Edition gives us a solid foundation for understanding predictive and adaptive project life cycles. Everyone associated with software should follow this lead.

The collaboration between PMI and IEEE is also important to note and lends credibility to this volume. The contributions from IEEE are valuable although somewhat limited. By contrast, the contributions on adaptive practices from the PMI Core Committee are quite substantial and manifest in every chapter. Despite this imbalance, the core group of authors has done an exceptional job of assembling current and relevant project practices in software development in a comprehensive and relevant fashion.

 

About the Reviewers

James Ure, PhD, PMP, is a seasoned project manager and IT leader with over 15 years of experience managing a variety of software projects. He is the Assistant Newsletter Director for PMI Portland Chapter, and started the Chapter’s Book Review Program.

Jean Richardson is an agile coach and project management professional with more than 20 years of experience.  You can read her blog on leadership, agile, and project management at http://azuregate.net/blog-archive/