agile software development...

35
Hans-Petter Halvorsen Agile Software Development S. Adams. Dilbert. Available: http://dilbert.com

Upload: hoangmien

Post on 20-Mar-2018

230 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Hans-PetterHalvorsen

AgileSoftwareDevelopment

S.Adams.Dilbert.Available:http://dilbert.com

Page 2: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

I’ll go up and find out what they need and the rest of you start coding!

Agile?

Page 3: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

3

Page 4: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

4

TypicalJobAd

Agilemethodshavebecomeverypopularthesedays!!

Page 5: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

TheDevelopmentProcess

5

Design

Implementation

Testing

Requirements

Deployment

InthiscasetheoverallRequirementsaregivenbytheTeacherintheAssignment.Thedetailsarewrittenbyyou!

TheDevelopmentProcessinvolvesdifferentphases,e.g.:

TheRequirementsmaybegivenbytheCustomer

Whenyouarefinished,youdeployandtestthesolutionontheCustomerSite

Makesureeverythingworkasexpected

TheDesignphaseisimportant,butmakesureyouhavetimeleftforalltheothertasksaswell)AretheDesignwrong?Go

backandcorrectit!

Errors?Improveyourcodeandfixthebugs

&Maintenance

Page 6: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Agilemethods

• Scrum• XP(eXtremeProgramming)• LeanSoftwareDevelopment• FeatureDrivenDevelopment(FDD)• TestDrivenDevelopment(TDD)• etc.

6

Page 7: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

SoftwareDevelopmentMethods

7

TraditionalPlan-drivenMethods AgileMethods

WaterfallMethod

V-Model

Scrum

eXtremeProgramming

(XP)

LeanSoftwareDevelopment

FeatureDrivenDevelopment(FDD)

Evenifweusedifferentsoftwaredevelopmentmethods,wedealwiththesamephaseslikeRequirements,Design,Coding,TestingandDeployment– buttheymayhavedifferentpriorityandmaybedoneindifferentmannersandorder,etc.

SpiralmodelTestDriven

Development(TDD)

Page 8: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

TeamsandRoles

• Customer/Stakeholders• ProjectManager• SoftwareArchitect• UXDesigner• Developer• Tester• etc.

8

UXDesigner Programmer

SoftwareTester

ProjectManager

SoftwareArchitect

Collaboration!

Customer/Stakeholders

Page 9: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Plan-drivenvs.Agile

9

Requirementsspecification

Requirementsengineering

Design andimplementation

Requirements changerequests

Plan-based development

Agile development

Requirementsengineering

Design andimplementation

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 10: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Agilevs.TraditionalDevelopment

10Wikipedia.(2013).AgileSoftwareDevelopment.Available:http://en.wikipedia.org/wiki/Agile_software_development

Page 11: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Agilevs.Traditional

11EssentialsofSoftwareEngineering,FrankTsui;OrlandoKaram;BarbaraBernal,3ed.,Jones&BartlettLearning.

Page 12: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

12

AgileSoftwareDevelopment

O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 13: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

ManifestoforAgileSoftwareDevelopmentWeareuncoveringbetterwaysofdevelopingsoftwarebydoingitandhelpingothersdoit.Throughthisworkwehavecometovalue:• Individualsandinteractionsoverprocesses

andtools• Workingsoftwareovercomprehensive

documentation• Customercollaborationovercontract

negotiation• RespondingtochangeoverfollowingaplanThatis,whilethereisvalueintheitemsontheright,wevaluetheitemsontheleftmore.

13

AgileAlliance.(2013).AgileManifesto.Available:http://agilemanifesto.org

O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 14: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

14Wikipedia.(2013).AgileSoftwareDevelopment.Available:http://en.wikipedia.org/wiki/Agile_software_development

Page 15: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

15O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com

AgileDevelopment

Page 16: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Agile

16

• Agroupofsoftwaredevelopmentmethods• Iterativeapproach• Incremental:SoftwareavailabletoCustomersevery2-4weeks

