2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

53
2003 Mateusz Żochowski, Marcin Bor zymek Software Life Cycle Software Life Cycle Analysis Analysis

Transcript of 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

Page 1: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Software Life Cycle Software Life Cycle AnalysisAnalysis

Page 2: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Why Planning?Why Planning?

Streamline projectStreamline project Improve development speedImprove development speed Improve qualityImprove quality Improve project tracking and controlImprove project tracking and control Improve client relationsImprove client relations

Page 3: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Inappropriate Inappropriate or Lack of or Lack of a a Lifecycle ModelLifecycle Model

Slow workSlow work Repeated workRepeated work Unnecessary workUnnecessary work FrustrationFrustration

Page 4: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Lifecycle ModelsLifecycle Models

Pure WaterfallPure Waterfall Modified WaterfallsModified Waterfalls SpiralSpiral Code-and-FixCode-and-Fix Evolutionary PrototypesEvolutionary Prototypes Staged DeliveryStaged Delivery Design-to ScheduleDesign-to Schedule Extreme Programming Life CycleExtreme Programming Life Cycle

Page 5: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Pure WaterfallPure Waterfall

Orderly sequence of stepsOrderly sequence of steps Review at the end of each phaseReview at the end of each phase Discontinuous phasesDiscontinuous phases

Page 6: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

WaterfallWaterfall

Rapid Development, 1996

Page 7: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall BenefitsWaterfall Benefits

FindFindss errors in early stages errors in early stages Minimizes planning overhead since Minimizes planning overhead since

it can be done up front it can be done up front Structure minimizes wasted effort, Structure minimizes wasted effort,

so it works well for technically weak so it works well for technically weak or inexperienced staff or inexperienced staff

Page 8: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall DisadvantagesWaterfall Disadvantages

No tangible results until the endNo tangible results until the end InflexibleInflexible Excessive documentation Excessive documentation Backing up to address mistakes is Backing up to address mistakes is

difficult difficult

Page 9: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall SummaryWaterfall Summary

-- performs well for products with performs well for products with clearly understood requirements clearly understood requirements

-- it's weaknesses frequently make it's weaknesses frequently make it inadvisable when rapid it inadvisable when rapid development is needed. In those development is needed. In those cases, modified models may be more cases, modified models may be more effective. effective.

Page 10: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Modified WaterfallsModified Waterfalls

Waterfall with SubprojectsWaterfall with Subprojects Waterfall with Risk ReductionWaterfall with Risk Reduction

Page 11: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall With Waterfall With SubprojectsSubprojects

SubprojectsSubprojects

Rapid Development, 1996

Page 12: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall With Waterfall With Subprojects BenefitsSubprojects Benefits

Logically independent subsystemsLogically independent subsystems Each subproject can proceed at own Each subproject can proceed at own

pacepace

Page 13: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall With Waterfall With Subprojects Subprojects

DisadvantagesDisadvantages

Unforeseen interdependenciesUnforeseen interdependencies

Page 14: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall With Risk Waterfall With Risk ReductionReduction

Risk-reduction spiral at topRisk-reduction spiral at top

Rapid Development, 1996

Page 15: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Waterfall With Risk Waterfall With Risk Reduction BenefitsReduction Benefits

Reduce riskReduce risk Best of Waterfall and Risk Reduction Best of Waterfall and Risk Reduction

modelsmodels Not limited to requirementsNot limited to requirements

Page 16: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Spiral (Cinnamon Roll)Spiral (Cinnamon Roll)

Risk-orientedRisk-oriented MiniprojectsMiniprojects IterationsIterations

Determine objectives, alternatives, and Determine objectives, alternatives, and constraintsconstraints

Identify and resolve risksIdentify and resolve risks Evaluate alternativesEvaluate alternatives Develop deliverablesDevelop deliverables Plan the next iterationPlan the next iteration Commit to an approach for the next iterationCommit to an approach for the next iteration

Page 17: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Spiral (Cinnamon Roll)Spiral (Cinnamon Roll)

Rapid Development, 1996

