3. Agility and extreme programming OF UNIT-1 PPT

sharmila27432 20 views 24 slides Jul 23, 2024
Slide 1
Slide 1 of 24
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24

About This Presentation

SOFTWARE MODELS


Slide Content

20CS502:AGILE PROCESS
S.VIJAYASHARMILA,AP/IT
KLNCE

What is “Agility”?
•Effective(rapidandadaptive)responsetochange(teammembers,new
technology,requirements)
•Effectivecommunicationinstructureandattitudesamongallteam
members,technologicalandbusinesspeople,softwareengineersand
managers。
•Drawingthecustomerintotheteam.Eliminate“usandthem”attitude.
Planninginanuncertainworldhasitslimitsandplanmustbeflexible.
•Organizingateamsothatitisincontroloftheworkperformed
•Eliminateallbutthemostessentialworkproductsandkeepthemlean.
•Emphasizeanincrementaldeliverystrategyasopposedtointermediate
productsthatgetsworkingsoftwaretothecustomerasrapidlyas
feasible.
2

The Manifesto for
Agile Software Development
3
“We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
•Individuals and interactionsover processes and tools
•Working softwareover comprehensive documentation
•Customer collaborationover contract negotiation
•Responding to changeover following a plan
That is, while there is value in the items on the right, we value the items
on the left more.”

Why and What Steps are“Agility”important?
•Why?Themodernbusinessenvironmentisfast-pacedandever-changing.It
representsareasonablealternativetoconventionalsoftwareengineeringfor
certainclassesofsoftwareprojects.Ithasbeendemonstratedtodeliver
successfulsystemsquickly.
•What?Maybetermedas“softwareengineeringlite”Thebasicactivities-
communication,planning,modeling,constructionanddeploymentremain.
Buttheymorphintoaminimaltasksetthatpushtheteamtoward
constructionanddeliverysooner.
•Theonlyreallyimportantworkproductisanoperational“software
increment”thatisdelivered.
4

Agility and the Cost of Change
•Conventionalwisdomisthatthecostofchangeincreasesnonlinearlyasaproject
progresses.Itisrelativelyeasytoaccommodateachangewhenateamisgathering
requirementsearlyinaproject.Ifthereareanychanges,thecostsofdoingthiswork
areminimal.Butifthemiddleofvalidationtesting,astakeholderisrequestingamajor
functionalchange.Thenthechangerequiresamodificationtothearchitecturaldesign,
constructionofnewcomponents,changestootherexistingcomponents,newtesting
andsoon.Costsescalatequickly.
•Awell-designedagileprocessmay“flatten”thecostofchangecurvebycoupling
incrementaldeliverywithagilepracticessuchascontinuousunittestingandpair
programming.Thusteamcanaccommodatechangeslateinthesoftwareproject
withoutdramaticcostandtimeimpact.
5

AGILITY AND THE COST OF
CHANGE
These slides are designed to accompany
Software Engineering: A Practitioner’s
Approach, 7/e (McGraw-Hill, 2009) Slides
copyright 2009 by Roger Pressman.
6

AN AGILE PROCESS
•Isdrivenbycustomerdescriptionsofwhatisrequired(scenarios).Someassumptions:
–Recognizesthatplansareshort-lived(somerequirementswillpersist,somewill
change.Customerprioritieswillchange)
–Developssoftwareiterativelywithaheavyemphasisonconstructionactivities(design
andconstructionareinterleaved,hardtosayhowmuchdesignisnecessarybefore
construction.Designmodelsareprovenastheyarecreated.)
–Analysis,design,constructionandtestingarenotpredictable.
•ThushastoAdaptaschangesoccurduetounpredictability
•Deliversmultiple‘softwareincrements’,deliveranoperationalprototypeorportionofan
OStocollectcustomerfeedbackforadaption.
7

Agility Principles -I
1.Ourhighestpriorityistosatisfythecustomerthroughearlyandcontinuousdelivery
ofvaluablesoftware.
2.Welcomechangingrequirements,evenlateindevelopment.Agileprocessesharness
changeforthecustomer'scompetitiveadvantage.
3.Deliverworkingsoftwarefrequently,fromacoupleofweekstoacoupleofmonths,
withapreferencetotheshortertimescale.
4.Businesspeopleanddevelopersmustworktogetherdailythroughouttheproject.
5.Buildprojectsaroundmotivatedindividuals.Givethemtheenvironmentand
supporttheyneed,andtrustthemtogetthejobdone.
6.Themostefficientandeffectivemethodofconveyinginformationtoandwithina
developmentteamisface–to–faceconversation.
8

