CIS265   Software Project Management

Program in Computer & Information Science

Course Instructor: Rajendra Akerkar

E-mail: akerkar [at] tmrfindia.org

Number of Units: 4
Schedule: Three hours of lecture and one hour of discussion per week.  
Prerequisite: CIS 260





Introduction

This course will introduce the area of software project management, presenting basic techniques and approaches and aiming to develop a critical awareness of the challenges and shortcomings of the area.
The module builds on a knowledge of Software Engineering presented in CIS 260. It is assumed that students have a basic knowledge about the decomposition of a project into phases, and the relation of these phases to the Software Development Life Cycle. This understanding will be developed and clarified in the module. Software Project Management is an important area of study since most non-trivial software development efforts will be make use of some type of project management approach in an aim to manage the development process in such a way that the software meets its requirements and is on-time and within budget. Through your practical application of software project management techniques, the module will aim to highlight their problems. You will be expected to critically reflect on the inherent limitations of project management techniques to build a wider understanding and appreciation of the difficulties associated with developing software within a project framework. This will lead to a questioning of the notions of success and failure that are at the heart of project management and their relation to project-based approaches to software systems development.

Aims and Objectives

This course will introduce and develop concepts that are seen as central to the effective management of software projects. You will be expected to develop an appreciation of key, generic project management concepts and techniques as well as those techniques and approaches that are specific to the management of software projects. As well as knowing the core techniques, you will be expected to apply them across a limited range of software project management scenarios.

Learning Outcomes

The broad learning outcomes for the module are as follows:
There will also be specific learning outcomes for each session as we progress through the module. These will be presented at the start of each session as an introduction and to provide structure for the session. The syllabus structure is as follows:

Overview

The course introduces and examines the central software project management techniques and concepts.

The course will explore the following topics
1. the profile of a project
2. understanding and decomposing the task
3. estimation and risk
4. scheduling and resourcing
5. monitoring and control
6. quality assurance
7. maintenance
8. the project team and the project manager
9. alternative approaches and emerging issues
You should develop a sound knowledge of the software project management process and some of its constituent techniques, whilst also developing a critical awareness of the characteristic limitations of software project management as a paradigm for the development of software systems.

Detailed Structure and Syllabus

Software Project Management Techniques and Concepts


Session 1: An Introduction to Software Project Management This session provides the context for the module. Scenarios in which software projects are likely to be situated are explored, including projects aimed towards product development and those situated within an organisational context where the project is an agent of change. The session will consider the characteristics of software projects which distinguish them from non-software/conventional engineering projects, so that we can start to see what general project management knowledge and techniques might be useful in software project management. This will help us introduce, at a high level, the techniques to be covered in the remainder of the theme. There is no preparatory reading specifically for this session, but Kemerer (1997), Chapter 1, provides an excellent introduction to the subject of software project management and its problems/challenges which will resurface in Theme II of the module.

Session 2: The Profile of a Project This session will propose a broad model of a project in terms of the phases that projects tend to pass through (project start-up; development; completion; operation) and discuss how we can develop representations of these phases in terms of process models. The session will also briefly consider the role of (system development) lifecycle models (such as the waterfall model, incremental model, spiral model) and structured methods (such as SSADM) within software project management.
Yeates and Cadle (1996). Chapter 5.


Session 3: Understanding and Decomposing the Task This session will discuss the role of developing a project plan. The importance of trying to understand the task that is to be addressed in the project and the ways in which it can be broken down will be examined. This will include understanding the requirement of the project and looking for different ways in which this can be decomposed into distinct levels and activities (such as work and product breakdown structures). The importance of understanding the dependencies between different activities will be explored through a discussion of network diagrams and critical path analysis (CPA). Other planning aids, ranging from simple manual techniques such as Gantt charts through to more complex and sophisticated planning tools, will be introduced.
Yeates and Cadle (1996). Chapter 6. Pressman (1997). Chapter 3, section 3.3. Chapter 5, sections 5.1, 5.2, 5.3, and 5.6.


