This wiki is locked. Future workgroup activity and specification development must take place at our new wiki. For more information, see this blog post about the new governance model and this post about changes to the website.

Software Project Management

Main Articles

Subtopics

Introduction

The goal of this set of topics is to define REST services that enable software project management tools to collaborate accross the development lifecycle. The scope of this topic includes the following disciplines:

  • Performance Management
  • Project Management
  • Project Portfolio Management

Performance Management is the discipline of identifying key performance indicators (KPI) for an organization and implementing processes for collecting, analysing, and using them to improve performance. For software projects, metrics such as quality and time-to-market are typical KPIs. These metrics might be automatically collected from project management, change management, quality management, and other tools, stored in a data warehouse, and analyzed using business intelligence techniques.

Project Management is the discipline of initiating, planning, executing, monitoring, controlling, and closing projects. Here we use the term project to mean a time-bounded work effort that produces a unique product, service, or result. The Project Management Institute (PMI) has established widely adopted standards for project management terms and definitions, and we follow those here.

Project Portfolio Management is the discipline of viewing project work through an investment lens. This includes prioritizing and selecting projects based on their alignment with strategic business goals, their business value, and their investment risk. For software projects, alignment with enterprise architecture is a key criterion. Portfolio managers seek to maximize the return on investment in projects within acceptable levels of investment risk. Portfolio managers also periodically review the entire portfolio to ensure ongoing value and alignment in the face of changing business conditions and project dynamics.

Topics

Over time, we'll introduce topics to address each of the main areas of software project management. This choice of topics will be determined by level of interest among OSLC participants.

Estimation and Measurement

The first topic we will be addressing is software estimation and measurement since it cuts accross all of these disciplines.

Context

The following diagram illustrates some of the major interactions among the tools and systems involved in software project management.

Software Project Management Context Diagram

Demand

Requests for software projects come in from many sources in the enterprise, e.g. users, lines of business, operations. These demands are captured by the project portfolio management system as project proposals.

Enterprise Architecture

The strategic planning function of an enterprise establishes the strategic business goals. An enterprise architecture team is often established to define the "to-be" architecture that implements the strategic goals. The enterprise architecture also captures the "as-is" architecture and oversees the roadmap for transforming the "as-is" architecture to the "to-be" architecture. The strategic goals and "to-be" architecture are used by portfolio managements to evaluate the alignment of project proposals.

Financial Systems

These systems manage a variety of financial information such as budgets, labour rates, and expense charges. Project proposals must include cost information, such as labour rates, as part of the business case. Portfolio managers need budget allocations to understand the available cash resources. Project managers are responsible for managing costs and must get labour and other expense data.

Human Resource Systems

These systems store the inventory of people available for project work along with their current assignments, experience, and skills. Portfolio managers need to understand the aggregated human resource availability in order to schedule project start dates. Project managers need to understand individual human resource availability in order to assign people to projects and, within a project, to tasks.

Project Portfolio Management

Portfolio managers prioritize the incoming stream of demands for project work by assessing them for alignment with strategic goals and enterprise architecture and ranking them based on value and investment risk. Value is assessed by estimating the costs and benefits. Risk is assessed by quantifying the uncertainties in the value estimate. Software estimation tools can be used to reduce the uncertainly in cost estimates. Portfolio managers require a higher return on investment for riskier projects. The number of and timeframe for new projects is constrained by the available financial and human resources. Approved proposals get sent to project managers for execution. Portfolio managers also review project actuals for ongoing value and alignment, typically on a quarterly basis.

See Software Project Selection and Review Processes for more detail.

Project Management

Project managers are responsible for initiating, planning, executing, monitoring, controlling, and closing projects. Monitoring and controlling includes both the traditional areas of cost and staffing, as well as metrics that are unique to software projects. Software estimation tools can be used to provide estimates for software metrics such as size and quality. The estimate includes both the most likely value and the uncertainty (e.g. high and low values). By comparing the actual metric values to the estimate, project managers can identifier unacceptable variances and take corrective action. As the project progresses, the estimates can be refined based on the actuals to date. When a project closes, the actuals can be used to recalibrate the estimation models.

Performance Management

Performance management involves identifying the KPIs that help the enterprise improve its performance, and establishing processes for their measurment, collection, monitoring, and analysis. Business intelligence techniques can be applied to software projects. Information from project and portfolio management tools, and the other tools used in the software development lifecycle, can be moved into a data warehouse by Extract-Transform-Load (ETL) processes. In the data warehouse, managers can use advanced visualization and analysis techniques to detect problems and identify root causes. The data warehouse preserves the history of the KPIs so managers can identify long term trends and correlate improvements with investments in new processes and tools. The historical data can be used to calibrate software estimation models.

Comments

Enter your comments here.

 
Topic revision: r12 - 22 Mar 2010 - 14:37:58 - TWikiAdminUser
 
This site is powered by the TWiki collaboration platform Copyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback