Software Project Management

SE201 - Comprehensive Guide to Project Management Principles

Course Overview

Course Learning Outcome (CLO4)

Demonstrate project management skills by working effectively in small teams, and cooperatively with other teams.

Software project management is a critical discipline that focuses on planning, organizing, and controlling software development projects. Effective project management ensures that software projects are delivered on time, within budget, and meet quality standards.

Project Management Spectrum: The Four P's

Effective software project management focuses on four key elements, known as the Four P's:

🧑‍💼 People

The most important element of a successful project. This includes stakeholders, team members, and all individuals involved in or affected by the project.

📦 Product

The software to be built. Understanding the product scope, requirements, and constraints is essential for project success.

⚙️ Process

The set of framework activities and software engineering tasks required to get the job done. This includes the chosen development methodology.

📊 Project

All work and planning required to make the product a reality. This encompasses schedules, resources, and deliverables.

1. People: The Human Element

Key Stakeholders

Senior Managers

Define business issues and provide strategic direction with significant project influence.

Project Managers

Plan, motivate, organize, and control practitioners who perform software work.

Practitioners

Deliver technical skills necessary to engineer a product or application.

Customers/Product Owners

Specify requirements and have peripheral interest in outcomes.

End-Users

Interact with software once released for production use.

Team Leader Essential Skills

💪 Motivation

The ability to encourage technical people to produce to their best ability through push or pull strategies.

📋 Organization

The ability to mold existing processes or invent new ones to translate concepts into final products.

💡 Innovation

The ability to encourage creativity even when working within established bounds.

Four Key Traits of Effective Project Managers

  1. Problem Solving Skills: Diagnose technical and organizational issues and systematically structure solutions
  2. Managerial Identity: Take charge of the project with confidence and authority
  3. Achievement Focus: Reward initiative and accomplishment to optimize team productivity
  4. Influence and Team Building: Understand verbal and nonverbal signals and react to team needs

Agile Teams

Agile philosophy emphasizes individual competency coupled with group collaboration as critical success factors:

⚠️ Avoid Team Toxicity

  • Negatively excited work atmosphere wasting energy
  • High frustration from personal, business, or technological factors
  • Poorly defined or improperly chosen process models
  • Unclear role definitions leading to lack of accountability

Team Coordination & Communication

Formal Approaches:

Informal Approaches:

2. The Product: Software Scope

Understanding the product scope is essential for effective project management. The scope defines what will be built and establishes boundaries for the project.

Key Scope Questions

Context

How does the software fit into a larger system, product, or business context? What constraints are imposed as a result?

Information Objectives

What customer-visible data objects are produced as output? What data objects are required for input?

Function and Performance

What function does the software perform to transform input data into output? Are there special performance characteristics to address?

Scope Definition Requirements

The software project scope must be unambiguous and understandable at both management and technical levels:

  • Quantitative data explicitly stated (e.g., number of simultaneous users, maximum response time)
  • Constraints and limitations noted (e.g., memory size, existing infrastructure)
  • Clear boundaries established for what is and isn't included

Problem Decomposition

Decomposition is a core activity in software requirements analysis, sometimes called partitioning or problem elaboration.

Two Major Areas of Decomposition:

  1. Functionality and Content: Software functions are evaluated and refined to provide more details. Major data objects are decomposed into constituent parts.
  2. Process: The process used to deliver the functionality is broken down into manageable components.

A complex problem is partitioned into smaller, more manageable problems, providing a reasonable understanding of the information to be produced.

3. Process: Development Methodology

The process model defines how the software will be developed. The team must select an appropriate model based on multiple factors.

Selection Criteria

Process Planning Steps

Select Model

Choose appropriate process model

Define Plan

Create preliminary project plan

Decompose

Define task sets for each activity

Melding Problem and Process

Project planning begins with applying the process to the problem. Each function to be engineered must pass through the framework activities defined for the organization.

Example: Word Processing Software

Major product functions such as text input, editing and formatting, automatic copy edit, page layout capability, automatic indexing and TOC, file management, and document production all pass through common process framework activities including communication, planning, modeling, construction, and deployment.

4. Project: Planning and Execution

Key Principle

The Project Team is the primary resource!

Almost all software products are obtained via projects with limited resources achieving interdependent and conflicting goals.

Project Concern: Deliver on time and within budget

Ten Signs of Project Trouble

  1. Software people don't understand their customer's needs
  2. The product scope is poorly defined
  3. Changes are managed poorly
  4. The chosen technology changes
  5. Business needs change or are ill-defined
  6. Deadlines are unrealistic
  7. Users are resistant
  8. Sponsorship is lost or was never properly obtained
  9. The project team lacks skills
  10. Managers and practitioners avoid best practices and lessons learned

Common-Sense Approach to Avoid Problems

1. Start on the Right Foot

2. Maintain Momentum

3. Track Progress

Progress is tracked as work products (models, source code, test cases) are produced and approved through technical reviews as part of quality assurance.

4. Make Smart Decisions

5. Conduct Post-Delivery Analysis

W5HH Principle (Barry Boehm)

Getting to the essence of a project requires answering these fundamental questions:

Why?

Why is the system being developed? Establishes business justification.

What?

What will be done? Establishes the task set required for the project.

When?

When will it be done? Establishes project schedule with task timing and milestones.

Who?