Session 4: Estimation and Risk This session will discuss the nature of estimation and its role in software project management. Different methods for estimating will be introduced (such as the analogy method, analysis effort method, programming method, the Delphi technique, CoCoMo, and function point analysis). Allied to estimation are issues of risk. For example, there may be risks to the project associated with using particular resources or from the political climate in the organisation. It is important that these risks are understood so that they, and their impact on the project, can be managed.
Yeates and Cadle (1996). Chapters 7 and 13. Kemerer (1997). Chapters 2 and 5. Advanced reading is chapter 3. Pressman (1997). Chapter 5, section 5.7. Chapter 6


Session 5: Scheduling and Resourcing This session will draw together the previously introduced topics of task decomposition and estimation to show how dependency information and estimates can be brought together to form a workable schedule for projects. The session will also introduce the notion of contingency and how to build it into project schedules to deal with possible problems that may arise in projects. The different ways in which the schedules can be translated into written plans will be introduced along with the characteristics of different approaches to documenting plans.
Yeates and Cadle (1996). Chapter 8. Pressman (1997). Chapter 7.


Session 6: Monitoring and Control Having reached a stage in our discussion of software project management where we will move on to consider issues in the actual running of the project. These include monitoring the progress of the project and making changes to try to keep the project on course. Selected methods for monitoring effort, cost and quality will be introduced. If the monitoring processes identify areas where the project had problems, it is important that those involved in the project take corrective action to control the project. The value of selected corrective actions (such as adding more staff, adding different skills, using overtime, changing the project plan) will be introduced.
Yeates and Cadle (1996). Chapters 9 and 10.


Session 7: Quality Assurance A key issue in software project management is quality assurance. This session will discuss notions of quality and approaches to ensuring quality in software project management that have been developed. This will include the work of prominent individuals (such as Deming, Juran, Crosby and Fagan) along with the development of coherent quality assurance frameworks such as total quality management (TQM) and systems such as ISO 9000.
Yeates and Cadle (1996). Chapter 12. Pressman (1997). Chapter 8.


Session 8: Maintenance A difficult area in software project management is the maintenance of the software system. This session will examine the nature of maintenance and why it is important that it is considered in the context of software project management.
 Kemerer (1997). Chapter 11. Pressman (1997). Chapter 8.


Session 9: The Project Team and the Project Manager This session will look at the roles of the manager and team members in project work. The nature of the individual, their characteristics and personality within the team will be discussed as will the role of the project manager. Broad issues of team formation and effective team working will be explored.
Yeates and Cadle (1996). Chapters 18 and 20 (Chapters 21 and 22 are also relevant as further reading). Pressman (1997). Chapter 3, section 3.2.


Session 10: Alternative Approaches and Emerging Issues In this session we will introduce alternative techniques and approaches which acknowledge some of the limitations of 'traditional' approaches to software project management. These may be development techniques such as Rapid Application Development (RAD) which aim to shorten project development time, or quality systems such as the Capability Maturity Model for Software (CMM) and the Software Process Improvement Capability dEtermination (SPICE) project. Kemerer (1997). Chapter 12. Pressman (1997). Chapter 29.  Humphrey (1989) and Humphrey (1995) are advanced reading for those interested in CMM and the philosophy behind it.

Assessment

The module is formally assessed wholly through examination. The paper is two and half hours long, and you will be expected to answer four questions from six. The examination will be held at the end of the semester in the University's examination schedule. You will also be expected to integrate material from other relevant modules which may form background to aspects of systems project management.

Reading List

Yeates, D. and Cadle, J. (1996).  Project Management for Information Systems (2nd edition) (London, UK: Pitman Publishing).  

Pressman, R. S. (1997).  Software Engineering (4th Edition) (London, UK: McGraw-Hill).  

Kemerer, C. F. (1997). Software Project Management: Readings and  Cases (Chicago: IRWIN). 

Humphrey, W. S. (1989).  Managing the Software Process (Reading, Mass.: Addison-Wesley). 

Humphrey, W. S. (1995).  A Discipline for Software Engineering (Reading, Mass.: Addison-Wesley). 

Lawrence J. Peters (2004). Software Project Management: Methods and Techniques. (Software Consultants International Ltd.)


Back to Rajendra's home page