You are on page 1of 19

SPM

Unit 1

Introduction to Software Project Management:


- Introduction
To develop non- routine and unique software within a specific timeframe and budget
Discipline of defining and achieving target Goals
Optimizing the use of resources (time, money, people, materials, energy, space)
Planned, implemented, monitored, and controlled throughout all phases
- Why is Software Project Management Important?
Software is not a tangible product
To reduce the risk factor
To ensure project delivery will meet stakeholder’s expectations
To develop a proper schedule along with definite timeline

- What is a Project?
Temporary Endeavor / Planned undertaking of series of Well-defined activities to achieve the desired goals
Definite start date and end date
- Software Projects versus Other Types of Project
1. Flexibility
2. Invisibility
3. Complexity
4. Conformity
5. Technology

- Contract Management
A legally binding agreement between two or more parties that outlines the terms and conditions governing their relationship

- Technical Project Management


A software product, system, or solution.

- Activities Covered by Software Project Management


Project Conceptualization and initialization
Developing project plan and charter
Project Execution and control
Project Closure
Project Evaluation
- Plans, Methods and Methodologies
1. Generation of requirements
2. Analysis of necessities
3. Design of pilot cases
4. Design of the model
5. Code development
6. Code assessment
7. Outcome comparison
8. Project installation
9. Project maintenance

- Some Ways of Categorizing Software Projects


Custom
Distributed
Free
Codeplex Hosted

Concepts Page 1
Codeplex Hosted
- Project Charter
A formal, written document that outlines the project's objectives, scope, stakeholders, constraints, and other key details.

- Stakeholders
Individuals, groups, or organizations that have an interest in or are affected by the outcome of a particular project
1. End Users
2. Sponsor
3. Team
4. Functional Managers
5. Project manager
6. Business Partners
7. Owner

- Setting Objectives
MOV (Measurable Organizational Value)
to define and measure the tangible benefits or value that a project is expected to deliver to the organization

Concepts Page 2
to define and measure the tangible benefits or value that a project is expected to deliver to the organization

- The Business Case


A comprehensive document that justifies the initiation and execution of a particular project and provides the details for why the project is
necessary, what benefits it will deliver, and how it aligns with the strategic goals of the organization

- Project Success and Failure


- What is Management?
The coordination and administration of tasks to achieve a goal.
The process of planning, decision making, organizing, leading, motivating and controlling the human resources, financial, physical, and
informational resources of an organization to reach their goals efficiently and effectively
- Management Control
1. Planning (P)
2. Organizing (O)
3. Staffing (S):
4. Directing (D)
5. Coordinating (CO)
6. Reporting (R)
7. Budgeting (B)

- Project Management Life Cycle


- Traditional versus Modern Project Management Practices.

Concepts Page 3
- Traditional versus Modern Project Management Practices.

Agile
An iterative and flexible approach that prioritizes collaboration, adaptability, and customer satisfaction.
and emphasizes delivering small, incremental releases of a product, allowing for continuous feedback and adjustments throughout the
development process.

Project Evaluation and Programme Management:


- Introduction
- Business Case / Feasibility Study

- Project Portfolio Management


A collection of projects and programs that are managed as a group to achieve strategic objectives

- Evaluation of Individual Projects


Feasibility of a project can be evaluated by
• Technical assessment
• Cost –benefit analysis
• Cash flow forecasting
- Cost–benefit Evaluation Techniques

Concepts Page 4
- Cost–benefit Evaluation Techniques
The costs include:
1) Development Costs – The salary paid to the people working on the project and that to the consultant if any
2) Setup costs – Cost of putting the system in place and consists of hardware equipments and cost of training or recruiting staff.
3) Operational costs – It includes support costs, hosting costs, licensing costs, maintenance costs and back costs
Direct
Indeirect
Intagible

Cumulative Adding value of side table + till down


1. Pay-out or the payback period:
The time it takes for an investment to generate cash inflows equal to the initial investment.

