four p’s people – software engineers people – software engineers product – software to be...
TRANSCRIPT
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
The PlayersThe Players
Senior managersSenior managers Project managersProject managers Software engineersSoftware engineers CustomersCustomers End-usersEnd-users
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?
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
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
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
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
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
Slack or float timeSlack or float time
Slack time = available time - real time
= latest start time - earliest start time
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
Gantt ChartGantt Chart
Gantt ChartGantt Chart
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
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
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
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?
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
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
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
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
Table 3.5. Comparison of organizational structures.
Highly structured Loosely structuredHigh certainty UncertaintyRepetition New techniques or technologyLarge projects Small projects
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
Enrollment Management Enrollment Management ModelModel
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
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
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
Risk Management TableRisk Management Table
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
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
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
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
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
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
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)
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?
Make versus Buy Make versus Buy
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.