Software Project Management
This course is devoted to PROCESS AND PROJECT MANAGEMENT for development and evolution of large scale software systems. Defined processes within the whole lifecycle have been proven necessary to tackle the growing challenges of software systems development. Instead of leaving their structure and execution up to interpretation, explicit models help to better understand, monitor, control, analyze and improve these processes. The course describes the way how systematic processes contribute to better product quality. It presents the necessary technologies (modeling, measurement, experimentation, decision-making) and frameworks for that purpose.
The course is also devoted to methods, tools, and techniques applicable to qualify software project management. Software project management is strongly influencing the failure or success of software projects. Weaknesses in planning, organizing, staffing, directing and controlling are hard to compensate by more efficiency in technical development work. However, with the dramatic growth in the size, complexity and quality demands of software‐based systems, new challenges for their project management have occurred. Traditional view, largely motivated by disciplined software development and evolution, needs to be enhanced to the new demands of software project management. Software nowadays is developed in distributed teams, with high demands on its coordination. It is more and more offered as open source and as a service.
The following main topics are covered:
(A) Software project management
- Project planning
- Product release planning
- Effort estimation
- Risk management
- Project scheduling and staffing
- Product release planning
(B) Process management
- Process modeling
- Process elicitation
- Software process simulation
- Capability Maturity Model Integration CMMI
- Balancing agility and discipline – Lean and Kanban
(C) Quality of Processes and Products
- Quality Function Deployment
- Quality Improvement Paradigm
- Software knowledge management
- Technology Transfer
The main objectives of SENG 511 are:
- Develop know-what and know-how for large-scale systematic software and system development from an industrial perspective, supplementing existing knowledge about development principles and individual techniques with the notion of software quality, software processes and software project management.
- Understand and formulate processes as a means to achieve quality software.
- Achieve practical skills in process modeling and execution, software release planning and software project management (three assignments).
- Study the incremental software development best practices as formulated by the Rational Unified Process RUP.
- Learn about key principles, methods and techniques of software projects management.
- Customization of project management in dependence of project characteristics.
- Apply software measurement as an enabling technique for evidence-based process improvement project management.
- To learn about organizational process improvement frameworks such as CMMI and the Software Experience Factory approach.
- Study individual techniques such as Quality Function Deployment QFD, Six Sigma, and Optimized Staffing.
- Study four landmark papers from the area of software process and project management and discuss their relevance.
- Provide insight into actual real-world software system development by providing case study reports from three distinguished industry representatives.
- Learn about some of the most recent trends in process and project management.
The course is using the proprietary tool GanttPro https://ganttpro.com/. Students will learn how the tool can support time and resource project management of software projects.