+ All Categories
Home > Documents > Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we...

Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we...

Date post: 17-May-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
35
Hans-Petter Halvorsen Agile Software Development S. Adams. Dilbert. Available: http://dilbert.com
Transcript
Page 1: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Hans-PetterHalvorsen

AgileSoftwareDevelopment

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

Page 2: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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

Agile?

Page 3: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

3

Page 4: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

4

TypicalJobAd

Agilemethodshavebecomeverypopularthesedays!!

Page 5: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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 Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Agilemethods

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

6

Page 7: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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 Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

TeamsandRoles

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

8

UXDesigner Programmer

SoftwareTester

ProjectManager

SoftwareArchitect

Collaboration!

Customer/Stakeholders

Page 9: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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 Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Agilevs.TraditionalDevelopment

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

Page 11: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Agilevs.Traditional

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

Page 12: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

12

AgileSoftwareDevelopment

O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 13: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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 Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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

Page 15: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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

AgileDevelopment

Page 16: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Agile

16

• Agroupofsoftwaredevelopmentmethods• Iterativeapproach• Incremental:SoftwareavailabletoCustomersevery2-4weeks

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

Page 17: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

17O.W

idde

r.(201

3).geek&

poke.A

vailable:http://geek-and

-poke.com

Page 18: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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

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

progressovertime.

18

Page 19: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

CodeReview&Refactoring

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

Page 20: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Hans-PetterHalvorsen,M.Sc.

eXtremeProgramming

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

Page 21: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

eXremeProgramming(XP)

21

Page 22: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

eXremeProgramming(XP)

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

22

Page 23: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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 Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

24

Page 25: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Refactoring

25

Page 26: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

26

Page 27: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Hans-PetterHalvorsen,M.Sc.

Scrum

Page 28: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Stakeholders

ProductOwner

ScrumMaster

ProductBacklog

DevelopmentTeam3-9persons

SprintBacklog

Sprint

DailyScrumMeetings

SprintReview

Scrum

Page 29: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Scrum

29

DailyScrumMeetings

SprintReview

Page 30: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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

30

Page 31: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Hans-PetterHalvorsen,M.Sc.

LeanSoftware

Development

Page 32: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

LeanSoftwareDevelopment

• BasedontheToyotaProductionSystemandLeanmanufacuring

32

Page 33: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Summary

33

• Youshould“always”RefactoryourCode– evenifyoudon’tdoAgile!

• PairProgrammingcouldbeusefulinsomesituations

• ScrumisprobablythemostpopularAgilemethod

• Agilemeanslessdocumentation• Agileismoreflexiblethantraditionalmethods(likethewaterfall)

Page 34: Agile Software Development Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

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 Overview - halvorsen.blog · Feature Driven Development (FDD) Even if we use different software development methods, we deal with the same phases like Requirements,

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

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


Recommended