• Self-organizingandcross-functionalTeams• RefactoringExamples:• Scrum• eXtremeProgramming(XP)

Page 17: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

17O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 18: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

BurnDownChart• Aburndownchartisagraphicalrepresentationofworklefttodoversustime.• Theoutstandingwork(orbacklog)isoftenontheverticalaxis,withtimealongthe

horizontal.Thatis,itisarunchartofoutstandingwork.• Itisusefulforpredictingwhenalloftheworkwillbecompleted.• ItisoftenusedinagilesoftwaredevelopmentmethodologiessuchasScrum.• However,burndownchartscanbeappliedtoanyprojectcontainingmeasurable

progressovertime.

18

Page 19: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

CodeReview&Refactoring

19O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com

Page 20: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Hans-PetterHalvorsen,M.Sc.

eXtremeProgramming

O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com

Page 21: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

eXremeProgramming(XP)

21

Page 22: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

eXremeProgramming(XP)

• AnAgilemethod• PairProgramming• CodeReviews• Refactoring• UnitTesting• StandupMeetings

22

Page 23: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

23

PairProgramming

IsPairProgrammingGoodorBad?• VariousStudiesoftheProductivityofPair

Programming• Study1:Comparablewiththatof2developers

workindependtly• Study2:Asignificantlossinproductivity

comparedwith2developerswprkingalone

Shouldthe2developershavethesameskillsornot?

Newerless,therearebenefits:• CollectiveOwnership• ContinuousinformalReview processbecauseeach

codelineislookedatbyatleast2people• ItsupportsRefactoring,whichisaprocesof

softwareimprovement• Lesstimeisspentonrepairingbugs.• ImprovedCodeQuality• Itreducedtheoverallrisks

I.Sommerville,SoftwareEngineering:Pearson,2010.

O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 24: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

24

Page 25: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Refactoring

25

Page 26: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

26

Page 27: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Hans-PetterHalvorsen,M.Sc.

Scrum

Page 28: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Stakeholders

ProductOwner

ScrumMaster

ProductBacklog

DevelopmentTeam3-9persons

SprintBacklog

Sprint

DailyScrumMeetings

SprintReview

Scrum

Page 29: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Scrum

29

DailyScrumMeetings

SprintReview

Page 30: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Scrum• AFrameworkforSoftwareDevelopment• AgileSoftwareDevelopmentmethod• Simpletounderstand• Flexible• Exremelydifficulttomaster!• Self-organizingTeams(3-9persons)• ScrumTeam:– ProductOwner– ScrumMaster– DevelopmentTeam

30

Page 31: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Hans-PetterHalvorsen,M.Sc.

LeanSoftware

Development

Page 32: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

LeanSoftwareDevelopment

• BasedontheToyotaProductionSystemandLeanmanufacuring

32

Page 33: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Summary

33

• Youshould“always”RefactoryourCode– evenifyoudon’tdoAgile!

• PairProgrammingcouldbeusefulinsomesituations

• ScrumisprobablythemostpopularAgilemethod

• Agilemeanslessdocumentation• Agileismoreflexiblethantraditionalmethods(likethewaterfall)

Page 34: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

References• I.Sommerville,SoftwareEngineering:Pearson,2010.• E.J.BraudeandM.E.Bernstein,SoftwareEngineering.ModernApproaches,2ed.:

Wiley,2011.• 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• AgileAlliance.(2013).AgileManifesto.Available:http://agilemanifesto.org• EssentialsofSoftwareEngineering,FrankTsui;OrlandoKaram;BarbaraBernal,3ed.,

Jones&BartlettLearning.

34

Page 35: Agile Software Development Overviewhome.hit.no/~hansha/documents/software/software_development/top… · Software Development Methods 7 Traditional Plan -driven Methods Agile Methods

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

E-mail:[email protected]:http://home.hit.no/~hansha/