Unit 9: Project Management
There are different principles necessary to practice software engineering. In this unit, you will use these principles and main software engineering concepts to practice professional issues that a software engineer might face. This includes identifying input and output and main stakeholders, developing a timeline with checkpoints for delivery of key deliverables, creating the main UML diagrams, and using different testing strategies and system quality evaluation methods.
Completing this unit should take you approximately 4 hours.
Upon successful completion of this unit, you will be able to:
- compare the role of the project manager to that of the software engineer;
- describe the areas of responsibilities of a project manager; and
- apply the concepts of project management, such as planning, scheduling, and execution, in terms of the project, people, change management, and quality control.
9.1: Project Management
Project management is the set of activities that take place during a project, from start to end, that are used to organize a project, define and fill roles, plan, estimate and obtain resources, create and update a project schedule, interface with internal and external stakeholders, monitor and review progress relative to plan and schedule, communicate status and make project decisions (technical and personnel), avoid or minimize risks, and take corrective action to satisfy project requirements. Note that planning activities occur during requirements, data gathering, and replanning during later phases. Also, note that measurement is used for estimating, monitoring, and decision-making in all phases of the SDLC.
Project management is documented in a Project Management (PM) plan that identifies the project management models, processes, procedures, practices and techniques, and tools used to manage the project. The PM plan states the project management objectives to achieve the software development requirements and satisfy the expectations of the customer and other significant stakeholders. Software Project Management has two facets: traditional PM, which includes planning, tracking and monitoring, and control of cost, schedule, project objectives, and quality; and software engineering technical management of software engineering activities and products. For a large project, a PM plan may consist of a set of plans, including plans for activities that span all phases of the SDLC, including an SCM Plan, a Testing Plan, a Software Quality Management Plan, a Software Development Plan, and a Measurement Plan. Like testing and configuration management, project management has been from the beginning of programming, especially for projects with more than several team members. Because PM activities occur in every SDLC phase, new computing technology that impacts the SDLC will affect PM models and processes and enable improved PM support tools. Of the 19 Project Management tools in use in 2008, listed in this unit's readings, only one or two appear in a best PM tool listing 15 years later. The 2008 listings show automated tool support for project planning and task management. A 2023 listing shows support for project planning, estimating, tracking, and controlling cost, schedule, functionality, quality, task flow diagrams, collaboration and communication, knowledge sharing, project analytics, and process automation. Furthermore, with the advent of AI, support for PM and software engineering decision-making, project data prediction, capacity needs forecast, and resource allocation optimization.The software engineer and the project manager provide complementary skills and work collaboratively on shared activities. The three main activities of the project manager are organizational liaison, personnel management, and project monitoring and control. The "Liaison" section discusses the project manager's role as a go-between for the technical team and agents who are not members of the technical team (such as project sponsors, users, IS management, vendors, and so on). In the "Personnel Management" section, you will learn that this job entails working with personnel and human resources to hire, fire, and provide employees with professional development. The "Monitor and Control" section explains that project monitoring involves tracking project progress relative to budget. Project control means implementing changes when progress is unsatisfactory (such as training or revising project plans).
In software engineering, management activities occur at three levels: organizational and infrastructure management, project management, and measurement program planning and control. This section describes the areas of project management, including initiation and scope definition, project planning, project enactment, review and evaluation, and engineering measurement. These subjects are often regarded as separate, and indeed, they possess many unique aspects. Their close relationship has led to their combined treatment in software engineering, as effective management requires a combination of both numbers and experience.
9.2: Change Management and Quality Control
A critical component of project monitoring and control is change management. As business requirements and operating environments change, the project manager has to manage change throughout the software development cycle from acquisition, supply, development, operation, and maintenance. The guiding principles, techniques, and tools for change management are discussed in this chapter and complement what we read earlier.
The notion of "quality" is not as simple as it may seem. For any engineered product, many desired qualities are relevant to a particular project. The section explains software quality fundamentals, including the main SQM processes: quality assurance, verification, validation, review, and audit. Software quality refers to the delivered product of a software development project, but that quality depends on the quality of the "upstream" products from which it was derived, including requirements, design, construction, and the software quality activities that support it during the development, namely, validation, verification, testing, and measurement. Software quality terminology is numerous, informal, formal, and often ambiguous, with multiple categorizations (internal, external, operational, and feature quality). All of this makes software quality interesting to study.
From a domain perspective, software quality applies to both the problem application domain and the solution domains. It applies to all software development activities and all software products. It is interdisciplinary in that it is a topic in management, software engineering, mathematics, statistics, measurement, and more. It intersects the generic categories of human, software, and hardware and refers to the evolving relationships of these generic types. This last observation hints at the next stage in the evolution of computing technology.
Software quality is a major driving factor for computing technology evolution, which is increasing our capabilities to solve complex problems better, faster, on a larger scale, and with more automation. Generally, the problem domain gets smaller as the solution domain gets larger. The solution domain gets larger as hardware and software support becomes automated. More automation often begins with new abstractions we make in the problem domain, resulting in new relationships between hardware and software, eventually manifesting as automated support tools. We give names to these tools: "cloud computing", big databases, programming languages (front-end, network, back-end, and so on), and AI (natural language translation, image recognition, and machine learning). Indeed, software quality is very interesting.
Unit 9 Assessment
- Receive a grade
Take this assessment to see how well you understood this unit.
- This assessment does not count towards your grade. It is just for practice!
- You will see the correct answers when you submit your answers. Use this to help you study for the final exam!
- You can take this assessment as many times as you want, whenever you want.