2. BreakEven Year
Cash inflow= Cash Flow

3. NPV (Net Present Value):


The present value of a project's expected cash inflows minus the present value of its expected cash outflows.
NPV = Net investment – total discounted cash inflows

If Net present value > 0 Project is feasible and vice versa.


i.e.
NPV>0 accept
NPV<0 reject.

4. Net profit:
The total revenue of a business - its total expenses, indicating overall profitability.
5. ROI (Return on Investment) / ARR (Accounting rate of return):
A measure of the profitability of an investment, calculated as the ratio of net profit to the initial cost of the investment.

6. ROR (Rate of Return):


The percentage gain or loss on an investment relative to its cost, often expressed annually as a percentage.

- Risk Evaluation
The process of systematically assessing the potential risks associated with a project to determine their impact, likelihood, and overall
significance, enabling informed decision-making and risk mitigation strategies.
Tools:
• Project documents
• SWOT Analysis
• Brainstorming
• Delphi Technique
Anonymously conducted surveys among team members and addressing limitations of individual biases.
• Assumption Analysis
• Root Cause Analysis
Descision Trees
A graphical representation of the logic in a decision making process and the sequence of the decision points that creates the decision.
- Programme Management
It involves coordinating and overseeing multiple related projects to achieve strategic objectives, ensuring alignment with organizational goals
and optimizing resource utilization.
i. Vision - The vision will usually be a brief statement of the intent communicated down from the leadership.

Concepts Page 5
i. Vision - The vision will usually be a brief statement of the intent communicated down from the leadership.
ii. Aim and objectives - The aim and objectives of is more detailed statement and that explains exactly what is required
iii. Scope - The scope provides boundaries to the Program explaining what exactly to be delivered at the end of the project
iv. Design - Design is the way in which the project that make a program are put together.
v. Approach - It is the way the Program will be Run
vi. Resource Management - Resource management look at the scheduling and allocation of resources both with short-term and long-term
views.
vii. Responsibilities - Responsibilities are identified and located related for each area of the program.
Every associate of the Program must undoubtedly understand his or her characters and the roles of the other team members
viii. Benefits realization - Benefits realization is the process at the end of the program by which the benefits which were identified at the
beginning of the program are being measured towards the end.

- Managing the Allocation of Resources within Programmes


- Strategic Programme Management

- Creating a Programme
- Aids to Programme Management
Program Mandate:
A formal authorization that defines the objectives, scope, and authority of a program, providing the foundation for its initiation and
execution.

Vision:
The vision in program management articulates the desired future state or outcome, providing a clear and inspiring direction for the
program's efforts and aligning stakeholders toward common goals.

Blueprint:
A blueprint outlines the high-level structure, components, and dependencies of a program, serving as a strategic guide for its design
and implementation, ensuring alignment with the defined vision and goals.

- Some Reservations about Programme Management


- Benefits Management.
It involves the systematic planning, monitoring, and realization of expected benefits from a project or program, ensuring that the intended
outcomes are achieved and contribute to the organization's strategic objectives.

An Overview of Project Planning:


- Introduction to Step Wise Project Planning
- Step 0: Select Project
- Step 1: Identify Project Scope and Objectives
- Step 2: Identify Project Infrastructure
- Step 3: Analyse Project Characteristics

Concepts Page 6
- Step 3: Analyse Project Characteristics
Project Charter
- Step 4: Identify Project Products and Activities
WBS
A hierarchical decomposition of the total scope of work to be carried out by the project team, providing a visual and systematic way to
organize and define the project's deliverables and work packages.
- Step 5: Estimate Effort for Each Activity
- Step 6: Identify Activity Risks
- Step 7: Allocate Resources
- Step 8: Review/Publicize Plan
- Steps 9 and 10: Execute Plan/Lower Levels of Planning

Unit 2

Selection of an Appropriate Project Approach:


- Introduction
Outsoucing
Obtaining product or services from an external source.

Off-the-shelf Projects:
Ready-made, pre-built projects or products available for purchase or use without customization.

