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