lifecycle planning

50
Version 1.4 ©David Root, 2005, all rights reserved 1 Lifecycle Planning Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Upload: duongthuy

Post on 02-Jan-2017

221 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Lifecycle Planning

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

©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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Design-to-SchedulePrioritize featuresUnsure if final release will be reached

Rapid Development, 1996

Page 38: Lifecycle Planning

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

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

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

Evolutionary Delivery

Rapid Development, 1996

Page 42: Lifecycle Planning

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

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

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

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

Strengths & Weaknesses

Rapid Development, 1996

Page 47: Lifecycle Planning

Strengths & Weaknesses - 2

Rapid Development, 1996

Page 48: Lifecycle Planning

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

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

Version 1.4 ©David Root, 2005, all rights reserved 50

Questions?