- Build or Buy?

- Choosing Methodologies and Technologies


1. Adaptive Project Framework:
 Variable project scope; time and cost are constants adjusted for maximum business value.
2. Agile Software Development:
 Extreme agility in requirements; short-term delivery cycles, agile requirements, dynamic team culture.
3. Crystal Methods:
 Focus on team communication, member skills, and interaction; falls under the agile category.
4. Dynamic Systems Development Model (DSDM):
 Successor of RAD; subset of agile with emphasis on active user involvement.
5. Extreme Programming (XP):
 Aims to lower the cost of requirement changes; emphasizes fine-scale feedback, continuous process, shared understanding.
6. Feature Driven Development (FDD):
 Focus on simple processes, short iterative cycles, and feature-driven delivery.
7. ITIL (Information Technology Infrastructure Library):

Concepts Page 7
7. ITIL (Information Technology Infrastructure Library):
 Collection of best practices in project management; covers a broad aspect of organizational management.
8. Joint Application Development (JAD):
 Emphasizes involving the client from early stages; collaborative JAD sessions throughout the project life cycle.
9. Lean Development (LD):
 Focus on change-tolerance software development; prioritizes customer satisfaction and delivering high value.
10. PRINCE2:
 Process-based approach to project management based on eight high-level processes.
11. Rapid Application Development (RAD):
 Focus on fast product development with higher quality; uses workshops for requirements gathering and prototyping.
12. Rational Unified Process (RUP):
 Captures positive aspects of modern software development methodologies; suggests an iterative approach.
13. Scrum:
 Agile methodology aiming to improve team productivity dramatically; projects managed by a Scrum master.
14. Spiral:
 Extended waterfall model with prototyping; used for large projects instead of the waterfall model.
15. Systems Development Life Cycle (SDLC):
 Conceptual model allowing the combination of multiple project management methodologies; emphasizes documentation.
16. Waterfall (Traditional):
 Legacy model with fixed phases and linear timelines; unable to address modern software development challenges.

- Software Processes and Process Models


An abstract representation of a process that presents a description of a process from some perspective
Waterfall
Spiral
Prototyping
Iterative
RAD
Agile
XP
V-V model
- Choice of Process Models
- Structure versus Speed of Delivery
- The Waterfall Model
- The Spiral Model
- Software Prototyping
- Other Ways of Categorizing Prototypes
- Incremental Delivery
- Atern/Dynamic Systems Development Method
A agile project management and delivery framework used primarily for software development projects which provides the set of principles
and practices for delivering projects on time and within budget while ensuring that the delivered system meets the business needs

- Rapid Application Development


- Agile Methods
- Extreme Programming (XP)
- Scrum
A framework for developing,delivering and sustaining complex products while productively and creatively delivering products with
the highest possible value
- Lean Software Development
An iterative and incremental approach to software development that originated from Lean Manufacturing principles and practices which
emphasizes delivering value to the customer with minimal waste, efficient processes, and continuous improvement.

- Managing Iterative Processes


- Selecting the Most Appropriate Process Model.

Software Effort Estimation:


- Introduction
The process of finding an estimate, or approximation, which is a value that can be used for some purpose even if input data may be
incomplete, uncertain, or unstable.
The money, effort, resources, and time it will take to build a specific system or product
- Where are the Estimates Done?

Concepts Page 8
- Problems with Over- and Under-Estimates
- The Basis for Software Estimating
- Software Effort Estimation Techniques
- Bottom- up Estimating
- The Top-down Approach and Parametric Models
Bottom-up
• Use when no past project data
• Identify all tasks that must be done – so quite time consuming
• Use when you have no data about similar past projects
Top-down
• Produce overall estimate based on project cost drivers
• Based on past project data
• Divide overall estimate between jobs to be done

- Expert Judgement
- Estimating by Analogy
- Albrecht Function Point
A software metric used to measure the functionality provided by a software applicatio

- COSMIC Full Function Points


