Unit 9 Study Guide and Review: Project Management
9a. Compare and contrast the role of the project manager relative to the software engineer
- What are the SE (Software Engineering) and PM (Project Management) roles?
- Describe the relationship between a software project manager and a software engineer.
- What is unique about managing a software project compared to managing in general?
Two of the roles of a Software Project team are SE and PM. SE is a technical role and PM is a management role. The SE role has sole responsibility for the technical activities of the life-cycle. The SE and PM have joint responsibility for project planning, allocation of resources including assignment of tasks, and major application decisions. The PM has sole responsibility for interfacing with non-project team stakeholders, managing project staff, and project monitoring and control. The SE and PM roles are team oriented, share joint responsibilities, and provide support on sole responsibilities. To review, read pages 57-58 of The New Software Engineering.
The software PM is a specialty PM role, in that it requires sufficient software knowledge and experience in:
- software development, software technologies, software applications
- software requirements engineering and requirements management
- software estimation of cost and schedule
- identification and mitigation of project risks
- requirements, design, and implementation models and management of the transition from the problem space to the solution space
- using data to make decisions that impact the success of a software project
Furthermore, a PM should ideally have the ability to define a common structure for allocation and management of cost, schedule, functionality, and organization of project processes and work products; and for managing joint SE-PM responsibilities. Typically, this common structure is a software architecture. For example, the software system architecture can serve as the work breakdown structure. Allocation of cost and time to each element of the structure produces a project cost and schedule estimate. As details of the design evolve during the development, detailed work assignments can be identified, costed, and scheduled. It is the technical nature of this common structure that determines the joint SE-PM areas of responsibilities.
9b. Identify the three areas of responsibilities of a project manager
- Describe the software management process.
The software PM has sole responsibility for liaison between the project and external stakeholders, project personnel management, and project monitoring and control. External liaison involves communication, negotiation, and status reporting. What is included in a status report to a stakeholder? To review, read page 67 of The New Software Engineering.
The PM performs project personnel management with the support of Human Resources. Project monitoring and control is the process of tracking the project progress against the project plan and taking corrective action when project progress deviates from the plan. The ability to project from a current status to a future status is a valuable PM skill that identifies problems early, when they are usually easier to address. To review, read pages 74-78 of The New Software Engineering.
The PM process consists of activities that carry out the above three responsibilities. These activities utilize techniques or methods to produce work products, including project organization, work breakdown structures, cost and schedule estimates, task dependency diagram, critical path, software development and related plans, status, review, and monitoring reports. To review, read pages 57-78 of The New Software Engineering.
9c. Apply the concepts of project management in terms of the project (i.e., planning, scheduling, execution, etc.)
- List the activities and artifacts of software project management.
- What topics are included in a Software Development Plan?
- Name some techniques used in the project management activities.
Project performance depends on project management planning, and efficient and effective execution of the project plan. The goal of software project management (PM) is the development of a software system that satisfies the expectations and requirements of the stakeholders. To achieve this goal, PM develops a software development plan (SDP) jointly with software engineering (SE) that describes the goals of the project, strategy and approach, project activities, PM techniques, and cost and time estimates to achieve the goals. What is a critical path? Do you recall the formula for the most likely time estimate? The SDP is the primary monitoring and control document for managing the project. To review, read pages 74-79 of The New Software Engineering.
9d. Apply the concepts of project management in terms of the people (i.e., hiring, motivating, evaluating, firing, etc.)
- Which software management activities pertain to human resources and relations?
- Why are the people aspects of project management important?
Project management activities that pertain to human resources and relations are:
- project planning (team assignments of roles and responsibilities, negotiation of commitments)
- assignment of tasks
- liaison activities (communication between the project and stakeholders)
- personnel management (building and managing the team, guiding the training and professional development of team members)
Various factors affect the success of a project, such as technology, process maturity, the organization, and the people. Perhaps the most important and most challenging is people: the project team members. Moreover, project activities involve all kinds of internal and external stakeholders, often holding conflicting expectations. Project management activities, summarized above, are designed to address these challenges and balance the objectives of the individual, the team, the organization, and the customer.
9e. Apply the concepts of project management in terms of change management (i.e., application, software, configuration, etc.)
- Why is software configuration management (SCM) essential to a project?
- Summarize the SCM change management process.
- What is the difference between change management and configuration management?
Any work product can change, and one change often causes other changes. Software configuration management includes identification of the components and artifacts of the system and control of changes to them (called "change management"). Software configuration management applies to requirements, designs, software, tests, and major documents, such as plans. Change management for requirements is often handled by special processes (collectively called "Requirements Management" or "Requirements Engineering"), because changes to requirements can affect all other work products, and these changes can involve customers directly. To review, read Highways of Requirements Engineering.
Change occurs frequently, and usually affects stakeholders. What are some causes of change? Change requires effort and time, and should be minimized by designing for maintainability, reusing software, using object-oriented methodologies, and using CM software tools. Why does reuse reduce maintenance? Change management is critical to the stability, completeness, and currency (that is, correct and up-to-date) of the system components.
The change management process, especially for a large system, deals with multiple versions of components, variations of components for different environments, and is performed continuously from the start of a project to its end. Because of its importance and complexity, it is often elaborated in a separate SCM (Software Configuration Management Plan) and consists of procedures for its various activities. What are some of those procedures? To review, read chapter 18 of The New Software Engineering.
The following diagram summarizes the change management subprocess of the software configuration management process. Each of the activities listed may be depicted in a more detailed lower-level diagram.
Formal SCM involves a software configuration management board that oversees the change management process and consists of key technical and management representatives of the team and organization. Formal SCM enforces a significant amount of documentation and control, usually required by the organization and or the customer. To review, read pages 742-751 of The New Software Engineering.
Unit 9 Vocabulary
This vocabulary list includes terms that might help you with the review items above and some terms you should be familiar with to be successful in completing the final exam for the course.
Try to think of the reason why each term is included.
- SE
- PM
- Joint responsibility
- Sole responsibility
- Project stakeholders
- Stakeholder liaison or interface
- Project planning
- Cost, size, schedule estimation
- Most likely time estimate
- Work or task breakdown structure
- Project Plan
- SDP-Software Development Plan
- Task dependency diagram
- Personnel management
- Heuristics for personnel assignment
- Monitor and control
- Critical path
- Change management
- Configuration management
- Formal SCM
- SCM board
- Baseline
- Change request (CR)
- Version
- Delta version
- Derivation
- Variation