Agility Principles -II
7.Workingsoftwareistheprimarymeasureofprogress.
8.Agileprocessespromotesustainabledevelopment.Thesponsors,developers,and
usersshouldbeabletomaintainaconstantpaceindefinitely.
9.Continuousattentiontotechnicalexcellenceandgooddesignenhancesagility.
10.Simplicity–theartofmaximizingtheamountofworknotdone–isessential.
11.Thebestarchitectures,requirements,anddesignsemergefromself–organizing
teams.
12.Atregularintervals,theteamreflectsonhowtobecomemoreeffective,thentunes
andadjustsitsbehavioraccordingly.
9

Human Factors
•theprocessmoldstotheneedsofthepeopleandteam,nottheotherwayaround
•keytraitsmustexistamongthepeopleonanagileteamandtheteamitself:
–Competence.(talent,skills,knowledge)
–Commonfocus.(deliveraworkingsoftwareincrement)
–Collaboration.(peersandstakeholders)
–Decision-makingability.(freedomtocontrolitsowndestiny)
–Fuzzyproblem-solvingability.(ambiguityandconstantchanges,todayproblem
maynotbetomorrow’sproblem)
–Mutualtrustandrespect.
–Self-organization.(themselvesfortheworkdone,processforitslocal
environment,theworkschedule)
10

EXTREME PROGRAMMING (XP)
•Themostwidelyusedagileprocess,originallyproposedbyKentBeckin2004.Itusesan
object-orientedapproach.
•XPPlanning
–Beginswiththelistening,leadstocreationof“userstories”thatdescribesrequired
output,features,andfunctionality.Customerassignsavalue(i.e.,apriority)toeachstory.
–Agileteamassesseseachstoryandassignsacost(developmentweeks.Ifmorethan3
weeks,customeraskedtosplitintosmallerstories)
–Workingtogether,storiesaregroupedforadeliverableincrementnextrelease.
–Acommitment(storiestobeincluded,deliverydateandotherprojectmatters)ismade.
Threeways:1.Eitherallstorieswillbeimplementedinafewweeks,2.highpriority
storiesfirst,or3.theriskieststorieswillbeimplementedfirst.
–Afterthefirstincrement“projectvelocity”,namelynumberofstoriesimplemented
duringthefirstreleaseisusedtohelpdefinesubsequentdeliverydatesforother
increments.Customerscanaddstories,deleteexistingstories,changevaluesofan
existingstory,splitstoriesasdevelopmentworkproceeds.
11

Extreme Programming (XP)
•XPDesign(occursbothbeforeandaftercodingasrefactoringisencouraged)
–FollowstheKISprinciple(keepitsimple)Nothingmorenothinglessthanthestory.
–EncouragetheuseofCRC(class-responsibility-collaborator)cardsinanobject-
orientedcontext.TheonlydesignworkproductofXP.Theyidentifyandorganizethe
classesthatarerelevanttothecurrentsoftwareincrement.(seeChapter8)
–Fordifficultdesignproblems,suggeststhecreationof“spikesolutions”—adesign
prototypeforthatportionisimplementedandevaluated.
–Encourages“refactoring”—aniterativerefinementoftheinternalprogramdesign.
Doesnotaltertheexternalbehavioryetimprovetheinternalstructure.Minimize
chancesofbugs.Moreefficient,easytoread.
•XPCoding
–Recommendstheconstructionofaunittestforastorybeforecodingcommences.So
implementercanfocusonwhatmustbeimplementedtopassthetest.
–Encourages“pairprogramming”.Twopeopleworktogetheratoneworkstation.Real
timeproblemsolving,realtimereviewforqualityassurance.Takeslightlydifferent
roles.
•XPTesting
–Allunittestsareexecuteddailyandideallyshouldbeautomated.Regressiontestsare
conductedtotestcurrentandpreviouscomponents.
–“Acceptancetests”aredefinedbythecustomerandexecutedtoassesscustomervisible
functionality 12

Extreme Programming (XP)
13unit test
continuous integration
acceptance testing
pair
programming
Release
user stories
values
acceptance test criteria
iteration plan
simple design
CRC cards
spike solutions
prototypes
refactoring
software increment
project velocity computed

ADAPTIVE SOFTWARE DEVELOPMENT (ASD)
•OriginallyproposedbyJimHighsmith(2000)focusingonhumancollaboration
andteamself-organizationasatechniquetobuildcomplexsoftwareand
system.
•ASD—distinguishingfeatures
–Mission-drivenplanning
–Component-basedfocus
–Uses“time-boxing”
–Explicitconsiderationofrisks
–Emphasizescollaborationforrequirementsgathering
–Emphasizes“learning”throughouttheprocess
14