A method for measuring the functional size of software to estimate project's effort, track progress, and benchmark performance.

- COCOMO II: A Parametric Productivity Model


It is a parametric model that estimates the cost and effort required for software development based on a set of parameters and inputs that
includes attributes of the project, the team, and the development environment

Concepts Page 9
includes attributes of the project, the team, and the development environment

- Cost Estimation
Rough
Broad
Definite
- Staffing Pattern
The allocation and organization of team members and resources throughout the various phases of a software project that involves
determining the right mix of skills, roles, and responsibilities to ensure the successful completion of the project.

Norden`s Work
Staffing pattern of R&D types of projects changes dynamically over time for efficient manpower utilization and can be approximated by
the Rayleigh distribution curve.
Putnam`s Work
It focuses on the human aspects of software project management, such as team building, motivation, and communication.

- Effect of Schedule Compression


To compress the schedule without changing the project scope when a project is behind schedule
Fast Tracking
Performing critical path activities in parallel instead of series.

Crashing
Trading off between cost and schedule i.e. Extra resources assigned to activities, reducing duration.

Steps for Project Behind Schedule:


Step 1: Check risks and re-estimate remaining activities.
Step 2: Consider fast-tracking if re-estimation results in a later deadline.
Step 3: Crash the project by planning extra resources and allocating extra budget.
Step 4: Scope reduction can help reduce remaining activities with customer agreement.
Step 5: Cutting quality can be considered if the customer agrees.

- Capers Jones Estimating Rules of Thumb.

Concepts Page 10
Unit 3
Activity Planning:
- Introduction
- Objectives of Activity Planning

- When to Plan
- Project Schedules
- Projects and Activities
- Sequencing and Scheduling Activities
- Network Planning Models
A graphical representation of the flow and dependencies among various project activities which helps project managers plan, schedule, and
track the progress of a project
Components of Network Models:
Nodes:
Nodes represent activities or tasks in the project. They are points in the network where events occur.
Arrows (or Edges):
Arrows represent the dependencies between activities. They show the flow and sequencing of tasks.
Event:
An event is a point in time when an activity starts or finishes. It is represented by a circle in the network diagram.
Duration:
Each activity is associated with a duration, indicating the time required to complete the task.

Concepts Page 11
Each activity is associated with a duration, indicating the time required to complete the task.
Critical Path:
The critical path is the longest path through the network, determining the minimum time needed for project completion.

- Formulating a Network Model


- Adding the Time Dimension
- The Forward Pass
It involves moving forward through the project network diagram, starting from the beginning and progressing towards the end to calculate the
earliest start (ES) and earliest finish (EF) times for each activity.

- Backward Pass
It involves moving backward through the project network diagram, starting from the end and progressing towards the beginning to calculate
the latest start (LS) and latest finish (LF) times for each activity.

- Identifying the Critical Path


- Activity Float
- Shortening the Project Duration
- Identifying Critical Activities
- Activity-on-Arrow Networks.

Risk Management:
- Introduction
- Risk
- Categories of Risk
Project
Technical
Business
- Risk Management Approaches
- A Framework for Dealing with Risk
- Risk Identification

Concepts Page 12
- Risk Assessment
- Risk Planning
- Risk Management

- Evaluating Risks to the Schedule

Concepts Page 13
- Evaluating Risks to the Schedule

- Boehm’s Top 10 Risks and Counter Measures


1. Personnel Shortfall
2. Unrealistic Schedules and Budgets
3. Developing the Wrong Functions
4. Developing the Wrong User Interface
5. Gold-Plating
6. Continuing Stream of Requirements Changes
7. Shortfalls in Externally Furnished Components
8. Shortfalls in Externally Performed Tasks
9. Real-time Performance Shortfalls
10. Straining Computer Science Capabilities

- Applying the PERT Technique


