Transcript

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

top related