Agile Software Development - The Technical Guy … Plan -driven vs. Agile Software Development...
Transcript of Agile Software Development - The Technical Guy … Plan -driven vs. Agile Software Development...
Hans-PetterHalvorsen
ScrumAgileSoftwareDevelopment
S.Adams.Dilbert.Available:http://dilbert.com
http://home.hit.no/~hansha/?page=software_development
2
TypicalJobAd
AgilemethodsandespeciallyScrumhavebecomeverypopularthesedays!!
“Hvordanserentypiskarbeidsdagutfordeg,nårduikkeharfriellersurfermedbarnaiSør-Afrika?”
“Detkommeranpåfasenietprosjekt.Tidligiutviklings- ellerkonseptfasenerdetmyemøter.VijobberiScrum-prosessmeddagligemøter.Seneremotleveringstiderdetmyeutviklingogkoding.NoesomerspesieltforAmazon,somjegikketrormangeandreopplever,eratnårdulevereretsystemsåeierdudetogsåoperasjoneltiheledetslevetid.Åholdeløsningeneidrifterogsånoevibrukermyeenergipå.”
http://www.digi.no/919886/atle-42-staar-bak-amazon-skyen
RequirementsAnalysis
Design
Implementation
Testing
Maintenance
Planning
TheSoftwareDevelopment
Lifecycle(SDLC)
Deployment
TraditionalPlan-drivenvs.AgileSoftwareDevelopmentProcesses
Waterfall
V-model
Scrum eXremeProgramming
Lean
TDD
Spiral
Traditional Agile
Moreflexible,IterativeandIncrementalApproach
"Cannot"gotonextphasebeforepreviousphaseisfinished
FDD
Kanban
SoftwareDevelopmentMethods
6
TraditionalMethods AgileMethods
WaterfallMethod
V-Model
ScrumeXtremeProgramming
(XP)
LeanSoftwareDevelopment FeatureDriven
Development(FDD)
TestDrivenDevelopment
(TDD)
Kanban
TheWaterfallModelRequirement
Design
Implementation
Testing
MaintenanceDeployment
SoftwareFinished
PlanningtocreateanewSoftware
ASequentialProcess
Youcannotgotonextphasebeforefinsihedthepreviousphase
Finished
Finished
Finished
Finished
NotFinished?-GobackandFixit!
NotFinished?-GobackandFixit!
NotFinished?-GobackandFixit!
NotFinished?-GobackandFixit!
RequirementsAnalysis
Design
Implementation
Testing
Maintenance
Planning
Iterations/
Deployment
Sprints
Finished?DeliverSoftware
NoYes
TheScrumMethod
ProductBacklog
SprintBacklog
MoreFlexible LessDocumentation
AgileSoftwareDevelopmentIterativeandIncrementalApproachforSoftwareDevelopment
AgileandScrum,whichwewilltestoutinthiscourse,aremodernapproachesfordevelopingsoftware.
WorkingSoftwareatalltimes!
Self-organizingandcross-functionalTeams
Incremental:SoftwareavailabletoCustomersevery2-4weeks
WhatisScrum?• Scrum- atermusedinRugbyfootball• AFrameworkforSoftwareDevelopment• AnAgileSoftwareDevelopmentmethod• Simpletounderstand• Flexible• Exremelydifficulttomaster!• Self-organizingTeams(3-9persons)• ScrumTeam:
– ProductOwner– ScrumMaster– DevelopmentTeam
10
Stakeholders
ProductOwner
ScrumMaster
ProductBacklog
DevelopmentTeam3-9persons
SprintBacklog
ScrumProcess:
ScrumMembers:
DailyScrumMeetings.Max15min.
SprintReview
Scrum
SprintPlanning ScrumTeam
12
Scrum101- Part1- http://www.youtube.com/watch?v=aQrsVfjbQZ4
ScrumatMicrosoft(Long)- http://www.youtube.com/watch?v=-UUrLxNBK_g
ScrumatMicrosoft(Short)– http://youtu.be/YR84qH6d7QE
DailyScrumMeeting(Badvs.GoodExample):http://www.youtube.com/watch?v=q_R9wQY4G5I
ScrumVideos
DailyScrumMeeting
3Questions:•Whatdidyoudoyesterday?•Whatshallyoudotoday?• AnyProblems?
13WhileansweringthesequestionsthepersonupdatestheTaskBoard
DailyScrumMeeting
Theyareshort(max15min)- andusuallystandupmeetingsinthehallway
https://www.youtube.com/watch?v=YR84qH6d7QE&feature=youtu.be
CreateUML
CreateDatabase
TaskBoard
TasksNotStarted TasksInProgress TasksFinished
CreateGUICreateSCCProject
CreateWebInterface
SprintStart
SprintFinished
ProductBacklog
SprintBacklog TodaywecanusetoolslikeTFS,butmanystilluseawhiteboardwithstickynotes
AllRequirements
SelectedRequirementsforoneIteration
ToDoList
ScrumTaskBoardExample
16
BurndownChart
Days
RemainingW
ork(Hours) 1 2 3 ... 29SprintStart
SprintFinished
TrackingtheProgressIdealBurndown
ActualBurndown
AlsoavailableinTFS
Waterfallvs.Agile• Agileismoreflexiblethantraditionalmethods(likethewaterfall)
• AgileandScrumisbasedonIterationswhileWaterfallisSequential
• AgileandScrumfocusonlessdocumentation• Agileisgoodforsmallprojects– notsogoodforlargerprojects?
• IftheCustomerdontknowwhathewantsindetail–Scrumisagoodapproach
18
DailyScrumMeeting• Max15min.• SameTimeandPlaceeveryday• Dontbelate• Nophones,nocheckingE-mails,etc.(Nodistractions)• Eachanswer3queations(Dontgointodetails!).• Nootherscantalk.• UpdateyourTasksandtheElectronicTaskBoardbeforethe
meeting(ifstickynotes,youcanupdatetheTaskBoardwhileansweringthe3questions)
• Standup(dontsitdown)duringthewholemeeting• ShowtheBurddownChartattheendofthemeeting
19
ScrumMoreInformation&Details
S.Adams.Dilbert.Available:http://dilbert.com
Hans-PetterHalvorsen,M.Sc.
AgileSoftwareDevelopment
• AgroupofsoftwareDevelopmentmethods
• Iterative approach• Self-organizingandcross-functionalTeams
Examples:• Scrum• eXtremeProgramming(XP)
21
22
Scrum(andAgilemethods)haslessfocusonDocumentation
Agile(Scrum)Documentation
Scrum
23
24
Stakeholders
ProductOwner
ScrumMasterProductBacklog
DevelopmentTeam
SprintBacklog
ScrumMembers
25
ScrumProcessDailyScrumMeetings
SprintReview
ThisLoopisrunninguntilSoftwareisfinished
ScrumEvents• TheSprint(30days)• SprintPlanningMeeting(8hours)• DailyScrumMeeting(Max15min,Everydayatthesametime)(alsocalledStandupMeeting)
• SprintReview(4hours)
26
ScrumArtifacts
• ProductBacklog• SprintBacklog• Increment
27
TheScrumTeam• ProductOwner• ScrumMaster• DevelopmentTeam– 3-9persons
28
DailyScrumMeeting
29
StarTrekO.W
idde
r.(201
3).geek&
poke.A
vailable:
http://geek-and-po
ke.com
DailyScrumMeeting• Max15min.• Themeetingisheldatthesametimeandplaceeveryday• “StandUp”Meeting• Purpose:– Synchronizeactivitiesandcreateaplanfornext24hours.– TrackProgress
• Agenda– EachTeammemberanswer3Questions:1. Whathasbeenaccomplishedsincelastmeeting?2. Whatwillbedonebeforethenextmeeting?3. Whatobstaclesareintheway?
30
31
Scrum101- Part1- http://www.youtube.com/watch?v=aQrsVfjbQZ4
ScrumatMicrosoft(Long)- http://www.youtube.com/watch?v=-UUrLxNBK_g
ScrumatMicrosoft(Short)– http://youtu.be/YR84qH6d7QE
DailyScrumMeeting(Badvs.GoodExample):http://www.youtube.com/watch?v=q_R9wQY4G5I
ScrumVideos
Hans-PetterHalvorsen,M.Sc.
ScrumMeetings
ScrumMeetings• Themeetingagenda shouldbeclear.• Ifteammembersstartadiscussionthatdoesnotaddressthepurposeofthemeeting,themembersshouldtakethediscussionoffline,tobecompletedlater.TheScrumMastershouldidentifyandindicatewhenteammembersshouldtakeadiscussionoffline.
• Allmeetingsshouldfollowthebasicstructurethatisdescribedforthatmeeting.• Meetingsshouldstartontime,evenifsometeammembersarelate.• Teammembersshouldbeontimeexceptinrare,unavoidablecases.Ifyourschedulepreventsyoufrombeingontimeregularly,theconflictshouldberesolvedassoonaspossible.Ifnecessary,theScrumMastershouldadjustthemeetingtimetoresolvetheconflictifthechangedoesnotunfairlyinconvenienceanothermemberoftheteam.
• Eachteammembershouldcometothemeetingprepared.• Meetingsshouldfinishontime.Inmostcases,thelengthofthemeetingisdeterminedbythelengthofthesprint.Forexample,taketwohoursforasprintplanningmeetingifthesprintisoneweeklongandfourhoursifthesprintistwoweekslong.
• Scrumenforcesthismeetingstructuretoalevelthatmightmakepeopleuncomfortable.Thisreactioncomesfromthepressuretobeontime,thepeeraccountabilitythatisassociatedwithmakingandkeepingcommitments,andthetransparencythatisrequiredtoactivelyparticipate.DailyScrummeetingarealsousuallyastandupmeetings.
33
ScrumMeetings
34http://msdn.microsoft.com/en-us/library/dd997582(v=vs.100).aspx
WhenyourteampracticesScrum,itwillholdasetofmeetings,andeachmeetinghasaspecificpurposeandfrequency.YourScrumMastershouldensurethateachmeetingfulfillsitsintendedpurpose.
ScrumMeetings• Themeetingagendashouldbeclear.• Ifteammembersstartadiscussionthatdoesnotaddressthepurposeofthemeeting,themembersshouldtakethediscussionoffline,tobecompletedlater.TheScrumMastershouldidentifyandindicatewhenteammembersshouldtakeadiscussionoffline.
• Allmeetingsshouldfollowthebasicstructurethatisdescribedforthatmeeting.• Meetingsshouldstartontime,evenifsometeammembersarelate.• Teammembersshouldbeontimeexceptinrare,unavoidablecases.Ifyourschedulepreventsyoufrombeingontimeregularly,theconflictshouldberesolvedassoonaspossible.Ifnecessary,theScrumMastershouldadjustthemeetingtimetoresolvetheconflictifthechangedoesnotunfairlyinconvenienceanothermemberoftheteam.
• Eachteammembershouldcometothemeetingprepared.• Meetingsshouldfinishontime.Inmostcases,thelengthofthemeetingisdeterminedbythelengthofthesprint.Forexample,taketwohoursforasprintplanningmeetingifthesprintisoneweeklongandfourhoursifthesprintistwoweekslong.
• Scrumenforcesthismeetingstructuretoalevelthatmightmakepeopleuncomfortable.Thisreactioncomesfromthepressuretobeontime,thepeeraccountabilitythatisassociatedwithmakingandkeepingcommitments,andthetransparencythatisrequiredtoactivelyparticipate.DailyScrummeetingarealsousuallyastandupmeetings.Whenyoustandupitforcesyoutobeshortandfocused,soyoudon’twastetimeonmeetings.
35
SprintPlanningMeeting• Yourteambuildsthesprintbacklogintheplanningmeetingonthefirstdayofthesprint
• Atthismeeting,yourproductownerworkswithyourteamtodeterminewhichstoriesitwillcompleteinthesprint
• Yourteamthenbreaksthoseuserstoriesdownintotasksandestimates theworkthatisrequiredtocompletethem
• Tasksshouldtakenomorethanadaytocomplete• Assigntaskstotheteammembers
36http://msdn.microsoft.com/en-us/library/ee191595(v=vs.100).aspx
DailyScrumMeeting• Thegoaltomakeforwardprogressisclear,andyourteampullstogethertowardthatcommongoal.• YourScrumMasterstrictlyenforcesthestructureofthemeetingandensurethatitstartsontimeand
finishesin15minutes orless.Inthismeeting,eachmemberoftheteamanswers3questions:– WhathaveIaccomplishedsincethemostrecentScrum?– WhatwillIaccomplishbeforethenextScrum?– Whatblockingissuesorimpedimentsmightaffectmywork?
• Itisimportantthatteammembersanswerthesequestionsquicklyandconcisely.• Thetimeforelaborationisafterthemeeting,aspeoplereturntotheirdesksor,ifasignificantamountof
conversationisnecessary,inafollow-upmeeting.• Manyteamsdelaydiscussionsbyusingthe"virtualparkinglot"method.Astopicscomeupthatateam
memberfeelsmustbediscussedlater,anyteammembercanquietlywalktoawhiteboardorflipchartandlistthetopicintheparkinglot.Attheendofthemeeting,theteamplanstodiscusstopicsthatappearinthelist.
• AnotheraspectofasuccessfulScrumisthatpeopleactuallystandup.Whentheteamstandsup,membersfeeluncomfortable,especiallywhentheyarespeaking.Ifeveryonestands,themeetingwillkeepmovinganddiscouragelengthyconversations.
• Third,themeetingshouldstartandendontimeandbeatthesametimeinthesamelocationeveryday• Usefultools:TaskboardandBurndownchart
37http://msdn.microsoft.com/en-us/library/ee191590(v=vs.100).aspx
DailyScrumMeeting
38
Max.15min.!!!
DailyScrumMeeting
39
ProductOwnermayjointheDailyScrumMeetings– butarenotallowedtosayanything!
TheDailyScrumMeetingisalsoaStandupMeeting!
SprintReviewMeeting• Onthelastdayofthesprint,yourteammeetswithyourproduct
owner,customers,andstakeholderstoacceptcompletedworkandtoidentifynewrequirements.
• Inthismeeting,yourteamdemonstrateseachuserstorythatitcompletedinthesprint.
• Inmanycases,yourcustomerswillunderstandtheiradditionalneedsmorefullyafterseeingthedemonstrationsandwillidentifyanddiscussthechangesthattheywanttosee.
• Basedonthismeeting,someuserstorieswillbeacceptedascomplete.Incompleteuserstorieswillremainintheproductbacklog,andnewuserstorieswillbeaddedtotheproductbacklog.
• Afterthismeetingandtheretrospectivemeeting,yourteamwillplanthenextsprint.
40http://msdn.microsoft.com/en-us/library/ee191592(v=vs.100).aspx
Hans-PetterHalvorsen,M.Sc.
ScrumProjectManagement
Taskboard
42
Taskboard
44
Taskboard
BurndownChart
45
UsingScruminLargeSoftwareDevelopment?
DevelopmentTeam,3-9persons DevelopmentTeam,3-9persons
DevelopmentTeam3-9persons
DevelopmentTeam3-9persons
ProjectManagement
ScrumMaster
StakeholdersProjectLeaders
GanttChartvs.Backlog
Details.ItisusedbytheScrumTeam/DevelopmentTeam
The“BigPicture”.ItisusedbyManagers,ProjectLeaders,etc.OverallProjectManagementforseveralTeams.
GanttChartisnotpartofScrum,butcanbehandy!
Hans-PetterHalvorsen,M.Sc.
UsingTeamFoundationServertogetherwithScrum
UsingScrumwithTFS• TFS– TeamFoundationServer
• TFShasbuilt-inTemplatesforAgileDevelopmentandScrum
49
ProductBacklogandSprintBacklog
50
DigitalTaskboardinTFS
51
UsingTFStocreatetheBacklog
52http://msdn.microsoft.com/en-us/library/ee518933.aspx
SprintBackloginTFS
53
BreakitemsdownintoTasks
54
Inthesprintbacklog,addatask:
Givethetaskaname,andestimatetheworkitwilltake:
55
FinalResults:
UsetheTaskbordtoupdateTasks
56
Thetaskboardisattheheartofdailystandups.Movetasksonthetaskboardtoreflecttheircurrentstate.
UsetheTaskbordtoupdateTasks
57
Youcanassignatasktoaspecificperson:
UsetheTaskbordtoupdateTasks
58
Updatetheremainingworkbyeitherusingthedrop-downlistortypingaspecificvalue:
BurndownChartExample
59
Reviewoverallprogressbyopeningtheburndownchartforthesprint:
Stakeholders
ProductOwner
ScrumMasterProductBacklog
DevelopmentTeam3-9persons
SprintBacklog
Sprint
DailyScrumMeetings
SprintReview
Summary
References• I.Sommerville,SoftwareEngineering:Pearson,2010.• E.J.BraudeandM.E.Bernstein,SoftwareEngineering:ModernApproaches,2ed.:
Wiley,2011.• Microsoft.(2013).ApplicationLifecycleManagementwithVisualStudioandTeam
FoundationServer.Available:http://msdn.microsoft.com/en-us/library/fda2bad5.aspx
• Wikipedia.(2013).ScrumDevelopment.Available:http://en.wikipedia.org/wiki/Scrum_(development)
• Wikipedia.(2013).AgileSoftwareDevelopment.Available:http://en.wikipedia.org/wiki/Agile_software_development
• CoreTrek.(2013).Scrumietnøtteskall.Available:http://www.coretrek.no/scrum-i-et-noetteskall/category642.html
• S.Adams.Dilbert.Available:http://dilbert.com• O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorwaywww.usn.no
E-mail:[email protected]:http://home.hit.no/~hansha/