A project management method used to analyze and represent the tasks involved in completing a given project.
PERT requires three estimates.
• Most likely time:
the time we would expect the task to take under normal circumstances. We shall identify this by the letter m.
• Optimistic time:
the shortest time in which we could expect to complete the activity, barring outright miracles. We shall use the letter for this.
• Pessimistic time:
the worst possible time, allowing for all reasonable eventualities

- Monte Carlo Simulation


A statistical technique used in project management to model the impact of various uncertainties and risks by generating a large number of
random samples.

- Critical Chain Concepts.


It focuses on identifying and managing the tasks that directly impact project completion, emphasizing resource constraints and the critical
path

Resource Allocation:
- Introduction
A resource is any item or person required for the execution of the project
- Nature of Resources
1. Labor
2. Equipment
3. Materials
4. Space
5. Services
6. Time
7. Money

Concepts Page 14
- Identifying Resource Requirements
- Scheduling Resources
- Creating Critical Paths
- Counting the Cost
- Being Specific
- Publishing the Resource Schedule
- Cost Schedules
- Scheduling Sequence.

Unit 4
Monitoring and Control:
- Introduction
- Creating the Framework

- Collecting the Data


- Review
- Visualizing Progress
- Cost Monitoring
- Earned Value Analysis
- Prioritizing Monitoring
- Getting the Project Back to Target
- Change Control
- Software Configuration Management (SCM).
A set of processes, policies, and tools that organize, control, and track changes to the software during its development and maintenance
lifecycle.

Managing Contracts:
- Introduction
A contract is a legally binding agreement between two or more parties that outlines the terms and conditions under which they agree to fulfill
certain obligations.

- Types of Contract
- Stages in Contract Placement
- Typical Terms of a Contract
1. Definitions
2. Form of Agreement
3. Goods and Services to be Supplied
4. Ownership of Software
5. Environment
6. Customer Commitments

Concepts Page 15
6. Customer Commitments
7. Acceptance Procedures
8. Standards
9. Project and Quality Management
10. Timetable
11. Price & Payment Method
12. Miscellaneous Legal Requirements

- Contract Management
- Acceptance.

Managing People in Software Environments:


- Introduction
- Understanding Behaviour
- Organizational Behaviour: A Background
- Selecting the Right Person for the Job
- Instruction in the Best Methods
- Motivation

- The Oldham–Hackman Job Characteristics Model


• Skill variety – It represents the myriad of alternative skills that the
job holder has the opportunity to exercise.
• Task identity - the intensity to which your work and its
outcomes can be identified as yours
• Task significance -The degree to which your job has an
impact on others.
• Autonomy – It is the freedom to choose how you do your job.
• Feedback - The information you receive about the outcomes
of your work

- Stress
- Stress Management
- Health and Safety
- Some Ethical and Professional Concerns.

Unit 5
Working in Teams:
- Introduction
A group of people who work together toward a common goal
Have a defined membership (either large or small)

- Becoming a Team
a. Define the kind of development team type that fits for your project
i. Generalists
ii. Specialists
iii. Hybrid Team
b. Decide on the software development team size
It affects
Complexity of your project
Budget
Deadline
Available resources
According to Scrum methodology, Optimal team size is between 3 and 9 members with 7 being the perfect fit
c. Establish clear roles and goals

Concepts Page 16
c. Establish clear roles and goals

Product owner
Client with a vision of how the end-product should look, who are the end-users and what it should do.

Project manager
Person responsible for managing and leading the whole team.
Their role is to efficiently optimize the work of the team
Ensure the product is meeting the requirements and identify the goals for the team.

Software architect
A highly skilled software developer that has to think through all the aspects of the project
Responsible for making high level design choices, as well as select technical standards

Developers or product engineers


Team members apply their Teams Working knowledge of engineering and programming languages in software development.

Experience designers
Ensure that the product is easy and pleasant to use.
They conduct user interviews, market research, and design a product with end-users in mind.

QA or tester
Responsible for the Quality Assurance and makes sure the product is ready to use.

Business Analyst
Uncover the ways to improve the product.
They interact with stakeholders to understand their problems

d. Build an agile software development team


