Four P’s People – software engineers People – software engineers Product – software to be...

37
Four P’s Four P’s People – software engineers People – software engineers Product – software to be Product – software to be produced produced Process – framework for Process – framework for activities activities Project – activity Project – activity coordination, risk management coordination, risk management

Transcript of Four P’s People – software engineers People – software engineers Product – software to be...

Page 1: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Four P’sFour P’s

People – software engineersPeople – software engineers Product – software to be producedProduct – software to be produced Process – framework for activitiesProcess – framework for activities Project – activity coordination, risk Project – activity coordination, risk

managementmanagement

Page 2: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

The PlayersThe Players

Senior managersSenior managers Project managersProject managers Software engineersSoftware engineers CustomersCustomers End-usersEnd-users

Page 3: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Tracking project progressTracking project progress(customer wants to know this (customer wants to know this

too)too) Do you understand customer problem and Do you understand customer problem and

needs?needs? Can you design a system to solve Can you design a system to solve

customer problem or satisfy customer customer problem or satisfy customer needs?needs?

How long will it take you to develop the How long will it take you to develop the system?system?

How much will it cost to develop the How much will it cost to develop the system?system?

Page 4: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Project deliverablesProject deliverables

DocumentsDocuments Demonstrations of functionDemonstrations of function Demonstrations of subsystemsDemonstrations of subsystems Demonstrations of accuracyDemonstrations of accuracy Demonstrations of reliability, Demonstrations of reliability,

performance or securityperformance or security

Page 5: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Milestones and activitiesMilestones and activities Activity: takes place over a period of timeActivity: takes place over a period of time Milestone: completion of an activity -- a Milestone: completion of an activity -- a

particular point in timeparticular point in time Precursor: event or set of events that Precursor: event or set of events that

must occur in order for an activity to startmust occur in order for an activity to start Duration: length of time needed to Duration: length of time needed to

complete an activitycomplete an activity Due date: date by which an activity must Due date: date by which an activity must

be completedbe completed

Page 6: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.1. Phases, steps and activities of building a house.

Phase 1: Landscaping the lot Phase 2: Building the houseStep 1.1:Clearingandgrubbing

Step 2.1:Prepare thesite

Activity 1.1.1: Remove trees Activity 2.1.1: Survey the landActivity 1.1.2: Remove stumps Activity 2.1.2: Request permits

Step 1.2:Seeding theturf

Activity 2.1.3: Excavate for thefoundation

Activity 1.2.1: Aerate the soil Activity 2.1.4: Buy materialsActivity 1.2.2: Disperse the seeds Step 2.2:

Building theexterior

Activity 1.2.3: Water and weed Activity 2.2.1: Lay the foundationStep 1.3:Plantingshrubs andtrees

Activity 2.2.2: Build the outside walls

Activity 1.3.1: Obtain shrubs and trees Activity 2.2.3: Install exterior plumbingActivity 1.3.2: Dig holes Activity 2.2.4: Exterior electrical workActivity 1.3.3: Plant shrubs and trees Activity 2.2.5: Exterior sidingActivity 1.3.4: Anchor the trees andmulch around them

Activity 2.2.6: Paint the exterior

Activity 2.2.7: Install doors and fixturesActivity 2.2.8: Install roof

Step 2.3:Finishingthe interior

Activity 2.3.1: Install the interiorplumbingActivity 2.3.2: Install interior electricalworkActivity 2.3.3: Install wallboardActivity 2.3.4: Paint the interiorActivity 2.3.5: Install floor coveringActivity 2.3.6: Install doors and fixtures

Page 7: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.2. Milestones in building a house.

1.1. Survey complete1.2. Permits issued1.3. Excavation complete1.4. Materials on hand2.1. Foundation laid2.2. Outside walls complete2.3. Exterior plumbing complete2.4. Exterior electrical work complete2.5. Exterior siding complete2.6. Exterior painting complete2.7. Doors and fixtures mounted2.8. Roof complete3.1. Interior plumbing complete3.2. Interior electrical work complete3.3. Wallboard in place3.4. Interior painting complete3.5. Floor covering laid3.6. Doors and fixtures mounted

