Agile Software Development - The Technical Guy … Plan -driven vs. Agile Software Development...

Preview:

Citation preview

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:hans.p.halvorsen@hit.noBlog:http://home.hit.no/~hansha/

Recommended