In-depth Notes on Software Project Management

Module Overview

  • Course Title: Software Project Management - Technology Context
  • University: University of Technology and Applied Sciences
  • Course Code: CSPM3201 Project Management and Acquisition

Learning Objectives

  • Explain Project and Product Life Cycles
  • Understand Adaptive Software Development (ASD)
  • Explain the nature of IT projects
  • Discuss trends affecting IT Project Management
  • Describe Agile Project Management principles, roles, and iterations

Project Life Cycle

  • Defined as a collection of phases that breaks projects into manageable pieces.
    • Phases Define:
    • Work performed in each phase
    • Deliverables produced and their timing
    • Involved personnel and management oversight
  • Deliverables: They can range from technical reports, training sessions, hardware, or software code segments.

Product Life Cycles (SDLC)

  • Systems Development Life Cycle (SDLC): Framework for developing information systems.
  • Common SDLC Models:
    1. Spiral Model: Addresses large government projects; iterative with failure prevention phases.
    2. Prototyping Model: Used to clarify user requirements through working models.
    3. Waterfall Model: Linear and distinct phases - analysis, design, construction, testing, support.
    4. Incremental Build Model: Develops operational software progressively with added capabilities.
    5. RAD Model: Focused on rapid development with evolving prototypes.

Adaptive Software Development (ASD)

  • ASD Assumptions: Software requirements are often unclear at the project's inception.
  • Characteristics of ASD:
    • Flexibility in approach; not strictly defined.
    • Examples include methodologies like Extreme Programming (XP) and Scrum.
  • XP Features:
    • Pair programming & tests written for own code.
    • Incremental releases every three weeks for customer control.
    • Daily Stand-up Meetings for daily objectives.

Scrum Methodology

  • Scrum: Iterative process involving 'sprints', each lasting approximately 30 days.
  • Meetings:
    • Daily Stand-up Meetings for status updates.
    • Sprint planning to outline tasks and objectives.
  • Sprint: Defined period for completing specific project tasks.

Importance of Project Phases

  • Essential to review project status at each phase to determine if it should continue, be redirected, or terminated.
  • Management Reviews: Known as phase exits or kill points, crucial for maintaining project direction.
  • Top Management Involvement: Critical throughout the project lifecycle.

Context of IT Projects

  • Diverse Team Dynamics: IT team members often have varied backgrounds and skill sets, offering diverse perspectives on project requirements.
  • Rapidly Changing Technologies: Technologies evolve quickly, necessitating continuous skill refinement among team members.

Trends Affecting IT Project Management

  1. Globalization: Complexities in managing global teams and projects.
    • Importance of establishing trust and effective communication.
  2. Communication: Efficient methods and tools to facilitate timely interactions.
  3. Outsourcing: Collaborating with external resources; understanding procurement dynamics is crucial.
  4. Virtual Teams: Working across time zones using technology, providing expertise and flexibility.

Agile Project Management

  • An effective approach for complex and innovative projects, emphasizing frequent feedback and iteration.
  • Key Agile Methods:
    1. Scrum: Structured roles and responsibilities within short, iterative cycles.
    2. Kanban: Flexible task management that allows for continuous delivery.
    3. Extreme Programming (XP): Focus on test-driven development and adaptability.

Agile Methodology Roles

  • Product Owner: Manages backlog priorities and requirements.
  • Scrum Master: Facilitates meetings and resolves issues hindering progress.
  • Team Members: Collaborate and communicate progress, signing up for tasks and managing their workflow.

Comparative Overview: Scrum vs. Kanban

  • Roles:
    • Scrum has specific roles; Kanban doesn't enforce formal roles.
  • Meetings:
    • Scrum meetings are structured and mandatory, while Kanban meetings can vary.
  • Boards:
    • Scrum's board resets each sprint; Kanban allows ongoing updates and a continuous flow of tasks.

Agile Iterative Development Cycle

  • Breaks down tasks into smaller, manageable pieces for continuous improvement.
  • Key Steps of PDCA Cycle:
    1. Plan: Establishing goals and scope.
    2. Do: Implementing tasks and development.
    3. Check: Evaluating progress and outcomes.
    4. Adjust: Refining processes and preparing for next iterations.

Agile Advantages

  • High engagement and responsiveness to customer feedback, constant reprioritization capabilities.
  • Improved project visibility and control.

Agile Disadvantages

  • Uncertainty in project timelines and delivery dates due to changing priorities.
  • Potential limited documentation affecting onboarding new team members.

Activities

  • Refer to Activity 2.1: Explore real-world applications of Agile methodologies.
  • Refer to Activity 2.2: Conduct a team simulation of Agile project management tasks.