Page 8: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.3. Activities and time estimates.

Activity Time estimate (in days)Step 1: Prepare the siteActivity 1.1: Survey the land 3Activity 1.2: Request permits 15Activity 1.3: Excavate for the foundation 10Activity 1.4: Buy materials 10Step 2: Building the exteriorActivity 2.1: Lay the foundation 15Activity 2.2: Build the outside walls 20Activity 2.3: Install exterior plumbing 10Activity 2.4: Exterior electrical work 10Activity 2.5: Exterior siding 8Activity 2.6: Paint the exterior 5Activity 2.7: Install doors and fixtures 6Activity 2.8: Install roof 9Step 3: Finishing the interiorActivity 3.1: Install the interior plumbing 12Activity 3.2: Install interior electrical work 15Activity 3.3: Install wallboard 9Activity 3.4: Paint the interior 18Activity 3.5: Install floor covering 11Activity 3.6: Install doors and fixtures 7

Page 9: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Slack or float timeSlack or float time

Slack time = available time - real time

= latest start time - earliest start time

Page 10: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.4. Slack time for project activities.

Activity Earliest start time Latest start time Slack1.1 1 13 121.2 1 1 01.3 16 16 01.4 26 26 02.1 36 36 02.2 51 51 02.3 71 83 122.4 81 93 122.5 91 103 122.6 99 111 122.7 104 119 152.8 104 116 123.1 71 71 03.2 83 83 03.3 98 98 03.4 107 107 03.5 107 107 03.6 118 118 0

Finish 124 124 0

Page 11: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Gantt ChartGantt Chart

Page 12: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Gantt ChartGantt Chart

Page 13: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Project personnelProject personnel Key activities requiring personnel:Key activities requiring personnel:

requirements analysisrequirements analysis system designsystem design program designprogram design program implementationprogram implementation testingtesting trainingtraining maintenance maintenance quality assurancequality assurance

Page 14: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Choosing personnelChoosing personnel ability to perform workability to perform work interest in workinterest in work experience withexperience with

similar applicationssimilar applications similar tools or languagessimilar tools or languages similar techniquessimilar techniques similar development environmentssimilar development environments

trainingtraining ability to communicate with othersability to communicate with others ability to share responsibilityability to share responsibility management skillsmanagement skills

Page 15: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Work stylesWork styles

Extroverts: tell their thoughtsExtroverts: tell their thoughts Introverts: ask for suggestionsIntroverts: ask for suggestions Intuitives: base decisions on feelingsIntuitives: base decisions on feelings Rationals: base decisions on facts, Rationals: base decisions on facts,

optionsoptions

Page 16: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Group ZigzagGroup Zigzag Sensing (gathering data)Sensing (gathering data) Ntuition (synthesis from facts and data)Ntuition (synthesis from facts and data) Thinking (making decision / doing it)Thinking (making decision / doing it) Feeling (evaluating)Feeling (evaluating)- Research by Doran, Daigle, and PardueResearch by Doran, Daigle, and Pardue- What familiar strategy do you see in What familiar strategy do you see in

this zigzag?this zigzag?- What conclusions do you draw about What conclusions do you draw about

personalities?personalities?

Page 17: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Project organizationProject organization

Depends onDepends on backgrounds and work styles of team backgrounds and work styles of team

membersmembers number of people on teamnumber of people on team management styles of customers and management styles of customers and

developersdevelopers

Page 18: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

MOI model of leadership - MOI model of leadership - WeinbergWeinberg

Motivation – encourage programmers Motivation – encourage programmers to give their bestto give their best

Organization – mold existing Organization – mold existing processes or create new processes to processes or create new processes to achieve efficient resultsachieve efficient results

Ideas/Innovation – encourages Ideas/Innovation – encourages appropriate level of creativity for appropriate level of creativity for each projecteach project

Page 19: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Project manager Project manager characteristics - Edgemoncharacteristics - Edgemon

Problem-solver – diagnosis key issues Problem-solver – diagnosis key issues – mentor– mentor