Who is responsible? Establishes roles and responsibilities of each team member.

Where?

Where are they organizationally located? Indicates that responsibilities extend beyond the software team to customers, users, and stakeholders.

How?

How will the job be done technically and managerially? How much of each resource will be needed?

Project Estimation and Scheduling

Triple Constraints

It is essential for a software organization to deliver a quality product, keeping costs within the client's budget constraint and delivering the project as scheduled.

Time Cost Quality Scope

There are several factors, both internal and external, which may impact this triple constraint triangle. Any of the three factors can severely impact the other two.

Project Scheduling Fundamentals

Project scheduling refers to the roadmap of all activities to be done in a specified order with a time slot allotted to each activity.

Scheduling Requirements:

  1. Break down project tasks into smaller, manageable tasks
  2. Logically order them to ensure smooth evolution between tasks
  3. Create Work Breakdown Structure (WBS)
  4. Estimate required timeframe for each task
  5. Divide time into work-units (man-hours, man-days)
  6. Assign adequate work-units for each task
  7. Assign resources to each task
  8. Calculate total time required from start to finish

Work Breakdown Structure (WBS)

The hierarchical decomposition of a project into phases, activities, and tasks with their sequences. Some tasks are performed in parallel while others follow sequentially.

Project Goal (0)
├── Phase 1
│   ├── Activity 2.1
│   ├── Activity 2.2
│   │   ├── Task 2.2.1 (Primitive)
│   │   ├── Task 2.2.2 (Primitive)
│   │   └── Task 2.2.3 (Primitive)
│   └── Activity 2.3
├── Phase 2
└── Phase 3
                

Precedence Diagramming Method (PDM)

PDM is a technique for scheduling project activities by displaying them in a network diagram to identify the critical path.

PDM Example

Activity Predecessor Duration (Days)
A --- 1
B --- 2
C --- 2
D A 4
E B 5
F B 4
G C 6
H D, E 6
I G 2
J F, H, I 3

Node Structure

Task ES Duration EF LS LF

Key Calculations

Forward Pass:
Early Finish (EF) = Early Start (ES) + Duration
Backward Pass:
Late Start (LS) = Late Finish (LF) - Duration
Total Float (Slack):
Total Float = Late Start - Early Start
OR
Total Float = Late Finish - Early Finish

Critical Path Definition

The critical path is the sequence of connected activities that produces the longest overall time period. This represents the minimum time required to finish the project.

  • Any activity on the critical path, if delayed, delays the entire project
  • Activities on the critical path have zero total float
  • Activities not on the critical path have slack/float time
  • Float time allows project managers flexibility in scheduling

Example Critical Path: B → E → H → J (Total Float = 0 for each task)

Total Float Results from Example

Task Early Start Early Finish Late Start Late Finish Total Float
B 0 2 0 2 0
E 2 7 2 7 0
H 7 13 7 13 0
J 13 16 13 16 0
A 0 1 2 3 2
C 0 2 3 5 3
D 1 5 3 7 2
F 2 6 9 13 7
G 2 8 5 11 3
I 8 10 11 13 3

Risk Management

Risk management is concerned with identifying risks affecting the project schedule or software quality and drawing up plans to avoid or minimize their effects.

Why Risk Management is Important

Risk Classification

By Type:

By Impact:

Project Risks

Affect schedule or resources (e.g., loss of experienced programmer)

Product Risks

Affect quality or performance (e.g., failure of purchased component)

Business Risks

Affect the organization (e.g., competitor launching new product)

Risk Management Process

Risk Identification

Identify project, product, and business risks

Risk Analysis

Assess likelihood and consequences

Risk Planning

Draw up mitigation plans

Risk Monitoring

Regularly assess and revise

Risk Examples

Risk Type Probability Effect
Organizational financial problems force budget reductions Organizational Low Catastrophic
Impossible to recruit staff with required skills People High Catastrophic
Key staff ill at critical times People Moderate Serious
Faults in reusable components need repair Technology Moderate Serious
Requirements changes require major rework Requirements Moderate Serious
Organization restructured Organizational High Serious
Database performance below expectations Technology Moderate Serious
Development time underestimated Estimation High Serious
Software tools cannot be integrated Tools High Tolerable
Customers fail to understand requirements changes impact Requirements Moderate Tolerable

Risk Planning Strategies

Avoidance Strategies

Reduce the probability that the risk will arise. For example, dealing with defective components by thorough testing and verification before integration.

Minimization Strategies

Reduce the impact of the risk on the project or product. For example, having backup personnel for staff illnesses or maintaining cross-training programs.

Contingency Plans

Prepare plans to deal with the risk if it arises. For example, having alternative vendors identified or maintaining relationships with contract staff.

Risk Indicators

Risk Type Potential Indicators
Estimation Failure to meet agreed schedule; failure to clear reported defects
Organizational Organizational gossip; lack of action by senior management
People Poor staff morale; poor relationships; high staff turnover
Requirements Many requirements change requests; customer complaints
Technology Late delivery of hardware/software; many reported problems
Tools Reluctance to use tools; complaints about CASE tools; demands for upgrades

🔍 Risk Monitoring

  • Assess each identified risk regularly
  • Decide whether probability is increasing or decreasing
  • Assess whether risk effects have changed
  • Discuss key risks at management progress meetings
  • Update risk management plans based on new information