Detailed Notes for Software Project Management Part 2 - HCE 203/HSE 203
---
1. Introduction to Software Project Management
- Software Project Management (SPM) is the process of overseeing and
controlling all aspects of software development to ensure that projects are
completed on time, within budget, and according to specified requirements. It
involves the coordination of human resources, time, hardware, software, and
communication.
- Key Roles of a Project Manager:
- Planning: Creating detailed project plans that specify timelines, deliverables,
and resources required.
- Organizing: Allocating and managing resources, ensuring team roles are
defined and tasks are distributed.
- Leading: Motivating and guiding the team to stay on track and meet
objectives.
- Controlling: Monitoring project progress, handling deviations from the plan,
and applying corrective measures where necessary.
Software Development Life Cycle (SDLC) Models:
- Waterfall Model:
- A linear and sequential approach to software development, where each phase
must be completed before the next begins. The phases typically include:
1. Requirement Analysis: Gather all functional and non-functional
requirements.
2. System Design: Create design specifications based on the gathered
requirements.
3. Implementation: Write the actual code based on design specifications.
4. Testing: Test the software to ensure it meets the requirements.
5. Deployment: Deploy the finished product to users.
6. Maintenance: Address bugs and issues post-deployment.
- Advantages:
- Simple and easy to understand.
- Phases are well-defined with clear milestones.
- Best for projects with well-understood requirements.
- Disadvantages:
- Inflexible; not well-suited for projects where requirements may change.
- Testing occurs late in the process, which can lead to costly issues being
discovered late.
- Agile Model:
- A flexible, iterative approach where software is developed incrementally,
with feedback loops allowing changes to be made during the process.
- Scrum and Kanban are common Agile frameworks used to manage work
through iterative cycles (sprints) and task visualization, respectively.
---
2. Project Initiation and Planning
- Project Objectives, Scope, and Deliverables:
- Objectives: These define what the project aims to achieve, such as
developing a new software application or enhancing an existing system.
- Scope: Defines the boundaries of the project, detailing what is included (in-
scope) and what is not (out-of-scope). Effective scope management is critical to
prevent scope creep, which refers to uncontrolled changes or continuous growth
in the project scope.
- Deliverables: Tangible or intangible outputs that the project will produce
(e.g., software features, documentation, or reports).
Work Breakdown Structure (WBS):
- The WBS is a hierarchical decomposition of the total scope of work into
manageable chunks or tasks. It breaks down large, complex projects into
smaller, more manageable tasks, ensuring every aspect of the project is covered.
The WBS helps:
- Assign responsibilities.
- Establish task dependencies.
- Set deadlines.
Estimation Techniques:
- COCOMO (Constructive Cost Model):
- A widely-used software cost estimation model that predicts the cost, effort,
and time required to develop software based on project size, complexity, and
various factors like team capability and tool support.
- COCOMO has three levels: Basic, Intermediate, and Advanced, with
increasing complexity and precision.
- Delphi Technique:
- A consensus-based forecasting method in which a panel of experts
anonymously provides estimates, followed by iterative rounds of discussion and
revision until a collective agreement is reached. This method is particularly
useful when little historical data is available for a project.
---
3. Project Execution and Monitoring
Team Formation and Management:
- Teams usually pass through several stages of development known as the
Tuckman Model:
1. Forming: The team meets and learns about the project.
2. Storming: Conflict and friction occur as team members get comfortable with
each other.
3. Norming: The team starts working together more cohesively.
4. Performing: The team works efficiently towards project goals.
5. Adjourning: The project is completed, and the team disbands or moves to
new projects.
- Team Management:
- The project manager is responsible for ensuring effective collaboration,
delegating tasks appropriately, and resolving any conflicts that arise within the
team.
Tracking Project Progress:
- Gantt Charts: Visual tools used to represent project schedules. Each task is
represented as a horizontal bar, with its length indicating the time it takes. Gantt
charts are useful for tracking dependencies and deadlines.
- Earned Value Management (EVM):
- A method for measuring project performance by comparing the planned
value (what should have been completed) against the earned value (what has
actually been completed) and the actual cost.
- Key Metrics:
- Planned Value (PV): What was planned to be completed by a certain date.
- Earned Value (EV): The value of work that has been completed.
- Actual Cost (AC): The actual cost incurred for the work completed.
- Cost Performance Index (CPI): EV/AC; if CPI < 1, the project is over
budget.
- Schedule Performance Index (SPI): EV/PV; if SPI < 1, the project is behind
schedule.
Change Management:
- Change management is the process of handling changes to project scope,
schedule, or resources. It ensures that changes are properly reviewed, approved,
and integrated into the project without jeopardizing success.
- Scope Creep: The uncontrolled expansion of a project's scope without
adjustments to time, cost, or resources. This is managed by setting up a formal
Change Control Process, where all change requests are documented, evaluated,
and approved or rejected by a Change Control Board (CCB).
---
4. Project Control and Risk Management
Risk Management:
- Risk Identification: This is the process of recognizing potential problems that
could negatively impact the project (e.g., budget cuts, resource unavailability, or
technical failures).
- Risk Analysis:
- Qualitative Risk Analysis: Involves assessing the probability and impact of
identified risks using tools like risk matrices.
- Quantitative Risk Analysis: Uses numerical methods to evaluate risk impact
(e.g., Monte Carlo simulations).
- Risk Mitigation: Developing strategies to either reduce the likelihood of a risk
occurring or minimize its impact if it does. Common strategies include:
- Avoidance: Altering the project plan to eliminate the risk.
- Transference: Shifting the risk to a third party (e.g., outsourcing).
- Mitigation: Reducing the impact or likelihood of the risk (e.g., implementing
redundant systems).
- Acceptance: Acknowledging the risk and planning a response if it occurs.
---
5. Agile Project Management
Agile Methodologies:
- Agile focuses on flexibility, customer collaboration, and delivering working
software in short cycles known as iterations or sprints.
- Agile methodologies are based on the Agile Manifesto, which values:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
Scrum Framework:
- Roles in Scrum:
- Scrum Master: Ensures that the Scrum process is followed and helps remove
impediments that may block the team's progress.
- Product Owner: Represents the customer, defines the product backlog, and
prioritizes tasks to ensure that the most valuable features are developed first.
- Development Team: A cross-functional group responsible for delivering
increments of potentially shippable product.
- Ceremonies in Scrum:
- Sprint Planning: The team decides what backlog items they will complete
during the next sprint.
- Daily Standups (Daily Scrum): A brief meeting where the team discusses
what was done, what will be done, and any obstacles.
- Sprint Review: The team demonstrates the completed work to stakeholders
for feedback.
- Sprint Retrospective: The team reflects on the sprint to identify what went
well and areas for improvement.
---
6. Project Closure and Post-Project Evaluation
Project Handover:
- When the project is completed, deliverables are formally handed over to the
customer. The handover process involves ensuring that all project deliverables
meet the defined acceptance criteria.
Lessons Learned:
- After project closure, the team conducts a lessons learned review to discuss
successes and challenges. Documenting these lessons helps improve processes
for future projects.
Final Reports:
- The project manager produces a Project Closure Report, summarizing project
outcomes, performance against objectives, final costs, and recommendations for
future projects.
---
7. Project Management Tools and Software
- Microsoft Project: A popular tool for scheduling, resource allocation, and
tracking project progress using Gantt charts and resource histograms.
- JIRA: Commonly used in Agile environments to manage tasks, issues, and
workflows. It integrates well with Scrum and Kanban boards to facilitate
iterative development
- Trello and Asana: Visual tools that use boards and cards to track tasks and
project progress. They are especially useful for small teams and Agile projects.
---
These detailed notes provide in-depth explanations of each key concept relevant
to your Software Project Management course.