Managerial identity – takes chargeManagerial identity – takes charge Achievement – recognizes and Achievement – recognizes and

rewardsrewards Influence/team building – reads Influence/team building – reads

people, diffuses problemspeople, diffuses problems

Page 20: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Team paradigms - ManteiTeam paradigms - Mantei

Democratic decentralizedDemocratic decentralized Controlled decentralizedControlled decentralized Controlled centralizedControlled centralized

---------------------------------------------------------------------------------------------------------- Examples:Examples:

Chief programmer team - IBMChief programmer team - IBM Egoless approach - WeinbergEgoless approach - Weinberg

Page 21: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.5. Comparison of organizational structures.

Highly structured Loosely structuredHigh certainty UncertaintyRepetition New techniques or technologyLarge projects Small projects

Page 22: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Digital Alpha AXP: Digital Alpha AXP: Enrollment management Enrollment management

modelmodel Establish an appropriately large shared Establish an appropriately large shared

visionvision Delegate completely and elicit specific Delegate completely and elicit specific

commitments from participantscommitments from participants Inspect vigorously and provide Inspect vigorously and provide

supportive feedbacksupportive feedback Acknowledge every advance and learn Acknowledge every advance and learn

as the program progressesas the program progresses

Page 23: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Enrollment Management Enrollment Management ModelModel

Page 24: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Three strategies for risk Three strategies for risk reductionreduction

avoiding the risk: change requirements avoiding the risk: change requirements for performance or functionalityfor performance or functionality

transferring the risk: transfer to other transferring the risk: transfer to other system, or buy insurancesystem, or buy insurance

assuming the risk: accept and control itassuming the risk: accept and control it

risk leverage = difference in risk exposure risk leverage = difference in risk exposure divided by cost of reducing the riskdivided by cost of reducing the risk

Page 25: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Boehm’s top ten risk itemsBoehm’s top ten risk items Personnel shortfallsPersonnel shortfalls Unrealistic schedules and budgetsUnrealistic schedules and budgets Developing the wrong functionsDeveloping the wrong functions Developing the wrong user interfacesDeveloping the wrong user interfaces Gold-platingGold-plating Continuing stream of requirements changesContinuing stream of requirements changes Shortfalls in externally-performed tasksShortfalls in externally-performed tasks Shortfalls in externally-furnished componentsShortfalls in externally-furnished components Real-time performance shortfallsReal-time performance shortfalls Straining computer science capabilitiesStraining computer science capabilities

Page 26: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Risk Management TableRisk Management Table

RiskRisk ProbabilitProbabilityy

ImpacImpactt

ControlControl

Quality will Quality will suffer due suffer due to to inefficientlinefficiently y experienceexperienced staffd staff

40%40% 88 Provide cross-Provide cross-training on training on slack Fridaysslack Fridays

Page 27: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Risk Management TableRisk Management Table

Page 28: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Project plan contentsProject plan contents project scopeproject scope project scheduleproject schedule project team project team

organizationorganization technical description technical description

of systemof system project standards and project standards and

proceduresprocedures quality assurance planquality assurance plan configuration configuration

management planmanagement plan

documentation plandocumentation plan data management data management

planplan resource management resource management

planplan test plantest plan training plantraining plan security plansecurity plan risk management planrisk management plan maintenance planmaintenance plan

Page 29: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Effort estimationEffort estimation Expert judgmentExpert judgment

analogyanalogy proportionproportion Delphi techniqueDelphi technique Wolverton modelWolverton model

Algorithmic methods: Algorithmic methods: EE = ( = (aa + + bSbScc) ) mm((XX)) Walston and Felix model: Walston and Felix model: EE = 5.25 = 5.25S S 0.910.91

Bailey and Basili model: Bailey and Basili model: EE = 5.5 + 0.73 = 5.5 + 0.73SS1.161.16

Page 30: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.6. Wolverton model cost matrix.

DifficultyType of software OE OM OH NE NM NHControl 21 27 30 33 40 49Input/output 17 24 27 28 35 43Pre/post processor 16 23 26 28 34 42Algorithm 15 20 22 25 30 35Data management 24 31 35 37 46 57Time-critical 75 75 75 75 75 75