Scrum
breaks down a large project into smaller chunks (sprints) and reviews and adapts them .
Sprints can last from a week to a month in duration.
Scrum master makes sure that the team sticks to the agile values, principles and follows the process that the team has
agreed upon

Kanban Board
Work is constantly visually represented on Kanban board to help the team understand at what stage they currently are.
By using visualization, they can work out where are they lacking, what slows them down and find ways to overcome
them.

e. Make communication a priority


Daily standups
Design and code reviews,
Writing documentation
Presentations and some social events.
- Decision Making
Working iteratively, collaboratively, and with transparency.
All stakeholders are updated on assigned tasks at regular intervals, they give feedback,
and then the team knows what needs to be changed or improved
Team discusses issues together and comes up with a solution together.
1. Gather iterative feedback
2. Balance alignment and autonomy
3. Get comfortable with good enough
4. Place time limits on decisions
5. Don’t get sloppy

- Organization and Team Structures


System that outlines how certain activities are directed to achieve the goals of an organization including rules, roles, and responsibilities.

- Coordination Dependencies
The processes and strategies organizations use to help their teams collaborate more effectively on their individual and collective goals
- Dispersed and Virtual Teams
A group of individuals who work together from different geographic locations and rely on communication technology such as email, instant
messaging, and video or voice conferencing services to collaborate

Concepts Page 17
messaging, and video or voice conferencing services to collaborate
- Communication Genres
- Communication Plans
- Leadership.
Directing, motivating and organizing groups of people for performing the set tasks.

Software Quality:
- Introduction
- The Place of Software Quality in Project Planning
- Importance of Software Quality
Every software engineer absolutely must know the seven aspects of software quality:
• Reliability
• Understandability
• Modifiability
• Usability
• Testability
• Portability
• Efficiency

- Defining Software Quality


The ability of the software to function as per user requirement
- Software Quality Models
- ISO 9126
The international standard software quality model that helps in creating a solid framework for assessing software.
- Product and Process Metrics
A measure of software characteristics which are measurable or countable

- Product versus Process Quality Management


- Quality Management Systems
- Process Capability Models
Capability Maturity Model (CMM) is a methodology used to develop, refine maturity of an organization’s software development process
- Techniques to Help Enhance Software Quality
- Testing
Verification:
“Are we building the product, right?”
Validation:
“Are we building the right product?”
Manual Testing:
Manual testing involves testing software manually without automated tools. Testers act as end-users, identifying bugs through stages
like unit, integration, system, and user acceptance testing.
Automation Testing:
Automation testing uses scripts and software to test products, automating manual processes. It ensures quick, repetitive reruns of test
scenarios, improving coverage, accuracy, and saving time and money.
Black Box Testing:
Black-box testing occurs without access to the source code, focusing on the software interface and external behavior.
White-Box Testing:
It involves awareness of internal workings, access to source code, and ensuring internal operations align with specifications.

Concepts Page 18
It involves awareness of internal workings, access to source code, and ensuring internal operations align with specifications.
Gray Box testing
It is a combination of white box and Black box testing.
It can be performed by a person who knew both coding and testing
1. Unit Testing:
A level of the software testing process where individual units/components of a software/system are tested. The purpose is to validate
that each unit of the software performs as designed.
2. Integration Testing:
A level of the software testing process where individual units are combined and tested as a group. The purpose of this level of testing
is to expose faults in the interaction between integrated units.
3. System Testing:
A level of the software testing process where a complete, integrated system/software is tested. The purpose of this test is to evaluate
the system’s compliance with the specified requirements.
4. Acceptance Testing:
A level of the software testing process where a system is tested for acceptability. The purpose of this test is to evaluate the system’s
compliance with the business requirements and assess whether it is acceptable for delivery

- Software Reliability
- Quality Plans.

Project Closeout:
- Introduction
- Reasons for Project Closure
- Project Closure Process
- Performing a Financial Closure
- Project Closeout Report

Concepts Page 19

You might also like