Upload
truongtu
View
235
Download
0
Embed Size (px)
Citation preview
Scrum
Arian Treffer [email protected]
Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group
Software Engineering II WS 2015/16
Scrum
1. TheCaseforAgile2. TheScrumProcess3. ScalingScrum
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 4
■ Peopleareafraidofmakingchanges■ Unofficialchangesarecarriedout■ Documentsgetoutofsync■ ...
Why Traditional Projects Fail
Scrum — Software Engineering II — WS 2015/16 5 October 28, 2016
■ Deliveringlate■ Deliveringoverbudget■ Deliveringthewrongthing■ UnstableinproducZon■ Costlytomaintain
How Traditional Projects Fail
Scrum — Software Engineering II — WS 2015/16 6 October 28, 2016
■ Smartpeopletryingtodogoodwork■ Stakeholdersarewellintended
ProcessintradiZonalprojects
■ Mucheffortfor□ Documentsforformalizedhand-offs□ Templates□ Reviewcommi?ees
Why Traditional Projects Fail
Scrum — Software Engineering II — WS 2015/16 7
Planning Analysis Design Code Test Deploy
October 28, 2016
Thelaterwefindadefect,themoreexpensiveitistofixit!Doesfront-loadingaso`waredevelopmentprocessmakesense?Realityshows:■ Projectplansarewonderful■ Adjustments&assumpZonsaremadeduringanalysis,design,code■ Replanningtakesplace■ Example:TesZngphaseattheend□ Testerraisesadefect□ ProgrammerclaimshefollowedthespecificaZon□ Architectblamesbusinessanalystetc.□ ExponenZalcost
Why Traditional Projects Fail
Scrum — Software Engineering II — WS 2015/16 8 October 28, 2016
“ ”
■ Weconductthefront-loadedprocesstominimizeexponenZalcostsofchange□ Projectplan□ RequirementsspecificaZon□ High-leveldesigndocuments□ Low-leveldesigndocuments
■ ThisprocesscausestheexponenZalcostsofchange!èAself-fulfillingprophecy
Thismakessenseforabridge,ship,orabuildingbutso>ware(andLego)areeasytochange!
A Self-Fulfilling Prophecy
Scrum — Software Engineering II — WS 2015/16 9 October 28, 2016
Weareuncoveringbe?erwaysofdevelopingso`warebydoingitandhelpingothersdoit.
Throughthisworkwehavecometovalue:
IndividualsandinteracDonsoverprocessesandtoolsWorkingso>wareovercomprehensivedocumentaDonCustomercollaboraDonovercontractnegoDaDon
Respondingtochangeoverfollowingaplan
Thatis,whilethereisvalueintheitemsontheright,wevaluetheitemsonthele`more.
The Agile Manifesto
Scrum — Software Engineering II — WS 2015/16 10 h?p://agilemanifesto.org/
October 28, 2016
Nolongerlateoroverbudget■ TinyiteraZons■ Easytocalculatebudget■ High-priorityrequirementsfirstNolongerdeliveringthewrongthing■ StrongstakeholdercommunicaZon■ Shortfeedbackcycles
How Agile Methods Address Project Risks
Scrum — Software Engineering II — WS 2015/16 11 October 28, 2016
Nolongerunstableinproduc>on■ DeliveringeachiteraZon■ HighdegreeofautomaZonNolongercostlytomaintain■ MaintenancemodestarZngwithSprint2■ MaintenanceofmulZpleversionsduringdevelopment
How Agile Methods Address Project Risks
Scrum — Software Engineering II — WS 2015/16 12 October 28, 2016
Outcome-basedplanning■ Nocompletedetailedprojectplan
Streamingrequirements■ Anewrequirementsprocess
Evolvingdesign■ Nocompleteupfrontdesignàflexible
Changingexis>ngcode■ Needforrefactoring
The Cost of Going Agile
Scrum — Software Engineering II — WS 2015/16 13 October 28, 2016
Frequentcodeintegra>on■ ConZnuousintegraZon
Con>nualregressiontes>ng■ Addnthfeature;testn-1features
Frequentproduc>onreleases■ OrganizaZonalchallenges
Co-locatedteam■ Keepmomentum
The Cost of Going Agile
Scrum — Software Engineering II — WS 2015/16 14 October 28, 2016
ProsandCons■ Shortplanninghorizon■ Noup-frontdesign■ Storiesinsteadofrequirementdocuments■ Extremeideology
Discuss!
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 15
Scrum
1. TheCaseforAgile2. TheScrumProcess3. ScalingScrum
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 16
Scrum
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 17
ProductBacklog SprintBacklogSprint
Workingincrementoftheso`ware
2weeks–1month
ProductOwnerTeam
24hScrumMaster
Planning
DailyScrum
Review/RetrospecZve
The Team
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 18
ProductOwner
Developers
ScrumMaster
Customer Management
ResponsibiliZes■ CustomercommunicaZon□ Contactpersonforteam
■ ProductBacklog□ UserStories□ PrioriZes
■ AcceptanceCriteria&Tests
Product Owner
Scrum — Software Engineering II — WS 2015/16 19
ResponsibiliZes■ Processmanager□ ModeratorinmeeZngs
■ ManagementcommunicaZon□ Removeimpediments
■ Enabler,notboss
Scrum Master
Scrum — Software Engineering II — WS 2015/16 20
ResponsibiliZes■ CommunicaZon□ CriZcallydiscussallinputs□ HonestlyshareimportantinformaZon□ Representteamasexpert
■ SprintBacklog■ Developing;-)
Developers
Scrum — Software Engineering II — WS 2015/16 21
Listofworkitems■ Requirements(modificaZonrequests)□ Features□ Bugfixes
■ Ordered/prioriZzed
Product Backlog
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 22
InScrum,requirementsareo`endefinedasuserstories:“As<role>,Iwant<feature>to<reason>”
RequirementsneedtofulfillINVESTproperZes:■ I –Independent■ N–NegoZable■ V –Valuable■ E –EsZmable■ S –Small■ T –Testable
Requirements
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 23
h?p://xp123.com/arZcles/invest-in-good-stories-and-smart-tasks/
Ensurethebacklogisreadyforthenextsprint■ Aka“BacklogGrooming”■ TeamandPOdiscusstopProductBacklogitems□ ClarifyquesZons□ E.g.“Whocanaccessthis?”“whathappensif…?”
■ MakesureProductBacklogItemsconformtoteam’s“DefiniZonofReady”
■ Readyiswhentheteamsays:“Ah,wegetit”–JeffSutherland
Product Backlog Refinement Meeting
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 24
Fillingthesprint■ EsZmateBacklogitems■ MoveitemsfromProducttoSprintBacklog
Definingthework■ BreakdownBacklogitemsintotasks■ POnotrequired
TotalZme:2hoursperweekofsprint
Planning Meeting
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 25
Forbe?erplanning,storiesarebrokendownintotasksTasksshouldbeSMART:■ S –Specific■ M–Measurable■ A –Achievable■ R –Relevant■ T –Time-boxed
Tasks
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 26
h?p://xp123.com/arZcles/invest-in-good-stories-and-smart-tasks/
Listoftasksforasprint■ Tasksaresigned-upfor,notassigned■ Duringthesprint□ Nonewfeatures□ Teammaychange/addtasks
Sprint Backlog
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 27
Statusupdate■ Lastachievements■ Nextsteps■ Problems
Max.2minperpersonStand-upmeeZng?Discussions?■ Schedulesubsequentexpert’smeeZng
Daily Scrum Meeting
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 28
AcceptanceofFeatures■ DemotoPO□ POshouldbeprepared□ OpZonal:inviteotherstakeholders
■ Commentsbydevelopers
Review Meeting
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 29
InternalteamevaluaZon■ POnotrequired■ Discussprocessandproblems■ Measureimprovements
Retrospective Meeting
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 30
PotenZallyshippableincrement■ CompleteaccordingtoDefiniZonofDone□ Evenifnotactuallyreleased
■ Noregretsifprojectendednow
Product Increment
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 31
Scrum
Team■ ProductOwner■ ScrumMaster■ Developers
ArZfacts■ ProductBacklog■ SprintBacklog■ UserStories■ So`wareIncrement
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 32
MeeZngs■ Planning■ DailyScrum■ Review■ RetrospecZve
■ Dependsonso`wareengineeringprocess■ Highlyuncertain,mustbenegoZatedandrevisedwithstakeholders
■ WaterfalleffortesZmaZon□ Methods:calibratedesZmaZonmodelbasedonhistoricalsize(FuncZonPoints,LOC,…);expertjudgment;…
□ Output:Xman-months■ AgileeffortesZmaZon□ IteraZvemethods,shorterplanninghorizon□ Output:funcZonalitytobeimplementedinthenextiteraZon
Effort, Schedule, and Cost Estimation
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 33
ParZcipants■ EveryoneoperaZonallyinvolvedincreaZngtheso`wareproduct
■ ProductOwner(andScrumMaster)arenotplayingPrecondiZons■ ProductbacklogiscompleteandprioriZzed■ Backlogitemsareknownbytheteam■ Theeffortforasmallbacklogitemwasdeterminedasareference■ EveryparZcipanthasasetwithsizingcards
Effort Estimation in Scrum with “Planning Poker”
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 34
■ Productownerexplainsabacklogitem■ ProductowneranswersquesZonsofteammembers■ EveryparZcipantevaluatesthecomplexityofthebacklogitemandchoosesacard(hidden)
■ Allcardsareshownsimultaneously■ ParZcipantswithhighestandlowestnumberexplainchoices■ Theargumentsarediscussedinthegroup
Planning Poker 1/2
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 35
■ Anewvoteisconducted■ Teamagreesonitemsize□ Mostoccurringoraveragevalueisacceptable□ Ifnot,anotherroundisplayed
■ Themoderatornotessizeofbacklogitemintheproductbacklog■ ThegameendsifallbacklogitemsaresizedorZmeisover
Planning Poker 2/2
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 36
Beginthesprint■ SelectstoriesunZlsprintisfull■ BreakdownstoriesintotasksandfillyourScrumBoard(e.g.ToDo–InProgress–Verify-Done)
■ Assignstoriestodeveloper(s)■ Implementthestoriestaskbytask
After Planning Poker
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 37
Projekt Workflow: Product Owner
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 38
TalktoUser/ReviewExisZngSystem
• InformalListofDesiredFuncZonality
CreateandPrioriZzeUserStories
• GithubTickets
• AcceptanceTests
PresentUserStoriestoTeam
• ListofUserStoriesthattheTeamwilltackle
ReiterateeverySprint
Project Workflow: Developers
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 39
EsZmateUserStoryEffort
(PlanningPoker)
CreateandEsZmateTasksperUserStory
CreateUnitTest&ImplementTask
PushFeature
UpdateTickets,Create
DocumentaZon
RepeatunZlFeatureisfinished,Runtestsfrequently
Doneandsprintisnotover,yet?■ Helpyourteammates■ Refactor,writetests,document■ AsktheProductOwnerformorework
What’sneededinsuchanenvironment?■ Developmentprocess■ CommunicaZononmulZplelevels■ InfrastructureforcollaboraZon
Implications of the Setup
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 42
Startsmallandgroworganically■ SingleScrumteamforpreparaZon■ WorkoutfoundaZonforthefirstsprints■ ScalewhenitbecomesnecessaryWearenowatthefirstscalingpoint!■ Rudimentaryarchitectureispresent■ Infrastructureispreparedandreadytogo
Scaling Scrum: Project Start
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 43
Architecture Overview
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 44
HPI-Monstar!Plugins
Webserver (Lokal: WEBRick, Deployment: Heroku)
Controller Layer View LayerModel Layer
JobOffer
Attachments
User
JobOfferController
Attachments Controller
Users Controller
ERB Engine
Layouts,Templates
View Helper
simple-navigation devise
● ● ● ●
bootstrap ...
Product Owner / Backlog Hierarchy
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 45 [ChristophMathis,ScrumCenter]
MainProductBacklog
ChiefProductOwner
POTeamA
POTeamB
POTeamC
Updateattheendofeachsprinttoconsolidateteamresults
TeamProductBacklogs
Just-in-Zmeupdatebeforethe
synchronizedplanning
■ PreparaZon□ IndividualreviewandretrospecZonmeeZngs□ MeeZngofallteamswith1-2memberseach:
– Reviewofthelastsprint– Inputdependencies(Whatisneeded)– Outputdependencies(Whatneedstobedelivered)
■ ExecuZon□ Individualplannings(strictZmeboxing)□ DiscussionofidenZfiedaddiZonalinputoroutputdependencies□ Finalsprintplanning
■ Problem:Timeconsuming&highdegreeofcoordinaZonneeded!
Scaling Scrum: Sprint Planning
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 46
AnotherOpZon:Co-locatedplanning
Scaling Scrum: Sprint Planning
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 47
One Room
Team 1
Team 2 Team 3
Team 4
POs
Team 6
Team 5
Team 7
Team 8
Goal:SynchronizeteameffortwithminimalcoordinaZonoverhead■ RegularmeeZngofallScrummasters.□ Developersjoinifnecessary(ambassadorprinciple)
■ Scrummasters□ Sharetheirlearnings□ ReportcompleZons&nextsteps□ Coordinateinter-teamdependencies□ NegoZateresponsibility
■ Developersdiscusstechnicalinterfacesacrossteams■ DistributeinformaZonbackintotheteams
Scrum of Scrums
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 48
■ "STvsGloucester-Match-23"byPierreSelim-Ownwork.LicensedunderCreaZveCommonsA?ribuZon-ShareAlike3.0viaWikimediaCommons-h?p://commons.wikimedia.org/wiki/File:ST_vs_Gloucester_-_Match_-_23.JPG#mediaviewer/File:ST_vs_Gloucester_-_Match_-_23.JPG
■ "Scrumprocess"byLakeworks-Ownwork.LicensedunderCreaZveCommonsA?ribuZon-ShareAlike3.0-2.5-2.0-1.0viaWikimediaCommons-h?p://commons.wikimedia.org/wiki/File:Scrum_process.svg#mediaviewer/File:Scrum_process.svg
■ „Wien-Seestadt,SW-Areal2013(2)“vonBwag-EigenesWerk.LizenziertunterCreaZveCommonsA?ribuZon-ShareAlike3.0-atüberWikimediaCommons-h?p://commons.wikimedia.org/wiki/File:Wien_-_Seestadt,_SW-Areal_2013_(2).JPG#mediaviewer/File:Wien_-_Seestadt,_SW-Areal_2013_(2).JPG
Image Credits
October 28, 2016 Scrum — Software Engineering II — WS 2015/16 50