Page 106 -
P. 106
6 - PROJECT TIME MANAGEMENT
A useful technique for reducing project risk is to define joint milestones with interdependent projects such as
hardware procurement, installation and configuration of the development and installation platforms, and related
software projects. This type of program/portfolio management is often critical to the successful delivery of software
products, especially on a constrained schedule.
6.3 Sequence Activities
®
According to Section 6.3 of the PMBOK Guide, Sequence Activities is the process of identifying and documenting
relationships among the project activities. Sequencing activities for software projects differs somewhat from those
®
in Section 6.3 of the PMBOK Guide because the sequencing methods used may be based on value-added, technical
risk, software architecture, and specific expertise availability, as well as other technical and staffing dependencies.
Dependencies on database structure, infrastructure needs, and other architecture and design concerns exist in
many software projects. However, for a new application domain, or for a large, complex software project in a new
or existing domain, there is often a need to establish and refine the operational concepts, to build prototypes, and/or
to define an architecture or infrastructure before specifying the functional requirements for the product. How much
time is needed for these activities and how concurrently they can be accomplished depends on the familiarity, size,
and complexity of the software product. Sequencing of project activities also depends on the risk profiles, and, in
particular, on the likelihood of changes to the product requirements during the project.
Software architecture has a significant impact on sequencing of project activities in several areas. First, the time
needed to development a software architecture is not easily estimated, and therefore, scheduling of any software
development activities directly related to (some part of) the architectural design may need to be delayed until (that part
of) the architecture is completed. In some instances, only some of the architectural decisions remain to be made, so
early investment in activities that prove the effectiveness of an architectural solution or that build an initial architectural
structure may be effective. These activities are sometimes called building an architectural backbone or skeleton.
The intent of these activities is to verify that the key architectural decisions are feasible and that solutions can be
developed for the software requirements or user features. For example, exception handling, data assurance, and security
patterns need to be established early for consistency across the software components. Second, software architecture
provides the ability to define pieces of the product that can be independently developed and tested, perhaps with
addition of mockups, stubs, and dummy software that will allow testing and demonstration of incomplete software.
Architectural design needs to precede software construction so that methods such as test-driven development have
a framework to build on. This is of particular significance in larger software systems that are required to interact with
other software systems that are external to, and beyond the control of the software project manager.
In a similar way, nonfunctional requirements may impact the sequencing of activities by requiring time to
implement crosscutting strategies (such as error-handling and failure modes). The need for certification of software
components due to regulatory, safety, or security requirements may also affect sequencing of work activities
because of the time required for certification activities. It is usually more cost-effective to bundle scheduled
changes to certified code so that recertification activities are not repeated unnecessarily.
96 ©2013 Project Management Institute. Software Extension to the PMBOK Guide Fifth Edition
®