S ft r Pr j t Software Project Management Manage ent R. Akerkar TMRF K lh I di TMRF , Kolhapur, India 1 R. Akerkar - SPM
Nov 14, 2014
S ft r Pr j tSoftware Project ManagementManage ent
R. AkerkarTMRF K lh I diTMRF, Kolhapur, India
1R. Akerkar - SPM
IntroductionIntroductionMany software projects fail:Many software projects fail: due to faulty project
management practices: It is important to learn different It is important to learn different
aspects of software project managementmanagement.
2R. Akerkar - SPM
IntroductionGoal of software projectGoal of software project
management:g enable a group of engineers to work
efficiently towards successfulefficiently towards successful completion of a software project.
3R. Akerkar - SPM
Responsibility of project managersResponsibility of project managers
Project proposal writing Project proposal writing, Project cost estimation, Scheduling, g, Project staffing, Project monitoring and control, Software configuration management, Risk management,
M i l t iti d t ti t Managerial report writing and presentations, etc.
4R. Akerkar - SPM
IntroductionIntroductionA project manager’s activitiesA project manager s activities
are varied.can be broadly classified into:
project planning project planning, project monitoring and control
activities.
5R. Akerkar - SPM
Project Planningj g
Once a project is found to beOnce a project is found to be feasible, project managers undertake project
planning.p g
6R. Akerkar - SPM
Project Planning Activitiesj g
Estimation: Estimation: Effort, cost, resource, and project duration
Project scheduling:j g Staff organization: staffing plansRi k h dli Risk handling: identification, analysis, and abatement procedures
Miscellaneous plans: Miscellaneous plans: quality assurance plan, configuration management
plan, etc.
7R. Akerkar - SPM
Project planningj p g
Requires utmost care and attention --- Requires utmost care and attention commitments to unrealistic time and resource estimates result in: irritating delays. customer dissatisfaction cus o e d ssa s ac o adverse affect on team morale
poor quality work
project failure.
8R. Akerkar - SPM
Sliding Window Planningg g
Involves project planning over Involves project planning over several stages: protects managers from making big
commitments too early.yMore information becomes available
as project progressesas project progresses. Facilitates accurate planning
9R. Akerkar - SPM
SPMP Document
After planning is complete:After planning is complete: Document the plans: p in a Software Project
Management Plan(SPMP)Management Plan(SPMP) document.
10R. Akerkar - SPM
Organization of SPMP Documentg
Introduction (Objectives Major Functions Performance Issues Management and Introduction (Objectives,Major Functions,Performance Issues,Management and Technical Constraints)
Project Estimates (Historical Data,Estimation Techniques,Effort, Cost, and Project Duration Estimates))
Project Resources Plan (People,Hardware and Software,Special Resources)
Schedules Schedules (Work Breakdown Structure,Task Network, Gantt Chart Representation,PERT Chart Representation)
Risk Management Plan (Risk Analysis,Risk Identification,Risk Estimation, Abatement Procedures)Abatement Procedures)
Project Tracking and Control Plan Miscellaneous Plans(Process Tailoring Quality Assurance) Miscellaneous Plans(Process Tailoring,Quality Assurance)
11R. Akerkar - SPM
Software Cost Estimation
Determine size of the product Determine size of the product. From the size estimate,
determine the effort needed determine the effort needed.
From the effort estimate, determine project duration, and cost.
12R. Akerkar - SPM
Software Cost Estimation
Effort CostEffort Estimation
Cost Estimation
Size Estimation
Staffing Estimation
Duration Estimation Scheduling
13R. Akerkar - SPM
Organization Structureg
Functional Organization: Functional Organization: Engineers are organized into functional
groups e ggroups, e.g. specification, design, coding, testing,
maintenance etcmaintenance, etc. Engineers from functional groups get
assigned to different projectsassigned to different projects
14R. Akerkar - SPM
Advantages of Functional OrganizationOrganization
Specialization Specialization Ease of staffing Good documentation is produced different phases are carried out by different d e e t p ases a e ca ed out by d e e t
teams of engineers.
Helps identify errors earlier Helps identify errors earlier.
15R. Akerkar - SPM
Project Organizationj g
Engineers get assigned to a project for Engineers get assigned to a project for the entire duration of the project Same set of engineers carry out all the Same set of engineers carry out all the
phases Advantages: Advantages: Engineers save time on learning details of
every projectevery project. Leads to job rotation
16R. Akerkar - SPM
Team Structure
Problems of different complexities Problems of different complexities and sizes require different team structures:Chief-programmer teamChief programmer teamDemocratic team
Mi d i tiMixed organization
17R. Akerkar - SPM
Democratic Teams
Suitable for: Suitable for: small projects requiring less than five or six
iengineers research-oriented projects
A manager provides administrative leadership:p at different times different members of the
group provide technical leadership.g p p p
18R. Akerkar - SPM
Democratic Teams
Democratic organization provides Democratic organization provides higher morale and job satisfaction to the engineers therefore leads to less employee turnover therefore leads to less employee turnover.
Suitable for less understood problems, a group of engineers can invent better solutions a group of engineers can invent better solutions than a single individual.
19R. Akerkar - SPM
Democratic Teams
Di d tDisadvantage: team members may waste a lot team members may waste a lot
time arguing about trivial points: b f th it i th absence of any authority in the
team.
20R. Akerkar - SPM
Chief Programmer Teamg
A senior engineer providesA senior engineer provides technical leadership: partitions the task among the team
members. verifies and integrates the products
developed by the membersdeveloped by the members.
21R. Akerkar - SPM
Chief Programmer Teamg
Works well when Works well when the task is well understood also within the intellectual grasp of a single also within the intellectual grasp of a single
individual, importance of early completion outweighs
other factors team morale, personal development, etc.
22R. Akerkar - SPM
Chief Programmer Teamg
Chief programmer team is subject to Chief programmer team is subject to single point failure:
t h ibilit d th it i too much responsibility and authority is assigned to the chief programmer.
23R. Akerkar - SPM
Team Organizationg
Chief Programmer teamDemocratic Team
24R. Akerkar - SPM
Mixed team organizationg
25R. Akerkar - SPM
StaffingStaffing
Project Managers usually Project Managers usually take responsibility for h i th i tchoosing their team:
need to identify and select ygood software engineers for the success of the projectthe success of the project.
26R. Akerkar - SPM
StaffingStaffing A common misconception:p one software engineer is as productive as
another:E i t l Experiments reveal: a large variation in productivity between
the worst and best in a scale of 1 to 10the worst and best in a scale of 1 to 10. Worst engineers even help reduce the
overall productivity of the team in effect exhibit negative productivity.
27R. Akerkar - SPM
Who is a Good Software Engineer?
Good programming abilitiesG d k l d f h j (D i ) Good knowledge of the project areas (Domain)
Exposure to Systematic Techniques Fundamental Knowledge of Computer Science Ability to work in a team Intelligence Good communication skills:
Oral Written Interpersonal
High Motivation High Motivation
28R. Akerkar - SPM
Who is a Good Software Engineer? (cont.)
Studies show: these attributes vary as much as
1:30 for poor and bright candidates. Technical knowledge in the area of the
project (domain knowledge) is an important factor, determines: productivity of an individual quality of the product he develops.
29R. Akerkar - SPM
Who is a Good Software Engineer? (cont.)
A programmer having thorough A programmer having thorough knowledge of database applications (e g MIS):applications (e.g MIS): may turn out to be a poor data
communication engineercommunication engineer.
30R. Akerkar - SPM
SchedulingScheduling Scheduling is an important activity for the g y
project managers. To determine project schedule:
Identify tasks needed to complete the project. Determine the dependency among different tasks. Determine the most likely estimates for the duration Determine the most likely estimates for the duration
of the identified tasks. Plan the starting and ending dates for various
t ktasks.
31R. Akerkar - SPM
Work Breakdown Structure
Work Breakdown Structure (WBS) provides a notation f i kfor representing task structure: Activities are represented as nodes of a tree. The root of the tree is labelled by the problem name. Each task is broken down into smaller tasks and
represented as children nodes. It is not useful to subdivide tasks into units which take It is not useful to subdivide tasks into units which take
less than a week or two to execute. Finer subdivisions mean that a large amount of time
must be spent on estimating and chart revision.must be spent on estimating and chart revision.
32R. Akerkar - SPM
Work Breakdown Structure
Compiler Projectp j
DesignRequirements Code Test Write Manual
Lexer Parser Code Generator
33R. Akerkar - SPM
Activity Networks
WBS structure can be refined into an activity network representation: Network of boxes and arrows
h diff t t k ki j t shows different tasks making up a project, represents the ordering among the tasks.
It is important to realize that developing It is important to realize that developing WBS and activity network requires a thorough understanding of the requires a thorough understanding of the
tasks involved.
34R. Akerkar - SPM
Activity Network
Code Lexer
Code ParserDesign
Requirements TestCode Code Generator
Write Manual
35R. Akerkar - SPM
Risk Management
A risk is any unfavourable event or circumstance: which might hamper successful or timely
completion of a project.p p j Risk management:
concerned with the reduction of the impact of risks. Risk management consists of three activities: Risk management consists of three activities:
risk identification, risk assessment, and
i k t i t risk containment.
36R. Akerkar - SPM
Risk identification
To be able to identify various risks: y we must categorize risks into different
classes. Three main categories of risks can
affect a software project: project risks technical risks business risks
37R. Akerkar - SPM
Project Risksj
Project risks associated with:Project risks associated with: budget, schedule, personnel, p , resource, and
t bl customer problems.
38R. Akerkar - SPM
Technical Risks
Technical risks concern: requirements specification
(e.g ambiguous, incomplete, changing specifications)design problems design problems,
implementation problems, interfacing problems, g p , testing, and maintenance problems. technical uncertainty, and technical obsolescence
are technical risk factors tooare technical risk factors too.
39R. Akerkar - SPM
Business Risks
Business Risks include: building an excellent product that no one wants, losing budgetary or personnel commitments, etc. I i d id h “ di“ di It is a good idea to have a “company disaster “company disaster list”, list”, a list of all bad things that have happened in the a list of all bad things that have happened in the
past project managers can jog their mind to see which
it th i j t i l bl titems their project is vulnerable to.
40R. Akerkar - SPM
Risk assessment
Objective of risk assessment is to jprioritize the risks: Likelihood of a risk being real.
C f th bl i t d Consequence of the problems associated with that risk.
Prioritization helps in handling the mostPrioritization helps in handling the most damaging risks first. Priority of a risk is the product of the likelihood of
the risk and the consequences of the problemsthe risk and the consequences of the problems associated with that risk.
41R. Akerkar - SPM
Risk Handlingg
Three main strategies for risk handling: Avoid the risk: e.g. change the requirements for
performance or functionality. Transfer the risk: allocate risks to third party Transfer the risk: allocate risks to third party
or buy insurance to cover any financial loss should the risk become a reality.
Contingency planning: Prepare contingency pans Contingency planning: Prepare contingency pans to minimize the impact of the risk.
42R. Akerkar - SPM