Page 18: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Spiral BenefitsSpiral Benefits

Management controlManagement control Early indication of fatal risksEarly indication of fatal risks FlexibleFlexible

Page 19: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Spiral DisadvantagesSpiral Disadvantages

ComplicatedComplicated Requires attentive, and Requires attentive, and

knowledgeable managementknowledgeable management

Page 20: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Possible ApplicationsPossible Applications

High risk projectsHigh risk projects Poorly understood requirementsPoorly understood requirements Poorly understood architecturePoorly understood architecture Potential performance problemsPotential performance problems Problems in the underlying technologyProblems in the underlying technology

Combine with other lifecycle modelsCombine with other lifecycle models Terminate with waterfall or other lifecycleTerminate with waterfall or other lifecycle Incorporate other lifecycle models as Incorporate other lifecycle models as

iterationsiterations

Page 21: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Spiral SummarySpiral Summary

-- it's beneficial to run a series of it's beneficial to run a series of risk-reduction iterations which can risk-reduction iterations which can be followed by a waterfall or other be followed by a waterfall or other non-risk-based lifecyclenon-risk-based lifecycle

  

Page 22: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Code-and-FixCode-and-Fix

InformalInformal UnstructuredUnstructured

Rapid Development, 1996

Page 23: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Code-and-Fix BenefitsCode-and-Fix Benefits

No overheadNo overhead Requires little expertiseRequires little expertise

Page 24: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Code-and-Fix Code-and-Fix DisadvantagesDisadvantages

No means of assessing progressNo means of assessing progress No quality managementNo quality management No risk managementNo risk management

Page 25: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Possible ApplicationsPossible Applications

Small proof-of-concept programsSmall proof-of-concept programs Short-lived demosShort-lived demos Throwaway prototypesThrowaway prototypes

Page 26: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary Evolutionary PrototypingPrototyping

Develop system concept as the Develop system concept as the project progressesproject progresses

Begin with the most visible Begin with the most visible aspectsaspects

PrototypePrototype

Rapid Development, 1996

Page 27: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary Prototyping Evolutionary Prototyping BenefitsBenefits

Steady, visible signs of progressSteady, visible signs of progress Less documentationLess documentation

Page 28: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary Prototyping Evolutionary Prototyping DisadvantagesDisadvantages

Impossible to schedule releaseImpossible to schedule release Excuse to use code-and-fix Excuse to use code-and-fix

developmentdevelopment

Page 29: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Possible ApplicationsPossible Applications

Rapidly changing requirementsRapidly changing requirements Customer reluctant to commit to Customer reluctant to commit to

requirementsrequirements Do not understand application areaDo not understand application area Strong demand for development Strong demand for development

speedspeed

Page 30: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary DeliveryEvolutionary Delivery

Similar to Evolutionary PrototypingSimilar to Evolutionary Prototyping Refine version based upon customer Refine version based upon customer

feedbackfeedback Emphasizes core of the systemEmphasizes core of the system

Page 31: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary DeliveryEvolutionary Delivery

Rapid Development, 1996

Page 32: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary Delivery Evolutionary Delivery BenefitsBenefits

Can accommodate customer Can accommodate customer requestsrequests

Allows a degree of Allows a degree of midtimemidtime changes changes Provides Provides visiblevisible results results

Page 33: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Evolutionary Delivery Evolutionary Delivery DisadvantagesDisadvantages

DifficultDifficult to schedule release to schedule release May lead to Code-and-Fix May lead to Code-and-Fix

developmentdevelopment

Page 34: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Design-to-ScheduleDesign-to-Schedule

Prioritize featuresPrioritize features Unsure if final release will be Unsure if final release will be

reachedreached

Rapid Development, 1996

Page 35: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Design-to-Schedule Design-to-Schedule BenefitsBenefits

Ensure product release for a Ensure product release for a particular dateparticular date

Most important features completed Most important features completed firstfirst

Page 36: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Design-to-Schedule Design-to-Schedule DisadvantagesDisadvantages

