FSE Chapter 5
FSE Chapter 5
By: M.G
CONTENTS
3
What is software project management? …
Project is not routine activity or day-to-day operations.
Project comes with a start time and end time.
Project ends when its goal is achieved hence it is a temporary phase in the
lifetime of an organization.
Project needs adequate resources in terms of time, manpower, finance,
material and knowledge-bank.
A Software Project is the complete procedure of software
development from requirement gathering to testing and maintenance,
carried out according to the execution methodologies, in a specified
period of time to achieve intended software product.
4
What is software project management? …
Software Project Management (SPM) is a proper way of planning and
leading software projects.
It is a part of project management in which software projects are
planned, implemented, monitored and controlled.
5
Need of Software Project Management
Software is a non-physical product.
Software development is a new stream in business and there is very little
experience in building software products.
Most of the software products are made to fit client’s requirements.
The most important is that the basic technology changes and advances so
frequently and rapidly that experience of one product may not be applied to
the other one.
Such type of business and environmental constraints increase risk in software
development hence it is essential to manage software projects efficiently.
6
Need of Software Project Management …
It is necessary for an organization to deliver quality product, keeping
the cost within client’s budget constrain and deliver the project as per
scheduled.
Hence in order, software project management is necessary to
incorporate user requirements along with budget and time constraints.
7
Need of Software Project Management …
The image on slide 7 shows triple constraints for software projects.
It is an essential part of software organization to deliver quality product,
keeping the cost within client’s budget constrain and deliver the project
as per scheduled.
There are several factors, both internal and external, which may impact
this triple constrain triangle.
Any of three factors can severely impact the other two.
Therefore, software project management is essential to incorporate user
requirements along with budget and time constraints.
8
Software Project Manager
A software project manager is a person who undertakes the responsibility of
executing the software project.
Software project manager is thoroughly aware of all the phases of SDLC that
the software would go through.
Project manager may never directly involved in producing the end product but
he controls and manages the activities involved in production.
A project manager closely monitors the development process, prepares and
executes various plans, arranges necessary and adequate resources, maintains
communication among all team members in order to address issues of cost,
budget, resources, time, quality and customer satisfaction.
9
Responsibility of Software Project Managers
Managing People:
Act as project leader
Liaison with stakeholders
Managing human resources
Setting up reporting hierarchy etc.
Managing Project:
Defining and setting up project scope
Managing project management activities
Monitoring progress and performance
10
Responsibility of Software Project Managers …
Risk analysis at every phase
Take necessary step to avoid or come out of problems
Act as project spokesperson
11
Software Management Activities
Software project management comprises of a number of activities,
which contains planning of project, deciding scope of software
product, estimation of cost in various terms, scheduling of tasks and
events, and resource management.
Project management activities may include:
Project Planning
Scope Management
Project Estimation
12
Project Planning
Software project planning is task, which is performed before the
production of software actually starts.
It is there for the software production but involves no concrete
activity that has any direction connection with software production;
rather it is a set of multiple processes, which facilitates software
production.
Project planning may include the following:
Scope Management
Project Estimation
13
Scope Management
It defines the scope of project; this includes all the activities; process
need to be done in order to make a deliverable software product.
Scope management is essential because it creates boundaries of the
project by clearly defining what would be done in the project and what
would not be done.
This makes project to contain limited and quantifiable tasks, which
can easily be documented and in turn avoids cost and time overrun.
14
Scope Management …
During Project Scope management, it is necessary to:
Define the scope
Decide its verification and control
Divide the project into various smaller parts for ease of management.
Verify the scope
Control the scope by incorporating changes to the scope
15
Project Estimation
For an effective management accurate estimation of various measures
is a must.
With correct estimation managers can manage and control the project
more efficiently and effectively.
Project estimation may involve the following:
Software size estimation: Software size may be estimated either in terms of
KLOC (Kilo Line of Code) or by calculating number of function points in the
software. Lines of code depend upon coding practices and Function points
vary according to the user or software requirement.
16
Project Estimation …
Effort estimation: The managers estimate efforts in terms of personnel requirement
and man-hour required to produce the software. For effort estimation software size
should be known. This can either be derived by managers’ experience,
organization’s historical data or software size can be converted into efforts by using
some standard formulae.
Time estimation: Once size and efforts are estimated, the time required to produce
the software can be estimated. Efforts required is segregated into sub categories as
per the requirement specifications and interdependency of various components of
software. Software tasks are divided into smaller tasks, activities or events by Work
Breakthrough Structure (WBS). The tasks are scheduled on day-to-day basis or in
calendar months. The sum of time required to complete all tasks in hours or days is
the total time invested to complete the project.
17
Project Estimation …
Cost estimation: This might be considered as the most difficult of all because it
depends on more elements than any of the previous ones. For estimating
project cost, it is required to consider:
Size of software
Software quality
Hardware
Additional software or tools, licenses etc.
Skilled personnel with task-specific skills
Travel involved
Communication
Training and support
18
Software Project Management types
Software Project Management consists of several different type of
managements:
Conflict Management: Conflict management is the process to restrict the
negative features of conflict while increasing the positive features of conflict.
The goal of conflict management is to improve learning and group results
including efficacy or performance in an organizational setting. Properly
managed conflict can enhance group results.
Risk Management: Risk management is the analysis and identification of risks
that is followed by synchronized and economical implementation of resources
to minimize, operate and control the possibility or effect of unfortunate events
or to maximize the realization of opportunities.
19
Software Project Management types …
Requirement Management: It is the process of analyzing, prioritizing, tracing
and documenting on requirements and then supervising change and
communicating to pertinent stakeholders. It is a continuous process during a
project.
Change Management: Change management is a systematic approach for
dealing with the transition or transformation of an organization’s goals,
processes or technologies. The purpose of change management is to execute
strategies for effecting change, controlling change and helping people to adapt
to change.
20
Software Project Management types …
Software Configuration Management: Software configuration management is
the process of controlling and tracing changes in the software, part of the
larger cross-disciplinary field of configuration management. Software
configuration management include revision control and the inauguration of
baselines.
Release Management: Release Management is the task of planning,
controlling and scheduling the build in deploying releases. Release
management ensures that organization delivers new and enhanced services
required by the customer, while protecting the integrity of existing services.
21
The organization of SPMP document
Software project manager prepare a document on the basis of decision
finalized during the project planning.
This document is known as Software Project Management Plan
Document or SPMP document.
SPMP document is a well-organized document that contains the
project planning in detail.
It would have details about project objective, project estimates, project
schedules, project resources, project staffing, risk management plans,
project monitoring, project control and other miscellaneous activities.
22
The organization of SPMP document …
A SPMP document is prepared and organized in structure as shown
below:
Introduction:
Objectives
Functions
Performance issues
Constraints
Project estimates:
Historical data used
Estimation techniques details
Cost, duration, effort estimates
23
The organization of SPMP document …
Project Schedule:
Work breakdown
Gantt and PERT chart
Project resource:
Manpower
Hardware and Software
Highly skilled professionals
Staff organization:
Team formation and structure
Management reporting
24
The organization of SPMP document …
Risk Management:
Risk analysis
Risk identification
Risk abatement methods
Project tracking
Project Control
Miscellaneous activities
All the above activities are documented in SPMP document by project
manager.
25
Project Size Estimation Metrics
The project size is a measure of the problem complexity in terms of
the effort and time required to develop the product.
Currently two metrics are popularly being used widely to estimate
size: lines of code (LOC) and function point (FP).
We discussed various parameters involving project estimation such as
size, effort, time and cost. Project manager can estimate the listed
factors using two broadly recognized techniques:
Decomposition Technique
Empirical Estimation Technique
26
Decomposition Technique
This technique assumes the software as a product of various
compositions.
There are two main models:
Line of Code: Estimation is done on behalf of number of line of codes in the
software product.
Function Points: Estimation is done on behalf of number of function points in
the software product.
27
Empirical Estimation Technique
This technique uses empirically derived formulae to make estimation.
These formulae are based on LOC or FPs.
Putnam Model:
This model is made by Lawrence H. Putnam, which is based on Norden’s
frequency distribution (Rayleigh curve). Putnam model maps time and efforts
required with software size.
COCOMO:
COCOMO stands for COnstructive COst MOdel, developed by Barry W. Boehm.
It divides the software product into three categories of software: organic, semi-
detached and embedded.
28
Scheduling, Organization and Team Structures
Project Scheduling in a project refers to roadmap of all activities to be
done with specified order and within time slot allotted to each activity.
Project managers tend to define various tasks, and project milestones
and arrange them keeping various factors in mind.
They look for tasks lie in critical path in the schedule, which are
necessary to complete in specific manner (because of task
interdependency) and strictly within the time allocated.
Arrangement of tasks which lies out of critical path are less likely to
impact over all schedule of the project.
29
Scheduling, Organization and Team Structures …
30
Hierarchical team organization
31
Hierarchical team organization …
32
Hierarchical team organization …
34
Chief-programmer team organization …
Specialists:
These people select the implementation language, implement individual
system components and employ software tools and carry out tasks.
35
Chief-programmer team organization …
Team organization is limited to only small team and small team cannot handle
every project.
Effectiveness of team is very sensitive to Chief programmer’s technical and
managerial activities.
37
Matrix Team Organization
In matrix team organization, people are divided into specialist groups.
Each group has a manager. Example of Metric team organization is as
follows:
Egoless Team Organization
Democratic Team Organization
Advantages of Democratic Team Organization:
Each member can contribute to decisions.
Members can learn from each other.
Improved job satisfaction.
38
Matrix Team Organization …
39
Egoless Team Organization
It is quite similar to the egoless team organization, but one member is
the team leader with some responsibilities:
Coordination
Final decisions, when consensus cannot be reached.
41
Thank you!
Any questions?
Good day!