Demand Management is about capturing all work proposals in one single place, taking these proposals through a multi-stage governance process, making decisions on which proposals to approve and tracking progress on their execution until the work is completed. A key component within Demand Management is the Workflow governance model we have now implemented within Microsoft Project Server 2010.
The "Proposals" feature in Microsoft Office Project Server 2007 helps capture demand in one place, but is not flexible enough and does not have a full-fledged governance workflow behind it. The "Builder" module in Project Portfolio Server 2007 is a flexible demand management paradigm, but does not have a familiar Project Server/Office SharePoint Server look and feel and also has some usability, scalability problems. The Demand management functionality in Microsoft Project Server 2010 is designed to be both flexible and usable.
In project portfolio management (PPM), a project lifecycle is a long-running process that spans various governance phases. Typical demand management phases are create, select, plan, and manage (customers can create their own).
The "Plan" phase is accomplished by the more familiar project management processes using Project Professional and Project Web Access. Workflow models the governance processes and provides a structured way for projects to proceed through the phases. Workflows, along with other key concepts, are captured and integrated within the demand management feature set, providing a rich and dynamic platform on which customers and partners can build custom solutions.
The figure below shows the four typical phases of demand management and how they fit together. Within each phase are stages such as propose idea and initial review. Each stage can have an associated project detail page (PDP) in Project Web Access (PWA). The entire collection of stages represents a single workflow that can be linked to an enterprise project template (EPT). More details about these concepts given below.
A governance workflow is all about creating a rich life cycle for any proposal/demand that comes into the system. It includes defining the various stages through which the project goes in its lifecycle (for example, Proposal Creation, Proposal Initial Approval, etc), determining what information is required or locked at what stage (for example, budget cost should be locked down after the project is approved), including any manual approval/notifications steps as necessary and adding any business logic to update other Line Of Business Systems (for example, update the SAP system when the proposal budget gets approved).
The Project Server workflow platform is built on the Windows SharePoint Services 2010 workflow platform, which in turn is based on the Windows Workflow Foundation. Workflow is a key component of demand management.
A Project Server workflow runs on a Project Web Access site and helps to manage a sequence of activities or alternate sets of activities related to project management such as Check Project Custom Field Value and Publish Project.
Project Server 2010 workflows use the Site workflow paradigm, which removes the restriction that a Windows SharePoint Services 2010 workflow can be started only on a list item. Project Server workflows are deployed to Project Web Access, and workflow instances can be run only as a project entity.
The figure below shows the high-level processes for workflow creation, administration, and use.
Note: Project Server workflows must be created in Microsoft Visual Studio 2010. Project Server workflows cannot be created from Microsoft SharePoint Designer 2010.
The administration of Project Server workflows is identical to managing any other Windows SharePoint Services 2010 workflow, thereby providing more consistency between Project Server and Windows SharePoint Services 2010 and reducing redundant work. Workflow instances are created when a project is created and are deleted when the project is deleted/completed/rejected.
Unlike in Windows SharePoint Services 2010, a user does not start a workflow instance from the administration page that lists all the Project Server workflows.
Enterprise Project Type
An enterprise project type (EPT) represents a wrapper that encapsulates phases, stages, a single workflow, and PDPs. Each EPT represents a single project type. Normally, project types are aligned with individual departments, for example, marketing projects, IT projects, HR projects, and so forth. Using project types helps to categorize projects within the same organization that have a similar project life cycle. For a user, the EPTs appear in a drop-down list of project types when the user clicks New Project in Project Web Access.
Phases represent a collection of stages grouped together to identify a common set of activities in the project life cycle. Examples of phases are project creation, project selection, and project management. Phases do not have any direct technical impact on the behavior of an EPT. That is, changing the order of phases does not affect how the system reacts. The primary purpose of demand management phases is to provide a smoother user experience where users have the option of organizing stages into logical groups.
A stage represents one step within a project lifecycle. A stage is composed of one or more project detail pages (PDPs) linked by common logic or theme. Stages at a user level appear as steps within a project. At each step, data must be entered, modified, reviewed, or processed.
At a technical level, each stage represents a step where data is manipulated before the workflow can move to the next step. For a single-stage workflow, very little programming is involved. The user enters all of the data in one PDP, and can then work on the project as she normally would. For a multi-stage workflow, each stage is separated by an activity (SetProjectStage) within a Visual Studio workflow diagram. The actual SetProjectStage activity acts as a marker between stages and sets default properties of the next stage. The activities that follow SetProjectStage outline the actions that must take place within the next stage.
Note The actual stage itself is not created within Visual Studio. The stage must first be created in Project Web Access. After the stage is created, you can link to that stage within Visual Studio.
A PDP represents a single Web Part Page in Project Web Access. PDPs can be used to display or collect information from the user. You can create PDPs in much the same way you create any Web Part Page in a SharePoint site, where you can add Web Parts that provide the experience you want. You can add individual Web Parts from the standard Web Part galleries to create custom Web Parts.
Project Server Web Parts and custom Web Parts used in demand management all contain custom fields. Web Parts can make calls to the PSI, query the reporting database, or integrate with external systems.
The figure below shows the general hierarchy of the parts of demand management in Project Server 2010.
Workflows are associated with the stages. From a programming standpoint, PDPs are not actually referenced within the workflow. The PDPs simply act as containers to hold or display data. The workflow can however, references custom fields in the Web Parts.