Wasted effort specifying unfinished Wasted effort specifying unfinished stagesstages Could complete one or more stages if Could complete one or more stages if

time was not wasted specifying several time was not wasted specifying several unfinished stagesunfinished stages

Page 37: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Possible ApplicationsPossible Applications

Must have product by a specific dateMust have product by a specific date Unconfident in scheduling abilitiesUnconfident in scheduling abilities

Page 38: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Design-to-ToolsDesign-to-Tools

Include functionality only if directly Include functionality only if directly supported by existing software toolssupported by existing software tools

Rapid Development, 1996

Page 39: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Design-to-Tools BenefitsDesign-to-Tools Benefits

Maximum functionality vs. timeMaximum functionality vs. time Can be combined with other lifecycle Can be combined with other lifecycle

modelsmodels Initial spiralInitial spiral Throwaway prototypeThrowaway prototype Staged deliveryStaged delivery Evolutionary deliveryEvolutionary delivery Design-to-scheduleDesign-to-schedule

Page 40: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Design-to-Tools Design-to-Tools DisadvantagesDisadvantages

Less controlLess control Unable to implement all featuresUnable to implement all features Unable to implement features as Unable to implement features as

intendedintended Dependent on commercial software Dependent on commercial software

producersproducers

Page 41: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Possible ApplicationsPossible Applications

Exceptionally time-sensitive projectsExceptionally time-sensitive projects

Page 42: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Extreme ProgrammingExtreme Programming

Page 43: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

User StoriesUser Stories

written by the customers as things written by the customers as things that the system needs to do for themthat the system needs to do for them

in the format of about three in the format of about three sentences of text in the customers sentences of text in the customers terminology without techno-syntaxterminology without techno-syntax

Page 44: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Release PlanRelease Plan

create iteration plans for each create iteration plans for each individual iteration.individual iteration.

estimate each user story in terms of estimate each user story in terms of ideal programming weeks ideal programming weeks

estimate user stories velocityestimate user stories velocity

Page 45: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Spike solutionsSpike solutions

is a very simple program to explore is a very simple program to explore potential solutionspotential solutions

figure out answers to tough figure out answers to tough technical or design problemstechnical or design problems

helps to estimate project velocityhelps to estimate project velocity

Page 46: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

IterationIteration

During an iteration the user stories During an iteration the user stories selected during the iteration selected during the iteration planning meeting will beplanning meeting will be translated translated into acceptance tests.into acceptance tests.

Page 47: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Acceptance TestsAcceptance Tests

The customer specifies scenarios to The customer specifies scenarios to test when a user story has been test when a user story has been correctly implementedcorrectly implemented

No tests passed = no progressNo tests passed = no progress A user story is not considered A user story is not considered

complete until it has passed its complete until it has passed its acceptance testsacceptance tests

Page 48: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Small ReleasesSmall Releases

Small units of functionality can be Small units of functionality can be released into the customer's released into the customer's environment early in the project - environment early in the project - that gives valuable feedback that gives valuable feedback

Page 49: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Choosing An Appropriate Choosing An Appropriate LifecycleLifecycle

How well are requirements understoodHow well are requirements understood How well is system architecture How well is system architecture

understoodunderstood How much reliability is neededHow much reliability is needed How likely are future revisionsHow likely are future revisions How much riskHow much risk Need to make midcourse correctionsNeed to make midcourse corrections

Page 50: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Choosing An Appropriate Choosing An Appropriate Lifecycle (cont.)Lifecycle (cont.)

Need to provide visible progress to Need to provide visible progress to customerscustomers

Need to provide visible progress to Need to provide visible progress to managementmanagement

How sophisticated is the modelHow sophisticated is the model

Page 51: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Strengths & WeaknessesStrengths & Weaknesses

Rapid Development, 1996

Page 52: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Strengths & Weaknesses Strengths & Weaknesses (cont.)(cont.)

Rapid Development, 1996

Page 53: 2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.

2003 Mateusz Żochowski, Marcin Borzymek

Questions?Questions?