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:
- Spiral Model: Addresses large government projects; iterative with failure prevention phases.
- Prototyping Model: Used to clarify user requirements through working models.
- Waterfall Model: Linear and distinct phases - analysis, design, construction, testing, support.
- Incremental Build Model: Develops operational software progressively with added capabilities.
- 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
- Globalization: Complexities in managing global teams and projects.
- Importance of establishing trust and effective communication.
- Communication: Efficient methods and tools to facilitate timely interactions.
- Outsourcing: Collaborating with external resources; understanding procurement dynamics is crucial.
- 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:
- Scrum: Structured roles and responsibilities within short, iterative cycles.
- Kanban: Flexible task management that allows for continuous delivery.
- 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:
- Plan: Establishing goals and scope.
- Do: Implementing tasks and development.
- Check: Evaluating progress and outcomes.
- 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.