agile software development overview - halvorsen.blog · feature driven development (fdd) even if we...

Post on 17-May-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Hans-PetterHalvorsen

AgileSoftwareDevelopment

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

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

Agile?

3

4

TypicalJobAd

Agilemethodshavebecomeverypopularthesedays!!

TheDevelopmentProcess

5

Design

Implementation

Testing

Requirements

Deployment

InthiscasetheoverallRequirementsaregivenbytheTeacherintheAssignment.Thedetailsarewrittenbyyou!

TheDevelopmentProcessinvolvesdifferentphases,e.g.:

TheRequirementsmaybegivenbytheCustomer

Whenyouarefinished,youdeployandtestthesolutionontheCustomerSite

Makesureeverythingworkasexpected

TheDesignphaseisimportant,butmakesureyouhavetimeleftforalltheothertasksaswell)AretheDesignwrong?Go

backandcorrectit!

Errors?Improveyourcodeandfixthebugs

&Maintenance

Agilemethods

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

6

SoftwareDevelopmentMethods

7

TraditionalPlan-drivenMethods AgileMethods

WaterfallMethod

V-Model

Scrum

eXtremeProgramming

(XP)

LeanSoftwareDevelopment

FeatureDrivenDevelopment(FDD)

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

SpiralmodelTestDriven

Development(TDD)

TeamsandRoles

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

8

UXDesigner Programmer

SoftwareTester

ProjectManager

SoftwareArchitect

Collaboration!

Customer/Stakeholders

Plan-drivenvs.Agile

9

Requirementsspecification

Requirementsengineering

Design andimplementation

Requirements changerequests

Plan-based development

Agile development

Requirementsengineering

Design andimplementation

I.Sommerville,SoftwareEngineering:Pearson,2010.

Agilevs.TraditionalDevelopment

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

Agilevs.Traditional

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

12

AgileSoftwareDevelopment

O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

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

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

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

AgileDevelopment

Agile

16

• Agroupofsoftwaredevelopmentmethods• Iterativeapproach• Incremental:SoftwareavailabletoCustomersevery2-4weeks

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

17O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

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

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

progressovertime.

18

CodeReview&Refactoring

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

Hans-PetterHalvorsen,M.Sc.

eXtremeProgramming

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

eXremeProgramming(XP)

21

eXremeProgramming(XP)

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

22

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

24

Refactoring

25

26

Hans-PetterHalvorsen,M.Sc.

Scrum

Stakeholders

ProductOwner

ScrumMaster

ProductBacklog

DevelopmentTeam3-9persons

SprintBacklog

Sprint

DailyScrumMeetings

SprintReview

Scrum

Scrum

29

DailyScrumMeetings

SprintReview

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

30

Hans-PetterHalvorsen,M.Sc.

LeanSoftware

Development

LeanSoftwareDevelopment

• BasedontheToyotaProductionSystemandLeanmanufacuring

32

Summary

33

• Youshould“always”RefactoryourCode– evenifyoudon’tdoAgile!

• PairProgrammingcouldbeusefulinsomesituations

• ScrumisprobablythemostpopularAgilemethod

• Agilemeanslessdocumentation• Agileismoreflexiblethantraditionalmethods(likethewaterfall)

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

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

E-mail:hans.p.halvorsen@hit.noBlog:http://home.hit.no/~hansha/

top related