founda’ons of soware engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · soware...
TRANSCRIPT
![Page 1: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/1.jpg)
Founda'onsofSo,wareEngineering
Process:AgilePrac.cesClaireLeGoues
1
![Page 2: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/2.jpg)
Learninggoals• Defineagileasbothasetofitera.veprocessprac.cesandabusinessapproachforaligningcustomerneedswithdevelopment.
• Explainthemo.va.onbehindandreasonaboutthetradeoffspresentedbyseveralcommonagileprac.ces.
• Summarizebothscrumandextremeprogramming,andprovidemo.va.onandtradeoffsbehindtheirprac.ces.
• Iden.fyandjus.fytheprocessprac.cesfromtheagiletradi.onthataremostappropriateinagivenmoderndevelopmentprocess.
2
![Page 3: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/3.jpg)
Whatproblemsarethereinso,waredevelopment?
3
![Page 4: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/4.jpg)
AgileSo,wareDevelopmentIs…
Both:• asetofsoMwareengineeringbestprac.ces(allowingforrapiddeliveryofhighqualitysoMware)• abusinessapproach(aligningdevelopmentwithcustomerneedsandgoals)
4
![Page 5: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/5.jpg)
BriefHistoryofAgile
5
1930s
Incep&onofItera&veandIncrementalDevelopment(IID):WalterShewhart(BellLabs,signaltransmission)proposedaseriesof“plan-do-study-act”(PDSA)cycles
2001
Introduc&onof“Agile”:TheAgileManifestowri[enby17soMwaredevelopers
XPreified:KentBeckreleasedExtremeProgrammingExplained:EmbraceChange
1999
Introduc&onofScrum:JeffSutherlandandKenSchwaberpresentedapaperdescribingtheScrummethodologyataconferenceworkshop
19951970
Introduc&onofthewaterfall:WinstonRoyce’sar.cleManagingtheDevelopmentofLargeSo<wareSystems
![Page 6: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/6.jpg)
Agileinanutshell• Aprojectmanagementapproachthatseekstorespondtochangeandunpredictability,primarilyusingincremental,itera.veworksequences(oMencalled“sprints”).
• Also:acollec.onofprac.cestofacilitythatapproach.
• Allpredicatedontheprinciplesoutlinedin“TheManifestoforAgileSoMwareDevelopment.”
6
![Page 7: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/7.jpg)
TheManifestoforAgileSo,wareDevelopment(2001)
7
Value
Individualsandinterac'ons over Processesandtools
Workingso,ware over Comprehensivedocumenta.on
Customercollabora'on over Contractnego.a.on
Respondingtochange over Followingaplan
![Page 8: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/8.jpg)
TheTwelvePrinciplesofAgileSo,wareDevelopment
1. Projectsarebuiltaroundmo.vatedindividuals,whoshouldbetrusted
2. Face-to-faceconversa.onisthebestformofcommunica.on(co-loca.on)
3. Self-organizingteams
4. WorkingsoMwareisdeliveredfrequently(weeksratherthanmonths)
5. WorkingsoMwareistheprincipalmeasureofprogress
6. Sustainabledevelopment,abletomaintainaconstantpace
7. Con.nuousa[en.ontotechnicalexcellenceandgooddesign
8. Simplicity—theartofmaximizingtheamountofworknotdone—isessen.al
9. Customersa.sfac.onbyrapiddeliveryofusefulsoMware
10. Close,dailycoopera.onbetweenbusinesspeopleanddevelopers11. Welcomechangingrequirements,evenlateindevelopment
12. Regularadapta.ontochangingcircumstances
8
Individu
alsa
nd
interac'on
sCu
stom
er
collabo
ra'o
nWorking
so,ware
Respon
ding
tocha
nge
![Page 9: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/9.jpg)
AgilePrac'ces• Backlogs(Productand
Sprint)• Behavior-driven
development(BDD)• Cross-func.onalteam• Con.nuousintegra.on(CI)• Domain-drivendesign
(DDD)• Informa.onradiators
(Kanbanboard,Taskboard,Burndownchart)
• Acceptancetest-drivendevelopment(ATDD)
• Itera.veandincrementaldevelopment(IID)
• Pairprogramming• Planningpoker• Refactoring• Scrummee.ngs
(Sprintplanning,Dailyscrum,Sprintreviewandretrospec.ve)
• Smallreleases• Simpledesign• Test-driven
development(TDD)• Agiletes.ng
• Timeboxing• Usecase• Userstory• Story-drivenmodeling• Retrospec.ve• On-sitecustomer• AgileModeling• 40-hourweeks• Shortdevelopment
cycles• Collec.veownership• Openworkspace• Velocitytracking• Etc.
9
![Page 10: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/10.jpg)
40-hourWeeks
Noonecanworkasecondconsecu.veweekofover.me.Evenisolatedover.meusedtoofrequentlyisasignofdeeperproblemsthatmustbeaddressed.
10
![Page 11: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/11.jpg)
PlanningPoker
11
![Page 12: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/12.jpg)
Collec'veOwnership
Everyprogrammerimprovesanycodeanywhereinthesystematany.meiftheyseetheopportunity.
12
![Page 13: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/13.jpg)
KanbanBoard
13
![Page 14: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/14.jpg)
SimpleDesign
“Sayeverythingonceandonlyonce”:Ateverymoment,thedesignrunsallthetests,communicateseverythingtheprogrammerswanttocommunicate,containsnoduplicatecode,andhasthefewestpossibleclassesandmethods.
14
![Page 15: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/15.jpg)
On-siteCustomer
Acustomersitswiththeteamfull-.me.
15
![Page 16: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/16.jpg)
PairProgramming
16
Driver
Navigator
![Page 17: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/17.jpg)
Shortdevelopmentcycle
ThesoMwaredevelopmentprocessisorganizedinawayinwhichthefullsoMwaredevelopmentcycle—fromdesignphasetoimplementa.onphasetotestanddeploymentphase—isperformedwithinashort.mespan,usuallyseveralmonthsorevenweeks.
17
![Page 18: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/18.jpg)
SmallReleases
Thesystemisputintoproduc.oninafewmonths,beforesolvingthewholeproblem.NewreleasesaremadeoMen—anywherefromdailytomonthly.
18
![Page 19: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/19.jpg)
Refactoringvs.Design
Thedesignofthesystemisevolvedthroughtransforma.onsoftheexis.ngdesignthatkeepallthetestsrunning.
19
![Page 20: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/20.jpg)
Con'nuousIntegra'on(CI)
NewcodeisintegratedwiththecurrentsystemaMernomorethanafewhours.Whenintegra.ng,thesystemisbuiltfromscratchandalltestsmustpassorthechangesarediscarded.
20
![Page 21: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/21.jpg)
Test-drivendevelopment
Programmerswriteunittestsminutebyminute.Thesetestsarecollectedandtheymustallruncorrectly.Customerswritefunc.onaltestsforthestoriesinanitera.on.
21
![Page 22: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/22.jpg)
Openworkspace
22
![Page 23: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/23.jpg)
SolvingSo,wareDevelopmentProblemswithAgilePrac'ces
23
ProbleminSo,wareDevelopment AgileMethodsThatMi'gateIt1. Requirementchangesduringthe
developmentprocessCloserela.onwithcustomer,shortdevelopmentcycle,smallreleases,planningpoker,Kanbanboard
2. Scopecreep Shortdevelopmentcycle,smallreleases,planningpoker
3. Architectureerosion Collec.veownership,pairprogramming4. Under-oroveres.ma.on(.meand
budget),s.ckingtotheplanCloserela.onwithcustomer,planningpoker,shortdevelopmentcycle,smallreleases
5. Bringinginnewdevelopers(.meandeffortfortheirtraining),steeplearningcurve
Collec.veownership(pros&cons),planningpoker
6. Changeofmanagementduringthedevelopmentprocess
Closerela.onshipwithcustomer
7. IntroducingnewbugsasyoudevelopsoMware
40-hourweek,collec.veownership,shortdevelopmentcycle,smallreleases,tests,CI,pairprogramming
Contd.
![Page 24: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/24.jpg)
SolvingSo,wareDevelopmentProblemswithAgilePrac'ces*(contd.)
24
ProbleminSo,wareDevelopment AgileMethodsThatMi'gateIt8. Challengeofcommunica.on Closerela.onwithcustomer9. Developerturnover Collec.veownership(pros&cons),40-hourweek10. Integra.onissues Collec.veownership11. Difficultyoftrackingbugs Collec.veownership,shortdevelopmentcycle,
smallreleases,CI,tests12. Disagreementbetweendevelopers Closerela.onwithcustomer13. Schedulingproblems(globalteam) Closerela.onwithcustomer14. “Groupthink”(tendencyof
developerstoagreewithoneanother,commonthinkingamongthem),fearofhur.ngthefeelingsofotherdevelopers
Planningpoker,pairprogramming
15. Challengeswithintegra.ngwithlegacycode
Collec.veownership
*Thisisanexpanded,buts.llnotcomprehensivelist.
![Page 25: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/25.jpg)
Scrum
25
![Page 26: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/26.jpg)
Customer,team,scrummaster(?)
26
![Page 27: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/27.jpg)
ScrumProcess
27
![Page 28: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/28.jpg)
ExtremeProgramming(XP)
28
Humanevolu'on
XPevolu'on
![Page 29: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/29.jpg)
Programmingis4ac'vi'es
"Listening,Tes.ng,Coding,Designing.That'sallthereistosoMware.Anyonewhotellsyoudifferentissellingsomething.”–KentBeck(ExtremeProgrammingExplained)
29
![Page 30: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/30.jpg)
ExtremeProgramming(XP)
30
![Page 31: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/31.jpg)
XPValues
• Communica.on:Verbalcommunica.onisbe[erthanwri[encommunica.on.• Simplicity:Dothesimplestthingthatcouldpossiblywork.• Feedback:Getlotsoffeedback,espfromcustomer(“first-effort”prototype).• Courage:(somewhatunderspecified)
31
![Page 32: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/32.jpg)
XPPrac'ces(subsetofAgile!)• TDD(test-firstapproach).• Planninggame:1-3weekitera.ons,oneitera.onata.me,customerdecideswhich
userstoriestouse• Wholeteam/on-sitecustomer:“customerspeakswithonevoice.”Customermaybea
wholeteam.• Smallreleases,withvaluablefunc.onality,toguardagainstunhappycustomers.• Systemmetaphorisasinglesharedstoryofhowitworks.(Sortoflikearchitecture)• Simplestthingthatpossiblyworks(codingfortoday)• Refactorallthe.me,becauseyoudon’thaveup-frontdesignbeforeprogramming.• Collec.veownership.Everyoneisresponsibleforeverything.Ifaprogrammersees
somethingshedoesn’tlike,shecangochangeit.Taskownershipisindividual.• Pairprogramming.cancodealonefornonproduc.oncodelikeprototypes• Con.nuousIntegra.on.Adayofdevelopmentatmost.• Sustainablepace.40hourworkweeks.• Codingstandards,Especiallysinceallcodecanchangeatall.mes.
32
![Page 33: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/33.jpg)
Evolu'on,explora'on• Evolu.onary:codegrows/evolvesratherthanbeingplanned)– contrastwithRUP(itera.veandincremental)
• Norequirementsdocuments:programmersandthecustomerassembleanddiscussthecustomer'sneeds.– Compilestories,removeambiguityfromthestoriesbymakingsurethattheyaretestableandes.mable.– Orderbybusinessvalue.
33
![Page 34: Founda’ons of Soware Engineeringckaestne/17313/2016/20-8-nov... · 2017-12-14 · Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as](https://reader033.vdocuments.mx/reader033/viewer/2022060505/5f1e229bef4f9839bb149c06/html5/thumbnails/34.jpg)
Ques'ons/Conversa'on
• Casestudy:WhathappenedwithC3?• Tradeoffsofprac.ces:on-sitecustomer/co-locatedteam,TDD,userstories/planninggame,smallreleases,systemmetaphor,codefortoday,refactor,collec.veownership,pairprogramming,con.nuousintegra.on,sustainablepace,codingstandards.
34