agile software development overview - halvorsen.blog · feature driven development (fdd) even if we...
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/1.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/2.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/3.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/4.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/5.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/6.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/7.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/8.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/9.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/10.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/11.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/12.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/13.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/14.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/15.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/16.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/17.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/18.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/19.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/20.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/21.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/22.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/23.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/24.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/25.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/26.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/27.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/28.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/29.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/30.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/31.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/32.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/33.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/34.jpg)
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,](https://reader033.vdocuments.net/reader033/viewer/2022042217/5ec01fef2f49c30cb37c16a1/html5/thumbnails/35.jpg)
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorwaywww.usn.no
E-mail:[email protected]:http://home.hit.no/~hansha/