Three Phases of ASD
•1.Speculation:projectisinitiatedandadaptivecycleplanningisconducted.
Adaptivecycleplanningusesprojectinitiationinformation-
•thecustomer’smissionstatement,
•projectconstraints(e.g.deliverydate),and
•basicrequirementstodefinethesetofreleasecycles(increments)thatwillbe
requiredfortheproject.Basedontheinformationobtainedatthecompletionof
thefirstcycle,theplanisreviewedandadjustedsothatplannedworkbetterfits
thereality.
15

Three Phases of ASD
•2.Collaborationsareusedtomultiplytheirtalentandcreativeoutput.Itencompasses
communicationandteamwork,butitalsoemphasizesindividualism,becauseindividual
creativityplaysanimportantroleincollaborativethinking.
•Itisamatteroftrust.1)criticizewithoutanimosity,2)assistwithoutresentments,3)
workashardasorharderthantheydo.4)havetheskillsettocontributetotheworkat
hand,5)communicateproblems.
3.Learning:AsmembersofASDteambegintodevelopthecomponents,theemphasisison
“learning”.Highsmitharguesthatsoftwaredevelopersoftenoverestimatetheirown
understandingofthetechnology,theprocess,andtheprojectandthatlearningwillhelpthem
toimprovetheirlevelofrealunderstanding.Threeways:focusgroups,technicalreviewsand
projectpostmortems.
16

Adaptive Software Development
17adaptive cycle planning
uses mission statement
project constraints
basic requirements
time-boxed release plan
Requirements gathering
JAD
mini-specs
components implemented/tested
focus groups for feedback
formal technical reviews
postmortems
software increment
adjustments for subsequent cycles
Release

DYNAMIC SYSTEMS DEVELOPMENT METHOD
•Itisanagilesoftwaredevelopmentapproachthatprovidesaframeworkforbuilding
andmaintainingsystemswhichmeettighttimeconstraintsthroughtheuseof
incrementalprototypinginacontrolledprojectenvironment.
•DSDM—distinguishingfeatures
–SimilarinmostrespectstoXPand/orASD
–Nineguidingprinciples
•Activeuserinvolvementisimperative.
•DSDMteamsmustbeempoweredtomakedecisions.
•Thefocusisonfrequentdeliveryofproducts.
•Fitnessforbusinesspurposeistheessentialcriterionforacceptanceof
deliverables.
•Iterativeandincrementaldevelopmentisnecessarytoconvergeonan
accuratebusinesssolution.
•Allchangesduringdevelopmentarereversible.
•Requirementsarebaselinedatahighlevel
•Testingisintegratedthroughoutthelife-cycle.
18

Dynamic Systems Development Method
19
DSDM Life Cycle (with permission of the DSDM consortium)

SCRUM
•AsoftwaredevelopmentmethodOriginallyproposedbySchwaberandBeedle(an
activityoccursduringarugbymatch)inearly1990.
•Scrum—distinguishingfeatures
–Developmentworkispartitionedinto“packets”
–Testinganddocumentationareon-goingastheproductisconstructed
–Workunitsoccursin“sprints”andisderivedfroma“backlog”ofexisting
changingprioritizedrequirements
–Changesarenotintroducedinsprints(shorttermbutstable)butinbacklog.
–Meetingsareveryshort(15minutesdaily)andsometimesconductedwithout
chairs(whatdidyoudosincelastmeeting?Whatobstaclesareyou
encountering?Whatdoyouplantoaccomplishbynextmeeting?)
–“demos”aredeliveredtothecustomerwiththetime-boxallocated.Maynot
containallfunctionalities.Socustomerscanevaluateandgivefeedbacks.
20

21

CRYSTAL
•ProposedbyCockburnandHighsmith
•Crystal—distinguishingfeatures
–Actuallyafamilyofprocessmodelsthatallow“maneuverability”
basedonproblemcharacteristics
–Face-to-facecommunicationisemphasized
–Suggeststheuseof“reflectionworkshops”toreviewthework
habitsoftheteam
22

FEATURE DRIVEN DEVELOPMENT
•OriginallyproposedbyPeterCoadetalasaobject-orientedsoftwareengineering
processmodel.
•FDD—distinguishingfeatures
–Emphasisisondefining“features”whichcanbeorganizedhierarchically.
•afeature“isaclient-valuedfunctionthatcanbeimplementedintwo
weeksorless.”
–Usesafeaturetemplate
•<action>the<result><by|for|of|to>a(n)<object>
•E.g.Addtheproducttoshoppingcart.
•Displaythetechnical-specificationsoftheproduct.
•Storetheshipping-informationforthecustomer.
–Afeatureslistiscreatedand“planbyfeature”isconducted
–DesignandconstructionmergeinFDD
23

24