Lifecycle Planning
Transcript of Lifecycle Planning
![Page 1: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/1.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 1
Lifecycle Planning
Rapid Development & Software Project Survival Guide
Steve McConnellDave Root
(Developed with Mel Rosso-Llopart)
![Page 2: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/2.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 2
TopicsWho am I to be talking to you?Lifecycle DefinedBenefits of lifecycle modelsCover eleven different models
Benefits and disadvantagesChoosing an appropriate model
Filling in a comparison table between the models
We have a lot to cover, it will go fast
![Page 3: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/3.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 3
My Background(my “I love me” slides)
Teaching at CMU for 7 years
3 yrs Leadership/ethics4 yrs SE
Retired U.S. Navy OfficerAviatorTop Gun graduateProjects
![Page 4: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/4.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 4
BackgroundDegrees in CS (Berkeley), Education (Chapman) and IT (CMU)
CurrentlyFull time LecturerAssociate Director of DEAcademic interest in
distributed learningagile processes
Other interestsMotorcycles, flying, Tennis, retiring….
![Page 5: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/5.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 5
Lifecycle DefinedNote: You must define terms
“Every software-development effort goes through a ‘lifecycle,’ which consists of all the activities between the time that version 1.0 of a system begins life as a gleam in someone’s eye and the time that version 6.74b finally takes its last breath on the last customers machine.”
Steve McConnell, Rapid Development, 1996
![Page 6: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/6.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 6
“The goal is often not to achieve what you said you would do at the beginning of the project, but to achieve the maximum possible within the time and resources available.”
Roger Sherman, Microsoft, 1995
![Page 7: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/7.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 7
What is a Life Cycle?
Websters (1892):“The series of stages in form and functional activity through which an organism passes
between successive recurrences of a specified primary stage.”
Reifer (1997): (product)“Period of time that begins when a software
product is conceived and ends when the product is retired from use.”
![Page 8: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/8.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 8
What is a Life Cycle?Tony Lattanze
The software lifecycle is the cradle to grave existence of a software product or software intensive system
includes initial development, repairs, and enhancement, and decommission
Management of the entire lifecycle of a software intensive system requires a deeper knowledge than basic in-the-small development intuition and experience
![Page 9: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/9.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 9
More on What…
Lifecycle models attempt to generalize the software development process into steps with associated activities and/or artifacts.
They model how a project is planned, controlled, and monitored from inception to completion.
Lifecycle models provide a starting point for defining what we will do.
![Page 10: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/10.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 10
So…What is a Process?(remember this for the process lectures)
A process is a sequence of steps performed for a given purpose.
Websters:“a series of actions or operations
conducing to an end.”
The concept of software process is rarely presented in undergraduate
education.
![Page 11: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/11.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 11
Process = LifecycleSoftware process is not the same as life cycle models.
process refers to the specific steps used in a specific organization to build systemsindicates the specific activities that must be undertaken and artifacts that must be producedprocess definitions include more detail than provided lifecycle models
Software processes are sometimes defined in the context of a lifecycle model.
![Page 12: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/12.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 12
Benefits of a Lifecycle ModelREPEATABLE!
Streamline projectImprove development speedImprove qualityImprove project tracking and controlMinimize overheadMinimize risk exposureImprove client relations
![Page 13: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/13.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 13
Life Cycles
IncrementalSpiralDesign to ScheduleEvolutionary deliveryCOTS
Ad HocClassic (waterfall)Prototype
Throw away and evolutionary
RAD
This list is not all inclusive… there are more …. maybe
![Page 14: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/14.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 14
Look at with respect to:
Scope, time, resources, qualityStakeholdersRequirements volatilityEnvironments
Business / marketCulturesMoral, legal constraints
And More…
![Page 15: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/15.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 15
Ad Hoc“Hobbyist”
Legacy
Code – Test – Code – Test………Becomes a mess, chuck it, start over
Design (high level) – Code – Test – Code –Test…..
(Reality was Code - Test – Code – Test –Document the resulting design)
Maintenance Phase: Test – Code - Test
![Page 16: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/16.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 16
Waterfall Modelalso called traditional
First proposed in 1970 by W.W. RoyceDevelopment flows steadily through:
requirements analysis, design implementation, testing, integration, and maintenance.
Note: Royce advocated iterations of waterfalls adapting the results of the precedent waterfall.
![Page 17: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/17.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 17
Waterfall ModelTechnology had some influence on the viability of the waterfall model.
slow code, compile, and debug cyclesReflected the way that other engineering disciplines build things.Formed the basis of the earliest software process frameworks Waterfall is still used today (but no one will admit it)
![Page 18: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/18.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 18
Waterfall (linear) (Classic) Model Intent
Product Idea
Analysis
Design
Implementation
Testing Product Life
Benefits:
•Logical Sequence
•Highly Scalable
•Artifact/document driven
•Set milestones / review points
![Page 19: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/19.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 19
Waterfall Model: Reality
Product Idea
Analysis
Design
Implementation
Testing Product Life
![Page 20: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/20.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 20
WaterfallProblems
Need for “big specification” (requirements)InflexibleIncreasing use of resources?
OopsGo back to a previous stepProgressively more costly
No results till endPossible cost of cascading bugsImportance of secondary artifactsWhere appropriate?
![Page 21: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/21.jpg)
©David Root, 2005, all rights reserved
From Chris Kemerer……Reality of Waterfall
1. Enthusiasm
2. Disillusionment
3. Panic & Hysteria
4. Search for the Guilty
5. Punishment of the Innocent6. Praise & Honors for the non-
participants
![Page 22: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/22.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 22
Throw away PrototypeProof of concept – It can be doneEnd point unknown!Goal is domain knowledge increaseDisadvantages
Seen as project completionBut not robust
Quality
![Page 23: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/23.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 23
Evolutionary Prototype
Keep somethingDifferent than incremental?The evolutionary development model can be distinguished from the prototyping model in that
a final product is typically specifiedthe product features are evolved overtime to some predetermined final state
![Page 24: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/24.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 24
Evolutionary Prototyping
Develop system concept as the project progressesBegin with the most visible aspectsPrototype
Rapid Development, 1996
![Page 25: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/25.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 25
The Rapid Prototype Model
Product Idea
Analysis
Design
Implementation
Testing Product Life
Prototype
![Page 26: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/26.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 26
A Common Misuse of theRapid Prototype Model
Product Idea
More Code
Test Product Life
Prototype
What does this look like?
![Page 27: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/27.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 27
Incremental Typical Agile Model
The incremental model prescribes developing and delivering the product in planned increments.
The product is designed to be delivered in increments.Each increment provides (in theory) more functionality than the previous increment.
How is this different from Evolutionary?
![Page 28: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/28.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 28
Incremental Model(what “blocks” are missing?)
Design Code TestAnalysis
Design Code TestAnalysis
Design Code TestAnalysis
These are sequences of what?
![Page 29: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/29.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 29
Incremental / Agile methodsCustomer centric – customer expectation management
Deliver every incrementDevelop the product with tight customer involvementUse customer needs to drive priorities for the project
Similar in many aspects to “rapid prototyping”Use “small team” integration to handle many project issues
Scrum and XP are primary examples
![Page 30: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/30.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 30
Agile Advantages
Highly Flexible – volatile requirementsWorks on what is important for the customerPrimary artifact is CodeShort increments reduce failure impactUse teaming controls to improve quality
![Page 31: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/31.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 31
Disadvantages
Team co-location required - maybeScope is looked at in “short cycles”
“What can be done in a week”Drive towards product only focus
Maintenance issuesDocumentation – Legal, safety of lifeDesign on the fly
Scalability
![Page 32: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/32.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 32
Rapid Application Development (RAD)Incremental60-90 days per releaseInformation Systems4th Generation Techniques
Data
Modeling
Process
Modeling
Application
GenerationTesting &
Turnover
Business
Modeling
![Page 33: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/33.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 33
Spiral Model
The spiral model First defined by Barry Boehmcombines elements of:
evolutionary, incremental, and prototyping models
First model to explainwhy iteration mattersHow iteration could be used effectively
the term spiral refers successive iterations outward from a central starting point.
![Page 34: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/34.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 34
Spiral Model
Construction & release
Engineering
Risk analysisPlanning
Customercommunication
Project entrypoint axis
Customerevaluation
Note
Product maintenance projects
Product enhancement projects
New product development projects
Concept development projects
Roger S. Pressman’s “Software Engineering, a Practitioners Approach”
![Page 35: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/35.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 35
Spiral Model
The goal is to identify risk and focus on it early.In theory, risk is reduced in outer spirals as the product becomes more refined.
Cost/time increases reduce risk
Each spiralstarts with design goalsends with the client reviewing the progress thus far and future directionwas originally prescribed to last up to 2 years
Flexible
![Page 36: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/36.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 36
Possible ApplicationsHigh risk projects
Poorly understood requirementsPoorly understood architecturePotential performance problemsProblems in the underlying technology
Combine with other lifecycle modelsTerminate with waterfall or other lifecycleIncorporate other lifecycle models as iterations
![Page 37: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/37.jpg)
Design-to-SchedulePrioritize featuresUnsure if final release will be reached
Rapid Development, 1996
![Page 38: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/38.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 38
Design-to-Schedule Benefits
Ensure product release for a particular dateMost important features completed firstUseful for project parts not on the critical path
![Page 39: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/39.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 39
Design-to-Schedule Disadvantages
Wasted effort specifying unfinished stages
Could complete one or more stages if time was not wasted specifying several unfinished stages
![Page 40: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/40.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 40
Evolutionary Delivery
Similar to Evolutionary PrototypingRefine version based upon customer feedbackEmphasizes core of the system
![Page 41: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/41.jpg)
Evolutionary Delivery
Rapid Development, 1996
![Page 42: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/42.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 42
Evolutionary Delivery
BenefitsCan accommodate customer requestsAllows a degree of midcourse changesProvides tangible results
DisadvantagesRequires careful planningMay lead to Code-and-Fix development
Use for Exceptionally time-sensitive projects
![Page 43: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/43.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 43
Commercial Off-the-Shelf Software
CycleIdentify Possible onesCheck LibraryUse (if they exist)Build new ones (if they don’tPut new ones in Library
But: Software rarely matches ideal softwareDesign concessionsCost concessionsSchedule concessions
![Page 44: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/44.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 44
Choosing: Criteria to considerRequirements understood? Volatile?Scope of projectExternal constraints?Need for design / architectureQualityFuture revisions?How much risk can you acceptSchedule / Resource constraints
![Page 45: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/45.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 45
Choosing An Appropriate Lifecycle (cont.)
Need to provide visible progress to customersNeed to provide visible progress to managementHow sophisticated (complicated) is the model
![Page 46: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/46.jpg)
Strengths & Weaknesses
Rapid Development, 1996
![Page 47: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/47.jpg)
Strengths & Weaknesses - 2
Rapid Development, 1996
![Page 48: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/48.jpg)
Strength and Weakness - 3Lifecycle model Agile methodsPoorly understood requirements
Good
Poorly understood Architecture
Poor
Produces highly reliable system
Fair
Produce system with large growth
Fair
Manage Risks GoodCan be schedule constrained
Good
Has Low overhead GoodAllows midcourse corrections
Good
Customer visibility ExcellentManagement visibility
Fair
Mgmt or developer sophistication
Poor
![Page 49: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/49.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 49
Common Errors in Choosing
Tailoring project to fit lifecycleLooking for a recipeNO! Tailor lifecycleImbedded lifecycles
Supermarket approachPick and choose?
It must be repeatable!
![Page 50: Lifecycle Planning](https://reader031.fdocuments.us/reader031/viewer/2022030320/586a4c161a28ab063d8bb753/html5/thumbnails/50.jpg)
Version 1.4 ©David Root, 2005, all rights reserved 50
Questions?