Page 31: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.7. Walston and Felix model productivity factors.

1. Customer interface complexity 16. Use of design and code inspections2. User participation in requirementsdefinition

17. Use of top-down development

3. Customer-originated program designchanges

18. Use of a chief programmer team

4. Customer experience with theapplication area

19. Overall complexity of code

5. Overall personnel experience 20. Complexity of application processing6. Percentage of developmentprogrammers who participated in thedesign of functional specifications

21. Complexity of program flow

7. Previous experience with theoperational computer

22. Overall constraints on program’sdesign

8. Previous experience with theprogramming language

23. Design constraints on the program’smain storage

9. Previous experience with applicationsof similar size and complexity

24. Design constraints on the program’stiming

10. Ratio of average staff size to projectduration (people per month)

25. Code for real-time or interactiveoperation or for execution under severetime constraints

11. Hardware under concurrentdevelopment

26. Percentage of code for delivery

12. Access to development computer openunder special request

27. Code classified as nonmathematicalapplication and input/output formattingprograms

13. Access to development computerclosed

28. Number of classes of items in thedatabase per 1000 lines of code

14. Classified security environment forcomputer and at least 25% of programsand data

29. Number of pages of delivereddocumentation per 1000 lines of code

15. Use of structured programming

Page 32: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Bailey-Basili techniqueBailey-Basili technique• Minimize standard error estimate to produce an equation such as:

E = 5.5 + 0.73S1.16

• Adjust initial estimate based on the ratio of errors.

If R is the ratio between the actual effort, E, and the predicted effort, E’, then the effort adjustment is defined as

ERadj = R – 1 if R > 1

= 1 – 1/R if R < 1

• Then adjust the initial effort estimate E:

Eadj = (1 + ERadj)E if R > 1

= E/(1 + ERadj) if R < 1

Page 33: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Table 3.8. Bailey-Basili effort modifiers.

Total methodology (METH) Cumulative complexity(CPLX)

Cumulative experience(EXP)

Tree charts Customer interfacecomplexity

Programmer qualifications

Top-down design Application complexity Programmer machineexperience

Formal documentation Program flow complexity Programmer languageexperience

Chief programmer teams Internal communicationcomplexity

Programmer applicationexperience

Formal training Database complexity Team experienceFormal test plans External communication

complexityDesign formalisms Customer-initiated

program design changesCode readingUnit development folders

Page 34: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Risk management Risk management requirementsrequirements

Risk impact: the loss associated with the Risk impact: the loss associated with the eventevent

Risk probability: the likelihood that the Risk probability: the likelihood that the event will occurevent will occur

Risk control: the degree to which we can Risk control: the degree to which we can change the outcomechange the outcome

Risk exposure = (risk probability) x (risk Risk exposure = (risk probability) x (risk impact)impact)

Page 35: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Anchoring milestonesAnchoring milestones Objectives: Why is the system being developed?Objectives: Why is the system being developed? Milestones and schedules: What will be done by Milestones and schedules: What will be done by

when?when? Responsibilities: Who is responsible for a function?Responsibilities: Who is responsible for a function? Approach: How will the job be done, technically Approach: How will the job be done, technically

and managerially?and managerially? Resources: How much of each resource is needed?Resources: How much of each resource is needed? Feasibility: Can this be done, and is there a good Feasibility: Can this be done, and is there a good

business reason for doing it?business reason for doing it?

Page 36: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Make versus Buy Make versus Buy

Page 37: Four P’s People – software engineers People – software engineers Product – software to be produced Product – software to be produced Process – framework.

Slides are based (sometimes solely, Slides are based (sometimes solely, sometimes partially, and sometimes sometimes partially, and sometimes not-at-all) on copyrighted Prentice not-at-all) on copyrighted Prentice Hall materials associated with Hall materials associated with Software Engineering Theory and Software Engineering Theory and Practice by Shari Lawrence Pfleeger.Practice by Shari Lawrence Pfleeger.