Top Banner
Agile Software Development The most important Methods – Status Report 2010 BQI Research [email protected]
76

Agile Software Development Methods 2010 e Ga Co

Mar 02, 2015

Download

Documents

Jan Liwski
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile Software Development Methods 2010 e Ga Co

Agile Software Development

The most important Methods –

Status Report 2010

BQI Research

[email protected]

Page 3: Agile Software Development Methods 2010 e Ga Co

Table of ConTenTs1 INTRODUCTION 42 AGILITY IN SOFTWARE DEVELOPMENT 5

2.1 Definition“Agility” 52.2 Theagilemanifesto 5

3 AGILE PROCEDURE MODELS 73.1 ActiF 93.2 AdaptiveSoftwareDevelopment(ASD) 93.3 AgileEnterprise(formerlyXBreed) 103.4 AgileModelDrivenDevelopment(AMDD) 113.5 BehaviorDrivenDevelopment(BDD) 123.6 Crystal 133.7 DesignDrivenDevelopment(D3) 143.8 DynamicSystemDevelopmentMethod(DSDM) 153.9 EclipseWayProcess 173.10 EvolutionaryProcessForIntegratingCots-BasedSystems(EPIC) 173.11 EvolutionaryProjectManagement&ProductDevelopment(EVO) 193.12 ExtremeProgramming(XP) 203.13 FeatureDrivenDevelopment(FDD) 253.14 Iconix 293.15 Internet-SpeedDevelopment 313.16 LeanSoftwareDevelopment(LSD) 323.17 MicrosoftSolutionsFrameworkForAgileSoftwareDevelopment(MSF4ASD) 363.18 Mobile-D 373.19 RapidApplicationDevelopment(RAD) 373.20 Scrum 383.21 TestDrivenDevelopment(TDD) 403.22 UnifiedProcess(UP) 413.23 UsabilityDrivenDevelopment(UDD) 46

4 EVALUATION 494.1 Coverageofdisciplinesinsoftwareengineering 494.2 Profilesafterevaluatingthemethods 524.3 Tables 58

5 LINKS 686 SUMMARY 707 ABOUTBQI 718 DISCLAIMER 73

[email protected]

Page 4: Agile Software Development Methods 2010 e Ga Co

foReWoRD Rapidlygrowingbusinessrivalry,shortenproductlife-cycles,highcomplexityaswellashighexpectationsconcerningqualityleadtothefactthatsoftwareshouldnot“only”beinnovativeanduseful.Inordertostaycompetitiveasabusinesscompany,applicationshavetobedeployedmorequicklytotheuser.User-requests that change very quickly should be answered short-termed.Thus,thedevelopmentofsoftwarehastobecarriedoutquickly,flexible,effi-cientandundercomplianceofaconstantlevelofquality.

Throughtheserequirements,avarietyofsoftwareengineeringmethodshavebeenevolvedoverthecourseofthelastyears,whicharecategorizedas“agile”incommonsense.Asaconsequenceconsulting-andsystemhousearefacedwiththissubjectuponitscustomersingrowingextent.Eitherinthewaythatprojectsarealreadyaccomplished“agile”or inthewaythatcustomersaregettingsupportfromusduringintroducingappropriatemethod(s).

Assoonasyouconcernyourselfabout“agilesoftwaredevelopment”,youmayrecognizequicklythatthereareplentyofmethodsandthatitisnoteasytoidentifytheonesthatcomeintoconsiderationforyourobjective.Thereforewedesignedthisoverview–includingatryofevaluatingeverysinglemethod.

Despiteknowingapproximatelyinwhatwearegettinginto,whenitcametoinquiryweweresurprisedbythediversityofmethodsthatareinternationallyexisting.Wehadtolimitourselvesinordertopublishthissurveyasintendedin2010.Thus,afewmethodsweknowwillnotbefurtherdiscussed–youwillfindalistoftheseinchapter4.

Theauthorswishthegentlereaderasmanynewinsightsastheauthorshadthemwhileresearching.

TheBQI’sProjectTeam

Berlin,June2010

[email protected]

Page 5: Agile Software Development Methods 2010 e Ga Co

eXeCUTIVe sUMMaRY Thisreportaddressesparticularlythesemethodsofagilesoftwaredevelop-ment, which have been internationally established until now. On the basisofpublicsourcesanddocumentation,26methodswillbeshowninthefirstpart.

In thesecondpart, thesemethodswillbeevaluatedbyaseriesofcriteria,whichhavebeendevelopedbyourgroupofauthors.Ithasbeenexamined,whichdisciplinesofsoftware-engineeringarecovered,whichtypesofprojectsaresupported,iftherearefocusesconcerningbranchesandiftherearetoolstothemethodsavailable.Furthermore,thelevelofnormalization,standardi-zation,certification, licensingandthesupportduringadoptionandusehasbeenexamined.Last,butnotleastthepopularityandthelevelofdissemina-tionwith thehelpofpredefinedparameterhasbeen includedregarding toevaluation.

The object of evaluationwas to give the persons responsible during appli-cation-developmentasortofcompasstothephaseoforientationbeforetheadoptionofagilemethods.Thefiguresatthechapterofevaluationarechoseninawaythatthereadershouldbeabletoemergetwoorthreemethodsformorein-depthresearch,whenheapplieshisowncriteriaofdecision.

[email protected]

Page 6: Agile Software Development Methods 2010 e Ga Co

4

InTRoDUCTIon 1 Agilemethods facilitate projects in software developmentmore andmore.AccordingtoGartners“HypeCycleforApplicationDevelopment”(2008and2009),agilemethodshavebeenclassifiedas“EarlyMainstream”(seefigure1).Concluding,thismethodology(inGartnerclassifiedas“technology”)hasalreadybeenusedandworkedout.Vendors,themethoditselfandtheadop-tionofagilemethodswillevolverapidlyinthenextyears.Further,Gartnerpresumesitwilltakeaboutfivetotenyearsuntilthe“plateauofproductivity”isreached,inwhichagilemethodswillbeacceptedinmostenterprises.Fromthen on a substantial benefitwill be recognizable. Yet the analysts do notarriveatanagreementcompletely.AccordingtoacontemporarystudyfromForrester,agilesoftwaredevelopmentprocessesappeartobealreadyestab-lished.

However,whatmeansagilityinsoftwaredevelopmentacutally?Whatcharac-terizesagilesoftwaredevelopment?Whichagilemethodsexistalready?

The Best Quality Institute and its team of international authors have con-cernedthemselveswiththeseissuesintenselyandsummeduptheachievedinsightsinthisglobalstudy.Popularmethods(like“Scrum”or“ExtremePro-gramming”)aswellaslessknownones(like“Iconix”)havebeenanalyzed.Inordertogainatruebenefitforthereader,attheendanevaluationintermsofdifferentcriteriatakesplace(seechapter5).

HypeCycleforAppli-Figure1:cationDevelopment2008(source:Gartner,HypeCycleforApplicati-

onDevelopment2008)

[email protected]

Page 7: Agile Software Development Methods 2010 e Ga Co

5

aGIlITY In sofTWaRe DeVeloPMenT 2

DefInITIon “aGIlITY”2.1 When the term “Agility” comes into onesmind, people think of “mobility”,“adaptability”and“flexibility”.Once itgetsconnectedwith theword“soft-waredevelopment”,thequestion“whatdoesitmeanbasically?”arises.Basedon the “manifest for agile software development” the following points arerelevanttothedefintion:

Earlydeploymentofworkingsoftware ⬗Customer-requestscanbeincorporatedatanytime ⬗Collaborationoftheinvolvedpersonsdaily ⬗Face-to-faceCommunicationamongallinvolvedpersons ⬗Theteamisself-organizing ⬗Theteamachievesgrowingeffectivityautonomously ⬗

Agilesoftwaredevelopmenttakeschangesasachancetoacompetitiveadvan-tageinordertomeetcustomersrequestsasflexibleaspossibleandwithoutabigbureaucratic overhead.Thiswayahighcustomer-satisfaction canbeachieved.Theadaptabilityiscrucialtothewholeagileprocess–itcanleadto thepoint thatchangeshave tobesetup, if thesechangesappear tobereasonable,resultinginanadvantage.Now“agilesoftwaredevelopment”canbedefinedasansoftwaredevelopmentprocess:

whichadoptsnewsituationsflexible,fastandwithoutabigbureaucra- ⬗ticoverheadthattakeschangesasadvantage ⬗atwhichinvolvedpersonsmeeteachotherinface-to-face-communica- ⬗tionanddailycollaborationinwhichtheproject-teamisself-organizingandresponsibleforgro- ⬗wingeffectivityinwhichcustomerrequestscanbeincorporatedatanytime ⬗thatdeploysanoperatingsoftware(notaprototype!)early ⬗

The aGIle ManIfesTo2.2 Theagilemanifesto(www.agilemanifesto.org)wasfoundedin2001byKentBeck,MartinFowlerandKenSchwaber;itrepresentsanewparadigminsoft-ware development. It describes away off from rigid, inflexible and formalprocessestowardflexibilityandcommunication.Theagilemanifestoencom-passesfourvaluationsandtwelveprinciples.

Thosevaluationsare:

Individualsandinteractionsoverrideprocessesandtools. ⬗Viableproductsoverrideexpandeddocumentation ⬗Collaborationwiththecustomeroverridescontract ⬗Dwellingonchangesoverridesrigoroustracingofconcepts ⬗

[email protected]

Page 8: Agile Software Development Methods 2010 e Ga Co

6

Theprinciplesoftheagilemanifestoare:

Ourhighestpriorityistosatisfythecustomerthroughearlyandconti- ⬗nuousdeliveryofvaluablesoftware.Welcomechangingrequirements,evenlateindevelopment.Agilepro- ⬗cessesharnesschangeforthecustomer‘scompetitiveadvantage.Deliverworkingsoftwarefrequently,fromacoupleofweekstoacoup- ⬗leofmonths,withapreferencetotheshortertimescale.Businesspeopleanddevelopersmustworktogetherdailythroughout ⬗theproject.Buildprojectsaroundmotivatedindividuals.Givethemtheenviron- ⬗mentandsupporttheyneed,andtrustthemtogetthejobdone.Themostefficientandeffectivemethodofconveyinginformationto ⬗andwithinadevelopmentteamisface-to-faceconversation.Workingsoftwareistheprimarymeasureofprogress. ⬗Agileprocessespromotesustainabledevelopment.Thesponsors,deve- ⬗lopers,andusersshouldbeabletomaintainaconstantpaceindefini-tely.Continuousattentiontotechnicalexcellenceandgooddesignenhan- ⬗cesagility.Simplicity–theartofmaximizingtheamountofworknotdone–is ⬗essential.Thebestarchitectures,requirements,anddesignsemergefromself- ⬗organizingteams.Atregularintervals,theteamreflectsonhowtobecomemoreeffec- ⬗tive,thentunesandadjustsitsbehavioraccordingly

The agilemanifesto is the foundation of agile softwaredevelopment.Agileproceduremodelsapplyonthatfoundationandimplementthevaluationsandprinciplesoftheagilemanifesto.

[email protected]

Page 9: Agile Software Development Methods 2010 e Ga Co

7

aGIle PRoCeDURe MoDels 3 Duringoursubstantialresearchmanyas“agile”namedmethodshavebeenfound.Inthesecondlistbelowyouwillfindthosemethodsthatareindeedknowntous,butwhicheitherdonotfittoourscaleorappeartobetooexcep-tionallytobediscussedhere.

Listoftheanalyzedmethods:

ActiF ⬗AdaptiveSoftwareDevelopment(ASD) ⬗AgileEnterprise(formerlyXBreed) ⬗AgileModelDrivenDevelopment(AMDD) ⬗BehaviorDrivenDevelopment(BDD) ⬗Crystal ⬗DesignDrivenDevelopment(D3) ⬗DynamicSystemDevelopmentMethod(DSDM) ⬗EclipseWayProcess ⬗EvolutionaryProcessforintegratingCOTS-BasedSystems(EPIC) ⬗EvolutionaryProjectManagement&ProductDevelopment(EVO) ⬗ExtremeProgramming(XP) ⬗FeatureDrivenDevelopment(FDD) ⬗Iconix ⬗InternetSpeedDevelopment ⬗LeanSoftwareDevelopment(LSD ⬗MicrosoftSolutionsFrameworkforagileDevelopment(MSF4ASD) ⬗Mobile-D ⬗RapidApplicationDevelopment(RAD) ⬗Scrum ⬗TestDrivenDevelopment(TDD) ⬗UnifiedProcess(UP) ⬗UsabilityDrivenDevelopment(UDD) ⬗

Agile,butnotwidespreadmethods:

UniversalApplication ⬗UPXS ⬗

Concerningthefollowingmethodshasbeenascertainedthatthesedonotfittoourdefinitionof“agility”(seechapter3.1),hencecannotbeclassifiedas“agil”andwerenotanalyzedfurther:

PragmaticProgramming: ⬗~isnotanagilemethod,butaguidelinetoadoptthesethingsfromothermethods,whichappeartobereasonable.Itgoesbacktothebook“DerPragmatischeProgammierer”(thepragmaticprogrammer)fromAndrewHuntandDavidThomas.Software-Expedition: ⬗~isnotanagilemethod,butadissertationinwhichitisexaminedtowhatextenttheguidingprincipleofanexpeditioncanleadtoabetterunderstandingofsoftwaredevelopmentprojects.ProcessPatterns: ⬗

[email protected]

Page 10: Agile Software Development Methods 2010 e Ga Co

8

~representaproven(pattern-)processthatsolveafrequentlyoccur-ringproblem.Theproblemembodiesaconcretesituation,whichcanariseduringthesoftwaredevelopment.Theprocessdescribesabunchofactivitiesthatcanbeimplementedtosolvetheproblem.Catalysis: ⬗~isnotanagilemethod,butanapproachtoshapeonthefootofUML(seehttp://www.catalysis.org/index.html).SoftwarePrototyping: ⬗~isnotautomaticallyagile–itjusttellsusthatitshouldbeworkedwithprototypes.SoftwareCraftsmanship ⬗~isnotanagilemethod,butanextensionoftheagilemanifestocon-cerningassertionsto“softwarehandwerkskunst”(softwarecraftsman-ship)(seehttp://manifesto.software-craftsmanship.org/)

[email protected]

Page 11: Agile Software Development Methods 2010 e Ga Co

9

aCTIf 3.1

ActiFisaproceduremodelconcerningsoftwareplanningandsoftwaredeve-lopment,which is supportedby theproduct „in-Step“ that comes from thesame enterprise named microTOOL. It is grounded on an agile, iterativeapproachand is stronglydrivenby requirements.ActiFarranges theorga-nizedhandling(allocationandadministration)withtasksandresponsabilitieswithinagroupofdevelopers.ActiFistailoredtoobject-orienteddevelopmentbyUMLinC#orVisualBasic.NETwithMicrosoftVisualStudio.NET.ActiFtherebyprovides a concrete process pattern to this development platform.Itdefinesallactivitiesandresults,whichmaybe found inanagileprojectinthistechnicalenvironment.Whereverpossible,ActiFoffersmachine-madetemplatesfortheresults.

aDaPTIVe sofTWaRe DeVeloPMenT (asD) 3.2 AccordingtothedeveloperoftheASD-MethodologyJamesA.HighsmithIIIasoftware-developerteamisacomplexsystem,inwhichseveralpersonsworktogether to generate one solution.Generally it is believed that those com-plexsystemsneedcomplexrulesaswellinordertoworkanyway.YetHigh-smithdeniesthatandallegesthatfew,simplebasicrulesaresufficient.Byhisownadmission,softwaredevelopmentshouldbefunand,moreover,thebestsoftwareemergesratheraccidentally.Hedeclaresthisphenomenonas„Emergence“,whichisoneofthemostimportantsignstoadaptivesoftwaredevelopment.

„Emergence“ isequal to realizationofnew ideas,solvingproblemsaswellascreativityinthiscontext.Inordertopreventadisorderlyrunningproject,ASD provides a framework including only just asmany guidelines as nee-dednottodisplace„Emergence“.Thefocusofthismethodismoreupontheresultsandthequalityofthese(component-orientation)thanuponthetaskstobecarriedoutortheprocessthatisneededtoachievetheobjective(task-orientation).Thisisachievedbyadaptivedevelopment-cycles.Thefoundationofeverycycleisthewaterfall-modelwiththefollowingstages:

Plan ⬗Build ⬗Implement ⬗

ThesetraditionalstagesaresubstitutedinASDbythefollowingterms:

Speculate ⬗Collaborate ⬗Learn ⬗

Agreateracceptancetotheagileapproachshallbereachedbyrenamingthestages.Thus,aplanisgenerallyspeakingasdefinedinexactlyandeverydriftfromtheplanisconsideredasamistake.Byrenaming„Plan“(plan)to„Spe-kulation“ (speculation) an understanding shall be created,meaning a driftfromtheplanisnothingbadandthatitcanbeusedasadvantageandchance.Forthispurpose,newapproachesandideasarewelcome.Everycycleconsistsoftheabovementionedstages.Theresultofeverycycleisanexecutablepieceofsoftware.

[email protected]

Page 12: Agile Software Development Methods 2010 e Ga Co

10

sPeCUlaTe: Inthisstagetheentiresuperiorstrategyoftheprocedureandobjectivescon-cerningthedevelopmentcycletakesplace.Thebasicconditionsofthispro-jectaredefinedintheprojectmission,whichalreadysetsaroughframeworkfortheendproduct.Thewholedevelopmentiscontrolledinawaythattheprojectmissioncanberealized.

WoRkInG ToGeTheR (CollaboRaTe): Thecyclesthathavebeenenvisagedinthepriorstagespeculatearetrans-lated and implemented here. Beneath highlighting the importance of teamwork,severalcomponentsaredevelopedsimultaneously.Thedescriptionsoftheindividualcomponentsarerefinedconstantlytodocumentnewinforma-tionimmediately.

leaRnInG (leaRn): Ifadditionalcyclesshallbe integrated, itcan takeplace in thisstageonly.Othercyclesaredeclaredas“LearningLoop”.Qualityassuranceisthefoun-dation,whichfocusesthefunctionalityofthedevelopedsoftware.Itcantakeplacejustinthepresenceofthecustomer.

aGIle enTeRPRIse (foRMeRlY X bReeD) 3.3 XBreedwasoriginallypicturedbyMikeBeedleandisacombinationofScrumandXP.SinceScrumismoremanagement-orientedandXPrathertechnical,bothmodelscomplementeachother.MeanwhileXBreedhasbecomeAgileEnterprise.

AgileEnterprisesupportsnotonlyindividualprojects,butcoordinatesseveralprojectsinacompanysimultaneouslythatmayrelyonthesameresources.ThereforeAgileEnterprise applies techniques like the “ScrumofScrums”-Meeting.However,italsoentrenchesmoreresourceslikethe“GlobalBack-lock”orthe“SharedResourcesTeam”.FurthermoreAgileEnterprisepublici-zestheuseofScrumwhenitcomestoadoptionofnewbusinessprocessesormodificationofexistingones.

Adap-Figure2:tiveDevelopmentCycle(ownchart,afterHighsmith

Speculate Collaborate Learn

Learning Loop

Project start Planning of adaptive cycles

Simultaneous development of

components

Quality assurance

Final quality assurance &

release

[email protected]

Page 13: Agile Software Development Methods 2010 e Ga Co

11

aGIle MoDel DRIVen DeVeloPMenT (aMDD)3.4 AMDDis theagileversionofModel-Driven-Softwaredevelopment (MDSD).Themaindifferencebetweenthesetwomethodsistheblueprintofthemodels.InMDSDextensivemodelsarebeingdeveloped(forexampleinUML)beforewritingthesourcecode,inAMDDthedevelopmentofmodelswithminimaleffort(forexamplewhiteboard)takesplacesinordertodepictthemostbasicrequirements first. The developedmodels shall justmeet the currentwor-kload.Infurtheriterations(IterationsDevelopment),thebasicrequirementsarebeingrefinedandoptimized.

TheAMDD-Processisdepictedinfigure3andcontainsthefollowingstages:

enVIsIonInG: Atthebeginningofaprojectaclosecooperationwithstakeholderstakesplaceinordertodeterminethemostimportantbasicrequirementsandtomodeltheextentroughly.Thesystemarchitecture isalsomodelledroughly tospecifythetechnicaldirection.Theentiremodelatthisstageislessdetailedandjustsufficient.Itisessentialthattheproblemitselfgetsunderstood.

DeVeloPMenT ITeRaTIons: Atthebeginningofeachiteration,theteamplansitsworkandprioritizestherequirements.Bymeansofclosecooperationbetweenstakeholderanddeve-loperineveryiterationneworextendedrequirementscanbedeveloped.ThedevelopmentiscarriedoutbyTestDrivenDevelopment(TDD).

Release: Withinthisstagefinal-andacceptance-testiscarriedouttoverifythefunctio-nalityofthewholesystem.Anyerrorsoccurringwillbecorrected.Endusersarebeingtrainedtoworkwiththesystemeffectively.

PRoDUCTIon: Tokeepthesystemmaintainedandtosupporttheusershandlingistheaiminthisstage.Itendswhenasystemorthesupportexpires.

AMDD Figure3:Process(ownchart)

[email protected]

Page 14: Agile Software Development Methods 2010 e Ga Co

12

behaVIoR DRIVen DeVeloPMenT (bDD) 3.5 BehaviorDrivenDevelopment(BDD)wasdeveloped in2003byDanNorthasananswertoTestDrivenDevelopment.BDDfocusestodevelopsoftwarethatisrelevantforusers.Concerningtheidentificationofrequirements,thebehaviourintheformofpre-andpostconditionisacquiredaswellastheuserstories

(scheme:“Asa<ROLE>Iwant<ACTION>sothat<BENEFIT>”).

Themeansforthispurposeisthescheme“Given–When–Then”,whichcanbedescribedas“precondition–action–postcondition”.Thus, forauserstory several scenarioswithdifferentboundaryconditionscanbecreated.Theydescribeinanaturallanguagethewaythesoftwarewillbehaveineachcase.Inthefollowingyouwillfindanexamplewithabancomatasanexpla-nation.Theuserstoryfordrawingacertainamountofmoneyis:

Role action Benefit

Ascustomer Iwanttowithdrawmoneyatthebancomat

SothatIdon‘tneedtolineupatthecounter

Therearedifferentscenariosthatneedtobeconsidered,like“Istheaccountbalanced?Istheecorcreditcardvalid?”Thesescenariosaredescribedasbelow:

Given When Then

Iftheaccountisba-lancedANDthecreditcardisvalidANDthePINisenteredcor-rectlyANDthedeskhasenoughmoney

WHENthecusto-merwantstowith-drawmoney

THENcheck,iftheaccountisbalancedANDensurethatmoneywillbepaidoutANDensurethatthecreditcardwillbereturned

Asshowninthisexample,multipleconditionscanbelinkedwith„AND“.Onceyoudescribedtherequirementsthisway,thesurfaceshallbedevelopedatfirst.Thesurfaceiswhattheuserssee.Itwillbetunedandcomplywiththeuser’sfeedback.Startingfromthesurfacetherestoftheapplicationwillbeimplementedstepbystep.

[email protected]

Page 15: Agile Software Development Methods 2010 e Ga Co

13

CRYsTal3.6 Crystalisnotasinglemethodforsoftwaredevelopment,butacollectionofbestpracticesinsoftwaredevelopmentprojects.Itsdeveloper,AlistairCock-burn,wasoughttoelaborateamethodforobject-orienteddevelopmentintheearly1990sfortheIBMConsultingGroup.However,atthattimetherewerenomeansofcomparisonatwhichtheresultcouldbeorientedby.

ThatiswhyCockburnanalyzedasmanyprojectsaspossibleandaskedtherelevantprojectteams,whichthingswerecrucialtothesuccessorfailure.

Hecameto thesurprisingresult thatprojectswerecompletedsuccessful,whentheprojectteamdidnotfollowafixedprocedure,butsimplycommuni-catedwitheachotherregularly.Theresultsremainedconsistentlyfrom1991to1999,internationallyaswellasacrossvariousdevelopmentlanguages.

Cockburnconsequentlyconcluded thatbotheachprojectandeach team isuniqueandthatthereisnogeneralapproach.Basedonthat,aroughdistinc-tionofsoftwaredevelopmentprojectstakesplaceinCrystalbythefollowingsizes(seefigure4):

Numberofemployees ⬗Criticality(impactofthefailure) ⬗Prioritiesoftheproject(suchasearlydelivery,governmentalregulati- ⬗ons)

Thenumberofemployeesrepresentsthenumberofprojectemployeesthatshouldbecoordinated.Thecriticalityclassifies,iftheerrorsinthesoftwareaffectthecomfortoftheuseronly(lowestlevel),theadditionalcostsfortheprincipal,theenterprise’ssurvivaloriftheseerrorsmayhaveevenanimpactonhumanlives(highestlevel).

Prioritiescanbedeterminedindividuallyandasrequired.Thesedimensionsfacilitatebothchoosingthemostappropriatemethodbeforetheprojectbeginsandmakingadjustmentsduringtheprojectasrequired.

Particular components, that could be chosen individually and assembled,therebysupporttheflexibilityofthisfamilyofmethods.Eachsinglemethodwithinthisfamilyofmethodsisnamedbyacolor(CrystalClear,CrystalYel-

Project-Figure4:Classificationaccor-dingtoCrystal(ownchart)

Fehler in Software bedeutet Gefahr für:

[email protected]

Page 16: Agile Software Development Methods 2010 e Ga Co

14

low,CrystalOrange,…) (seeFigure4).Thereto,Crystaldefines just a fewgeneralguidelinesanddoesnotforcetheusertoanyspecificcourseofaction.Crystalsimplypointsouttheexperiencefromvariousprojectsinwhichteamsmadesomeparticularexperienceincludingtheresultingconsequences.

Thedifferenttechniqueswithincrystalcoulddifferstrongly,butshowthefol-lowingcommoncharacteristics:

Thedifferenttechniqueswithincrystalcoulddifferstrongly,butshowthefol-lowingcommoncharacteristics:

Thecustomerreceivesexecutable,intermediateversionsofthesoft- ⬗wareregularly(atleasteveryquarter) ⬗Problemsanddifferences(bothwithintheteamandtosuperiors)are ⬗discussedopenlyOngoingsearch,collectionandprioritizationofimprovementpropo- ⬗salsClosecommunication(intheteamandthecustomer) ⬗Onthecustomersideanexperiencedemployeemustbeaccessibleas ⬗auseroftheproductatanytimeEmployeesworktargeted ⬗Useofversioncontrol(better:configurationmanagement) ⬗Frequent(automated)testingofprogramcodeaswellasCreatingan ⬗executabletestversionregularly.

DesIGn DRIVen DeVeloPMenT (D3)3.7 DesignDrivenDevelopment(D3)wasdevelopedbyHenryJacob.Objectiveistocreateinnovativesolutions.D3isanagileprocess,whichgivesprioritytothedesignofanapplication.Theprocesscanbeappliedindependently,butalsoasacomplementtoothernon-agileandagilemethods.D3isbasedonthefollowingvaluations:

Abundanceofdesignanddream-fulfillment is thenewmantra forbusinesssuccess.

Design isa fortuitousevent thatoccursduringconception.Maximizingthelikelihoodofoccurrenceiskeytoinnovation.

Noprocesscanguaranteeabetterdesign.Thecreationoftherightenviron-mentwiththerightpeopleistheonlywaytoyieldinnovations.

Bestdesignsarealwaystheresultofacontinuoussimplificationandrefine-ment.

Customersandusersoftenneedsupportonunderstanding,description,visu-alizationandorganizationtheirrequirements.

Figure5depictstheinteractionbetweenD3,ScrumandXP:

[email protected]

Page 17: Agile Software Development Methods 2010 e Ga Co

15

DYnaMIC sYsTeM DeVeloPMenT MeThoD 3.8 (DsDM)

TheDynamicSystemDevelopmentMethod(DSDM)wasdesignedinthe90sintheUKbytheDSDMConsortium,anassociationofITcompanies.DSDMisanextensiontotheRapidApplicationDevelopments(RAD)–itpursuesaniterative,incrementalapproachandemphasizesthecontinuousinvolvementofusers.

DSDMconsistsofnineprinciples,whichneedtoberespectedinaproject.Thenineprinciplesare:

Thecustomerisactivelyinvolvedintheworkoftheteam. ⬗Thepowerofdecisions(atleastinlargeparts)restsontheteam. ⬗Aregularsupplyofcompleted(partial-)productsisaspired. ⬗Every(partial-)deliverymusthaveatransactionvaluefortheuser, ⬗whichistherelevantacceptancecriterion(Business-Value-Driven).Aniterative,incrementaldevelopmentisnecessarytoachieveanade- ⬗quatesolution.Allchangesduringdevelopmentarerevocableorreversible. ⬗Requirementsarefixedatarelativelyhighlevel. ⬗Testingisanintegralpartofthewholeprocess. ⬗Thecooperativecollaborationamongallinvolvedpersonsisessential. ⬗

InteractionFigure5:betweenD3,ScrumandXP

[email protected]

Page 18: Agile Software Development Methods 2010 e Ga Co

16

TheprocessofdevelopmentinDSDMencompassessevenphases.Dependingonprojectconstellation,individualphasesmaybeomitted.

Phase 1 - PRe-PRojeCT: Thepre-projectphaseincludestheprojectselectionandtheGo/No-Godecis-ionofaproject.

Phase 2 - feasIbIlITY sTUDY: Inthefeasibilitystudyitisexamined,whetherDSDMisthemostappropriateapproachbytheknownsurroundingconditions.Furthermore,thefeasibility,therisksandthecostswillroughlybeanalyzed.

Phase 3 - bUsIness sTUDY: Thebusinessstudyserves the identificationofaffectedprocessesandusergroups,identifyingtherequirementsandpreparingabusinesscase.

Phase 4 - fUnCTIonal MoDel ITeRaTIon: Within the functionalmodel iteration,basedon the resultsof theBusinessStudy,theproductisspecified,thearchitecturecreatedandaprototypedeve-loped.

Phase 5 - DesIGn anD bUIlD ITeRaTIon: Thedesignanddevelopmentofthesystemtakesplaceinthisphase.

Phase 6 - IMPleMenTaTIon: Thecompletedproductisdeliveredtotheusers.

Phase 7 - PosT-PRojeCT: InthePost-Projectphase,itisexaminedwhether,thesystemworkseffectivelyandefficiently.Itisalsoanalyzed,whetherenhancementsareneeded.

InadditionDSDMusesthefollowingcoretechnologies:

TIMe boXInG: Eachiterationhasadefinedduration.Iterationscanbecharacterizedbyvari-ouslengthsanddifferentphases.

The MosCoW PRInCIPle: Requirementsareclassifiedintothefollowingcategories:

Musthave ⬗Shouldhave ⬗Couldhave ⬗Won’thave(Thistimenotimplemented,butearmarkedforfuture ⬗implementation)

Withinaniteration,requirementsfromdifferentcategorieswillbeimplemen-ted. Ifwithin one iteration problems concerning the implementation arise,low-priorityrequirementscouldberemovedfromthisiteration.

[email protected]

Page 19: Agile Software Development Methods 2010 e Ga Co

17

ThelatestversionofDSDMisDSDMAtern(orjustAtern).Inthisversion,allIT-specificahavebeenremovedfromtheproceduremodelsothatthismethodisapplicableeveninnon-ITprojects.

eClIPse WaY PRoCess 3.9 TheEclipseWayprocessgetsitsnamefromthewidelyusedopen-sourcedeve-lopmentenvironmentEclipse.ItdescribesthewayinwhichEclipseisdeve-loped. It isacombinationofagilemethods,methods from theopen-sourcedevelopmentandtechniquesforworkinlarge,distributedteams.

Notshowninthisfigurearethebasicelements:

Iterative ⬗Incremental ⬗Reflection ⬗Adaptation ⬗Feedback ⬗

ThetechniquesoftheEclipseWayProcesscanbecomposedmodularandareadaptabletothespecificprojectcondition.TheEclipseWayProcessisverysimilartotheOpenUnifiedProcess.

eVolUTIonaRY PRoCess foR InTeGRaTInG 3.10 CoTs-baseD sYsTeMs (ePIC)

COTS stands for „Commercial off-the-shelf“ and is the english term forstandard-software.This includes, inadditiontoclassicalstandard-software,suchasSAP,shareware/freewareandprefabricatedcomponents.EPICisanapproachfortheselection,adaptationandintroductionofstandard-softwareandhasbeendevelopedat theSoftwareEngineering InstituteofCarnegieMellonUniversityinPittsburgh.

TechniquesofEclipseFigure6:Way(source:http://www.ibm.com/developerworks/rational/lib-rary/edge/08/jul08/vanVelzen/)

[email protected]

Page 20: Agile Software Development Methods 2010 e Ga Co

18

Althoughtheauthorsofthemethoddonottalkaboutagility,theconceptsofEPICcoverthevaluationsoftheagilemanifestoaswell.BasedontheRationalUnifiedProcess(RUP),aframeworkhasbeendevelopedthatpublicizestheintegrationofusers,aniterativeapproachandtheperiodicaldeploymentofresults.Thefollowingfiguredepictsthecourseofaniteration:

In reference to theRUP,EPICconsists of the initializationphase,prepara-tionphase,elaborationphase,developmentphaseanddeliveryphase.Ineachphaseatleastoneiterationcomestopass.Thefurtheroneprogressesintheproject,themoreconcretetheobjectivesandcontentgets,asthefollowingfigureillustrates:

ContentofanFigure7:iterationinEPIC

ContainmentFigure8:ofthesolutionspacein

progressingtime

[email protected]

Page 21: Agile Software Development Methods 2010 e Ga Co

19

eVolUTIonaRY PRojeCT ManaGeMenT & 3.11 PRoDUCT DeVeloPMenT (eVo)

EVOwasdescribedin1988forthefirsttimebyTomGilbinhisbook„Prin-ciplesofSoftwareEngineeringManagement“,at that timenamed„Evoluti-onaryDevelopment“.BackthenGilbalreadyrecommendedtocreatesmall,incrementalreleasesorbuildsofsoftwareandtomakethemregularlyandfrequentlyavailbletothecustomers.Planningshouldbedynamicallyinordertobeabletotakethefeedbackofusersintoaccount.EVOischaracterizedbythefollowingproperties:

Trackingofmultipletargets ⬗Earlyandfrequentiterations ⬗Completeanalysis,design,implementationandtestingineachiterati- ⬗onUserorientation ⬗Considerationoftheentiresystem,notindividualalgorithms ⬗Openbase-architecture ⬗Target-oriented,not(softwaredevelopment)process-oriented ⬗

WithinEVO,theprojectisdividedintosmallpieces(„chunks“),each„chunk“shouldincludenomorethan5%ofthetotalexpense.Indoingso,thosefunc-tionsaredevelopedfirst,whichprofitthemostandareimplementedeasily.

Inthemeantime,EVOwasrefinedandafterwardsrenamedto„EvolutionaryProjectManagement&ProductDevelopment“byTomGilbandhissonKai.ThefollowingfigureshowsthekeyelementsofthecurrentversionofEVO:

sTakeholDeR ValUes, PRoDUCT QUalITY ReQUIReMenTs UnD DeVeloPMenT ResoURCe bUDGeTs:

Clarifyingtherequirementsandtheavailableresources.

solUTIons:Ideasforsolutionsinordertosatisfythestakeholdervaluesandproductqua-lityrequirementswiththeavailableresources.

IMPaCT esTIMaTIon: Mappingtheideasforsolutionsontothestakeholdervalues,productqualitiesanddevelopmentresources.Intentionistoproof,whetherthesolutionscon-cerningthestakeholdervaluesandproductqualityrequirementsaresustai-nableandwhethertheycanbeimplementedwiththeresources.

KeyelementsofEVOFigure9:

[email protected]

Page 22: Agile Software Development Methods 2010 e Ga Co

20

eVolUTIonaRY Plan:Initialroughplanofthesequenceandtheway,howonewillachievethesta-keholdervaluesandproductqualityrequirements.Thenecessarydetailingoftheevolutionaryplanisevolvedtogetherwiththeprojectduringimplemen-tation.

fUnCTIons:Descriptionofwhatthesystemdoes.

DefInITIons:Descriptionoftermsandconcepts.

eXTReMe PRoGRaMMInG (XP)3.12 ExtremeProgramming(XP)wasdevelopedinthemid90‘sbyKentBeck,WardCunninghamandRonJeffries.Itisaniterative,incrementalproceduremodel.XPiscomposedofvaluations,principles,techniquesandroles.

ValUaTIons3.12.1 ThevaluationsofXPare:

Communication ⬗Simplicity ⬗Courage ⬗Feedback ⬗Respect ⬗

CoMMUnICaTIon: Ongoingand intensivecommunicationbetween thedeveloperandwith thecustomerfacilitatesensuringfastestpossiblefeedback,preventingunneces-sary functionality, resolving emerging problems as quickly as possible andalleviatingtheproblemofmissingdocumentation.

sIMPlICITY:The software should be desigend as simple as possible, no preparation ofpossible future extensions, no redundant or unnecessary functionality andnoredundantstructuresare tolerated.Thereby, thesystemremainssimpleandmaintainable.Thisisbasedontheassumptionthatitismoreefficienttocreatesomethingsimpletodayandtoinvestalittlemoreefforttomorrowtoincorporatechangesratherthantodevelopsomethingcomplextoday,whichwillnotbeusedtomorrowornotintheanticipatedform.

CoURaGe:Theimplementationofprinciplesandvaluationsrequirescourage.Thisinclu-descommunicatingthetruthabout theprojectprogressandefforts,not tolookforexcusesforfailuresandtoacceptchangeswhenevertheyoccur.

feeDbaCk:Many of todays (software development) projects fail due tomisunderstan-dingsbetweendevelopers andusers.Evolutionarydevelopment of the sys-teminreleasesaslittleaspossibleandapermanentavailabilityofcustomersfacilitatequickfeedbackandthusaflexiblecontroloftheprojectprogress.Anotherimportantsourceoffeedbackisthedevelopmentoftestsfordifferent

[email protected]

Page 23: Agile Software Development Methods 2010 e Ga Co

21

levels(unittesting,test-stories)inordertocheck,whethertherealizedfunc-tionalityiscorrect,solidandmeetsthegivenrequirements.

ResPeCT:Everyonegivesandreceivestherespecthedeservesasateammember.Eachindividualdelivers itscontribution tosuccess,even if it is justenthusiasm.Developerrespecttheexpertiseofcustomersandviceversa.

PRInCIPles 3.12.2 The principles bridge between the abstract valuations and the specificallyapplicablepractices.XPdescribesthefollowing13principles:

Humanity ⬗Efficiency ⬗Double-sidedadvantage ⬗Improvements ⬗Diversity ⬗Reflection ⬗Flow ⬗Acceptingfailures ⬗Perceivingoccasions ⬗Quality ⬗Avoidduplications ⬗Smallsteps ⬗Acceptedresponsibility ⬗

hUManITY:Software isdevelopedbyhumans.Sopeopleare the factor that shouldbegivenspecialattentionaccordingtoXP.Bycreatingacomfortableatmosphere,thebasicneedsofthedeveloper(security,completion,identificationwiththegroup,perspectiveandunderstanding)shallbemet.

effICIenCY anD MUTUal benefIT:Thedevelopedsoftwareorasinglefunctionalityhastobeefficientandnever-thelesstoyieldatruevalueontheonehand.Ontheotherhand,itmustbebeneficialforbothsidesandsatisfyingforallparties(developmentteamandcustomer).

IMPRoVeMenTs anD DIVeRsITY: Thereuseofexistingsolutionsisessential,whichmeansforexampleaccom-plishingvariousdifferenttestscontinuallyandautomatically.Thereby,ever-yonegetsstraightthatthefirstsolutionsareusuallynotthebestones.Newinsightsgainedbyoneselfthroughfeedbackshallleadtoimprovedsolutions.Recognizing better solutions day by day is only made possible by steadyreflectionandcallingtherespectiveapproacheswithintheteamcontinuouslyintoquestion.Theproductivityofthisproceedingincreasesproportionallytotheheterogeneityoftheteam,whichisconstitutedofvaryingskillsandcha-racters.Differingopinionsarenotonlytolerated,butevenencouraged.Thisrequiresaconflictmanagementtobeestablished.

floW, ToleRaTInG faIlURes anD PeRCeIVInG oPPoRTUnITIes: Theexecutabilityofsoftwarehastobeguaranteedatanytime.Althoughshortiterationswithcontinuous feedback facilitatekeeping theproject inaflow,neverthelessfailureshavetobetakenintoaccount.Inthecourseofthis,itis

[email protected]

Page 24: Agile Software Development Methods 2010 e Ga Co

22

quiteusualandacceptedtoconductanimplementationthatinitiallymaynotbeoptimalorevenfaulty.Thesedifficultieshavetobetakenasopportunityandchancetoripenfurtherboththeproductandtheteam.

Themoreallinvolvedpersonsarewillinglytoaccepttheirresponsibility,thebetterastraightforwardly,constructivedealingwith thechallengesof soft-waredevelopmenttakesplace.Chargingadeveloperwithanactivityandaresponsibilitydisciplinaryisnotenough,sincehehastoagreetothatrespon-sibilityactivelyandtoliveit.

QUalITY: Another importantpoint ishighquality,which is - inaccordancetoXP - incontrast to other factors like resources, featuresor expirydate, notunderconsideration.Thisbasic attitudediffers frommanyothermethodsof soft-ware development,where software has to be completed at a certain pointoftimeandinadefinedrangeoffunctions,amongwhichalmostalwaysthesoftwarequalitysuffers.However,qualityiscrucialtoholdtheproductusa-ble,bug-freeandexpandable.Softwarewithgooddesignandhighqualityismedium-datedcheaper,moreexpendableandlessbuggythanfastdeveloped,so-called“Quick-and-dirty”-software.

aVoID DUPlICaTIon: Thepreventionofredundancyispartofgoodqualityaswell.Theseareauto-matablestepsthathavebeenexecutedunnecessarilymultipletimesormanu-ally.

sMall sTePs: Throughquick,smallstepstheteamremainsadjustableandisabletoadaptnewsurroundingconditionsandtorespondtofeedbackquickly.Thenegativeconsequencesofasingle,smallstepthathasnotbeensuccessfulcanbecom-pensatedmuchmorequicklythanincaseofasingle,majorstep.

TeChnIQUes3.12.3 ThefollowingtechniquesareusedinXP:

Experimentalgame ⬗Smallreleases ⬗Systemmetaphor ⬗Simpledesign ⬗Pair-programming ⬗Refactoring ⬗Continuoustesting ⬗CollectiveCode-Ownership ⬗On-sitecustomer ⬗Codingstandards ⬗40hourweek ⬗Continuousintegration ⬗

eXPeRIMenTal GaMe: Intheexperimentalgame,availabledeveloper-resourcesarebroughtintolinewithcustomerrequirements.Here it isdecided,whichfunctionalitywillbeimplementednext.Functionsareprioritizedanddescribedas„UserStories”.Developersestimate theeffortonuserstories.Basedon that, it isdecidedwhichfunctionsaretobeimplementednewly.

[email protected]

Page 25: Agile Software Development Methods 2010 e Ga Co

23

sMall Releases: Startwiththesmallestmeaningfulextentoffunctions.Deliverearly,frequentlyandaddnewfeatureseverytime.

sYsTeM MeTaPhoR:Systemmetaphorisconceivedasbasicarchitectureofthesystem.Thisreferstotheoverallpicturethatalldevelopershaveinmind.Everydeveloperdoesnotonlyknowapartorsubsystemonwhichheworks,butalsotheoverallobjectiveandthebasicarchitecturethatdeterminethesystem.

sIMPle DesIGn:Themostsimple,possibledesignthatmeetsthecurrentrequirementsisselec-tedalways.Therequirementschangedaily,soyoushouldnotdoanythingthatyoumightneedtomorrow.

PaIR-PRoGRaMMInG: Twodevelopersareworkingtogetheronacomputer.Oneofthemis„Driver“,whodevelopsandtheotheristhe„Follower“,whoseconsiderationsareincor-poratedtoo.Theserolesareswitchedconstantly.Thus,areviewofcodetakesplaceatthesametimeasdevelopment.

RefaCToRInG: Byrefactoringtheinternalstructureoftheprogram,improvementisachievedwithoutchangingbehaviororfunctionalityoftheprogram.

ConTInUoUs TesTInG: Beforeadeveloper implements anew function, hefirstwrites a test for it(„Testfirst“).Typically,theseareunittests,whicharegroupedintotestsuitesthatrunaftereachintegrationautomatically.

ColleCTIVe CoDe-oWneRshIP: Thesourcecodebelongstothewholeteam.Everydevelopershouldalwaysbeabletoeditanyofthecode.

on-sITe CUsToMeR: Thedevelopment team isworking at the customer site. Thus, an intensivecooperationandcommunicationispossible.Developersgetquickfeedbackontheprovidedreleaselikewise

PRoGRaMMInG GUIDelInes: Thepredetermined coding standards (e.g. naming conventions) have to berespectedbyall.Thus,thesourcecodeisconsistent,whichmakesiteasiertoensurethatalldeveloperscanworkanywhere.

40 hoUR Week: Inthelengthoftime,extrahoursreducemotivationandproductivityofdeve-loper.Inexceptionalcircumstancesextrahoursareallowed.However,ifitisgetting a permanent condition, something concerning the process is goingwrong.

ConTInUoUs InTeGRaTIon: Allchangesareloadedtothecodebaseatleastonceaday.Thetestsmustrunbothbeforeandafterintegrationcompletelyandcorrectly.

[email protected]

Page 26: Agile Software Development Methods 2010 e Ga Co

24

Roles3.12.4 InaXP-projecttherearethefollowingroles:

Customer ⬗Developers ⬗Manager ⬗

CUsToMeR: Thecustomerdecideswhatcreatesanaddedvaluetohim,prioritizesthesepoints and then chooseswhat shall be implementedandwhat is tobeputback.Inaddition,hedefinesteststhatverifythefunctionalityofthesystem(acceptancetests).

DeVeloPeR:Thedeveloperestimateseffortsandcomplexityoftheuserstoriesandcont-rolspacethatfunctionalityisbeingdevelopedanddeployedwith.

ManaGeR: Themanagermakesupcustomersanddevelopersandhelpsthemtocoalescetoapowerfulteam.

PRoCess:TheXPprocessisaniterativeprocess,wheretheabove-describedtechniquesarerepeatedconstantly.

Figure10representthecompleteframeofaXP-project.

An actionwithin an iteration at that is the development. There the above-mentionedtechniquesapply.Withinaniterationthefollowingactions(Figure11)takeplace:

The Figure10:XP-Process(sour-ce:www.extreme-

programming.org)

[email protected]

Page 27: Agile Software Development Methods 2010 e Ga Co

25

feaTURe DRIVen DeVeloPMenT (fDD) 3.13 FeatureDrivenDevelopment (FDD)wasdesigned in1997by JeffDeLuca,PeterCoadas slimmethod for softwaredevelopment.As timewentby themethodwasenhancedcontinuously.

FDDputstheterm„Feature“incenterofdevelopment.Atthatafeatureisdefinedassomethingusefulintheeyesofthecustomer.Thus,eachfeaturerepresentsavaluetothecustomer.Thedescriptionofafeatureaccordingtotheschemelookslike:

<action> <result> <object>

compute thebalance oftheaccount

Consequently,featuresareveryfine-grainedfunctions.Dependenciesbetweenthe features often exist.Related features are grouped to so-calledFeatureSets.ThedescriptionofaFeatureSetfollowsthepattern:

<action> <-ing> <object>

mak- -ing aproductsale

Inturn,FeatureSetsaregroupedtosuperior,professionalgroups–theMajorFeatureSets.TheMajorFeatureSetsaredescribedbythescheme:

<object>management

Example:„productsalemanagement“

FortheimplementationofthesefeaturesFDDprovidesprocesses,rolesand„BestPractices“.

Role MoDel 3.13.1 Therolemodelsubclassifieskeyroles,supportrolesandadditionalroles.

Pro-Figure11:cesswithinaniterationinXP(source:www.extremepro-gramming.org

[email protected]

Page 28: Agile Software Development Methods 2010 e Ga Co

26

keY Roles: Project-Manager ⬗ChiefArchitect ⬗DevelopmentDirector(administrativesupportoftheChief-Program- ⬗merintheirdailywork)Chief-Programmer ⬗Class-Responsibles ⬗Experts(users,customers,sponsors,etc.) ⬗

sUPPoRTInG Roles: Domain-Manager(Headofdomainexpertsinlargeteams,coincides ⬗mostlywithProject-Manager)ReleaseManager(controlstheprojectprogress) ⬗LanguageLawyerorLanguageGuru(aspecialistinusedprogram- ⬗ming-languageortechnology)BuildEngineer ⬗Toolsmith(createsproject-specificdevelopmenttools) ⬗System-Administrator ⬗

aDDITIonal Roles: Testers ⬗Deployers(systeminstallationanddeployment,includingdataconver- ⬗sion)TechnicalWriters ⬗

Typically-especiallyinsmallteams-employeesoccupyseveralroles

PRoCess MoDel 3.13.2 Theprocessmodelconsistsoffiveprocesses:

Developmentoftheoverall-model ⬗Creationoffeature-list ⬗Planningofeachfeature ⬗Designofeachfeature ⬗Constructionofeachfeature ⬗

Thefirstthreeprocessesareusuallypassedonlyonce.Thelasttwoprocesses,however,representtherealizationoffeaturesandrunincycles.

DeVeloPMenT of The oVeRall-MoDel: Aimofthefirstprocessistoreachaconsensusconcerningcontentandrangeofthesystemtobedeveloped,aswellasdevelopingthetechnicalcoremodel.Thereto,expertsanddevelopersdefinecontentandrangeofthesystem,ledbythechiefarchitect.Insmallgroupstechnicalmodelsforthedifferentsys-tem-areas are developed,whichwill be presented in the group, eventuallyrevisedandfinallyintegrated.

FDDprocessflowFigure12:(source:wikipedia

[email protected]

Page 29: Agile Software Development Methods 2010 e Ga Co

27

CReaTIon of feaTURe-lIsT: Inthesecondprocess,thepreviouslyspecifiedsystem-areas–thefeatures–willbedefined.Inthisprocesstheaforementionedthree-stepscheme(MajorFeatureSets,FeatureSetsandFeatures) isused.The implementationofafeaturemaynottakelongerthantwoweeks.Theresultofthissecondprocessisacategorizedfeature-list,whosecategoriescomeontotoplevelfromtheexpertsofprocess#1.

PlannInG PeR feaTURe: Inthethirdprocess,theProject-Manager,theDevelopmentDirectorandtheChiefProgrammerareplanningtheorderthefeaturesshallberealized.The-reto,theycomplywithdependenciesbetweenfeatures,workloadofthedeve-lopingteamandthecomplexityofthefeatures.

Based on the plan, the completion dates for each business activitywill bedefined.Eachbusinessactivitygetsachief-programmerasownerassigned.Moreover, for known core classes developers will be set as owner (ClassOwnerList).

DRafT of eaCh feaTURe: Thechiefprogrammeranalyzesitsassociatedfeatureandputs,onthebasisoftheinvolvedclasses,thefeatureteamtogether.ADomainWalkthroughisexecuted,theobjectmodelrefined,thedesignoftheFeatureSetfixedandfinallyreviewedduringaninspection.

ConsTRUCTIon foR eaCh feaTURe: Inthefifthprocess,thedeveloperscodethefeaturesthathavebeenpreparedinthefourthprocess.Duringprogramming,componenttestsandcodeinspec-tionswilltakeplaceforthepurposeofqualityassurance.

FDDmakesnofixingsconcerningiterationsbeyondincrementaldevelopmentperfeature.Yetforlargerprojects,itisusefultodefineformalmilestones,bythosepartsofthefinalproductmaybepresented.Thus,oneisabletodocu-menttheprogressevenbyexecutablecode.

besT PRaCTICes 3.13.3 BestPracticesaremethodsandproceduresthathavebeenproveninmanyprojects.FDDallowstheuseforthefollowingBestPractices:

DomainObjectModeling ⬗DevelopingbyFeature ⬗IndividualClass(Code)Ownership ⬗FeatureTeams ⬗Inspections ⬗RegularBuilds ⬗ConfigurationManagement ⬗VisibilityofProgressandResults ⬗

DoMaIn objeCT MoDelInG:Atthebeginningofeachproject,itisaboutgettinganoverviewasgoodaspossibleabouttheproblemarea.Forthispurpose,FDDincludestheproduc-tionofaDomainObjectModel.TheDomainObjectModeltherebyencompas-sesonlythosebusinessobjectsthatareusuallypersistent.GUIsandControl-

[email protected]

Page 30: Agile Software Development Methods 2010 e Ga Co

28

Objectsdonotmatteratthisstage-thesewouldmaketheviewontotheBusi-nessObjectModelmoredifficult.

DeVeloPInG bY feaTURe:Featuresaresmallandmanageableunitsthatarerealizableinnomorethantwoweeks.Eachfunctionthatistoocomplextoberealizedinthattime,willbedetailedaslongasanappropriatesizeisreached.Thisfacilitatesdeliver-ingcorrectfunctionalityandextendingormodifyingthesystemmoreeasily.

InDIVIDUal Class (CoDe) oWneRshIP:Incontrastto„CollectiveCodeOwnership“(alldevelopersarejointlyrespon-sibleforthecodebase,asforexampleXP),FDDpropagates„IndividualCodeOwnership“.Sotherearededicatedpersonsinchargetoindividualpiecesofsourcecode.Thoseresponsiblepersonsareinchargeconcerningconsistency,performanceandconceptualintegrityoftheircode.

feaTURe TeaMs: Featureteamsareteamsthatcometogetherdynamicallytoimplementfea-tures. Thus, various design proposalswill be discussed at implementation,beforeacommitmentontoacertaindesignfollows.

InsPeCTIons: Asastepofqualityassurance,FDDenvisionsinspections.Here,developmentresultsofotherteammembersarebeingassessedandreviewed.Thiscondu-cesimprovementofcodebaseontheonehand,ontheotherhandknowledgetransferbetweenteammemberswillbeaided.Inspectionsalsohelptopro-mote effective enforcement of coding standards.Within the scope of FDD,codeinspectionsaretypicallydoneinthecontextoffeatureteams,whereastheChief-Programmerasthe leadingteammemberdeterminesthe levelofformalityofsuchaninspection.

FDDhasnobuilt-intest,asithasbecomepopularthroughXP‘s„TestFirst“forexample.ThatdoesnotmeanthatthispracticeincontextofFDDwouldnotbeusefulornotassimilable.Itisjustnotimperativelyrequired.Ingeneral,itisreferencedtotheexistingqualityassuranceprocesseswithintheorganisationconcerningtheissueoftesting.Eachdevelopershouldrunhisown“Smoke-Test”withhiscodedcomponents.

ReGUlaR bUIlDs: Regularlycompiledbuildsoftheentireproductserveforonethingthevisibilityofprojectprogress-linkedtoexecutablecode-andforanotherthing(espe-ciallyinlargeprojects)thepreventionofdramaticintegrationproblems.

ThereisnofrequencyspecifiedintermsofthesebuildsinFDD.Dependingontheproject,aweekly,dailyorevenacontinuousbuild-processcouldbethebestchoice.FDDrequiresonlythatthebuildtakesplaceregularly.Indoubt,ashortcycleisthebetterchoice.

ConfIGURaTIon ManaGeMenT:Each project should have a configurationmanagement, independently of aprocessmodel.Configurationmanagementiscentralbasisforprojectresultsandthusthe„SinglePointofTruth“.Inprinciple,allartifactscreatedintheproject(analysis,design,code,testcases,etc.)aresubjecttoconfigurationmanagement.

[email protected]

Page 31: Agile Software Development Methods 2010 e Ga Co

29

VIsIbIlITY of PRoGRess anD ResUlTs: Continuoustuningoftheprojectprocessrequiresaquicklyandfine-grainedvisibleprojectprogress.Thedegreeofgranularityis,inturn,thesinglefea-ture.

Thereto,FDDproposesa simple report-formatbasedon„Mini-milestones“.Thefollowingsixmilestonesaresetaseachfeatureisbeingdeveloped:

DomainWalkthrough ⬗Design ⬗DesignInspection ⬗Code ⬗CodeInspection ⬗PromotetoBuild ⬗

Everysinglemilestoneisdefinedinawaythatitsachievementisa„binary“decision. The domain walkthrough is complete, the design is created, thedesign is inspected, thecode is created, thecode is inspected, thecode isapprovedforthenextbuild.

In order to achieve milestones, a certain percentage of the total cost isattachedtothecreationofeachfeatureset.Feature-specificestimationsarenot considered during this step, but default values that are in accordancewithpreviousexperienceswithintheorganization.Intheirbook„APracticalGuidetoFeatureDrivenDevelopment“,PalmerandFelsingrecommendthefollowingstartingvalues:

Basedonthat,foreverysinglefeatureapercentuallevelofcompletioncanbecalculated.Thislevelmaynotseemtobeentirelycorrect,butasfeaturesarefine-grainedrequirements(hencesmall),thefaultsaremostlysmallandnegligible.

On the same basis, the plans are drawn by each team (or the responsibleChief-Programmer)viaestimatingaslongasitwilltaketocompletethefea-ture.Detailedplanningofeachmilestonewillbecarriedout incompliancewiththeabove-mentionedscheme.

IConIX3.14 AsRUP(RationalUnifiedProcess),IconixrepresentsaUML-basedsoftwaredevelopmentmethodthatindeedismuchmorelightweight1asRUP.TheIco-nix-processgenerallyconsistsoffourphases(seefigure13)andusesatotal

1Beforetheagilemanifesto(2001)existed,theterm„lightweight“wasusedinsteadof„agile.“Bothtermsaretobeunderstoodassynonyms

Design by feature build by feature

DomainWalkth-through

DesignDesign Inspection Code

CodeInspection

PromotetoBuild

1% 40% 3% 45% 10% 1%

[email protected]

Page 32: Agile Software Development Methods 2010 e Ga Co

30

offourdiagramsbasedonUML(UseCase,Sequence,Domain,Class)inordertotransferprioritizeduscasestoexecutablecodethroughiterations.

Ineachphaseavalidationofpreviouslycompletedworktakesplace,followedbyanadjustmentasfarasneeded.

ReQUIReMenTs:Functionalrequirementsuponthesystemaregatheredatfirst.Soastocreateacommonvocabularyforclearcommunicationbetweentheteammembers,adictionarywillbesetup (DomainModeling).Goal is toensure thateach

memberintheprojectunderstandstheproblemareawithoutdoubt.Moreo-ver,thedictionarydefinestheextentandshapesfoundationforusecases.Attheendofthisphase,itisensuredthatthedescriptionofusecasesmatchthecustomer‘sexpectations.Validationofusecasestakesplaceinsmallbundlesinorder toprioritize themandafterwards todesign them in thenext step(Analysis/PreliminaryDesign).

analYsIs / PRelIMInaRY DesIGn:Inthisphase,thedevelopmentstrategyisset.Thus,assumptionsconcerningdesignaswellastechnicalarchitecturearemade.PotentialerrorswithintheusecasedescriptionsshallbeidentifiedbytheRobustnessAnalysis.Indoingso,missingclassesbecomeapparent,ambiguitiescanbecorrectedandattri-butesareaddedtotheDomain-Objects.Afterwards,thedomainmodelshallbeupdated.Beforeswitchingtothenextphase,anothervalidationoftheworkperformedinthisphaseiscarriedout.

DeTaIleD DesIGn:Sinceinthepreviousphaseadevelopmentstrategyhasbeendefinedonly,itwillbeimplementedhere.Domainmodelandusecasedescriptionsareusedto design the system. Thus, the domainmodel is converted to a class dia-gram(Class).Usecasedescriptionsareusedtocompilesequencediagrams(Sequence).Attheendofthisphase,avalidationtakesplacetoo.

IMPleMenTaTIon:Basedonpreviousphases,theprogrammingofbothsoftwareandunittestsnowtakesplace.Thereto,classdiagrams-aswellassequencediagrams-willbeusedasguidelines.TheactualdevelopmenttakesplaceincompliancewithTestDrivenDevelopment(TDD).Thelevels„Analysis/PreliminaryDesign“,„DetailedDesign“and„implementation“willbe run throughuntil the soft-waremeetsthedesiredcustomerrequirements

IconixProcessFigure13:(ownchart)

[email protected]

Page 33: Agile Software Development Methods 2010 e Ga Co

31

InTeRneT-sPeeD DeVeloPMenT3.15 Internet-SpeedDevelopmentwasdevelopedinthelate90s.Itisacombinationofthewaterfallmodelandspiralmodel.Whenthemethodwasdeveloped,aimwastocarryouttheacutaldevelopmentinastructuredwayontheonehand,andtoupholdrequiredflexibilitytobeabletoactonchangesontheother.

ThefollowingfigureshowstheflowofInternet-SpeedDevelopment:

Internet-SpeedDevelopmentisaniterativeprocedure,whoseineachiterationthephasesEnvisioning,Planning,Developing,StabilizingandDeployingarepassedthrough.Attheendofaniterationanexecutableversionofsoftwareisready.

Thecontentsofeachphaseare:

enVIsIonInG:DuringEnvisioningphasetherequirementsareanalyzed,scopeisdefinedandrisksareidentified.

PlannInG:InthePlanningphase,afunctionalspecification,aroughdesignandaplan-ningiscreated.

DeVeloPInG:IntheDevelopmentphase,thefunctionsarerealized.

sTabIlIzInG:DuringStabilizationphase,thefullydevelopedfeaturesaretestedanderrorscorrected.

DePloYInG:Inthedeploymentphase,thesystemisinstalledandactivated.

Thephase-modelofFigure14:theInternet-SpeedDevelopment

[email protected]

Page 34: Agile Software Development Methods 2010 e Ga Co

32

lean sofTWaRe DeVeloPMenT (lsD)3.16 LeanSoftwareDevelopmentwasdeveloped in2003byMaryandTomPop-pendieck,wherebyLeanDevelopmentservedasamodel.LeanDevelopmentled to farreachingchangesprimarily in theautomotive industry.Theyrea-lizedgreatsimilaritiesbetweentheideasfromproductdevelopmentandagilemethodsinsoftwaredevelopment.

LeanSoftwareDevelopmenthassevenprincipleswhicharetransformedbymeansof22approaches.Thesevenprinciplesare:

Avoidingwaste ⬗Supportlearning ⬗Decidingaslateaspossible ⬗Deployingasearlyaspossible ⬗Givingresponsibilitytotheteam ⬗Incorporateintegrity ⬗SeeingtheWhole ⬗

aVoIDInG WasTe:Anythingthatprovidesnoaddedvaluetothecustomeriswaste.Thismaybeafeaturenobodyusesordocumentswhichremainunreadinacupboard.Inordertoavoidwaste,youhavetorecognizeitatfirst.ThisisthefirstactioninLeanSoftwareDevelopmentaswell:recognizingwaste.Thefollowingsevenpointsareclassicalsourcesofwaste,accordingtowhichoneshouldlookforintheproject:

Incompletework: ⬗Incompletesoftwareprovidesnoaddedvalue.Eitheritislyingandcompletedlater(whichcausesinductionexpenses),oritwillneverbecompleted.Unnecessaryprocesses: ⬗Anyunnecessarysettingduringdevelopmentprocessiswaste.ThisinsightisalsoknownintheCrystalmethod.Unnecessaryfeatures: ⬗Featuresnotneededbythecustomerarewaste.Switchingdevelopers: ⬗Developersoftenworkinseveralprojectssimultaneously.Thepersis-tentswitchingbetweenprojectsisbornebyproductivity.Waiting: ⬗Anykindofwaitingiswaste-nomatterwhetherthetesteriswaitingforthedevelopmentorthewholeteamforprocurementofaspecialtool.Movement: ⬗Howmanystationshavetobecrossedtofindoutwhocanhelponewithaproblem?Howoftenhasanissuetobemovedfromonepersoninchargetothenextuntilitcreatesaddedvalue?Eachavoidablemo-vementiswaste.Bugs/Failures: ⬗Unfortunately,bugscannotbecompletelyavoided.Theycanbeveryexpensive,inworstcaseevencosthumanlives.Therefore,mechanis-msmustbeprovidedsothatemergingbugsorfailurescannothurtpeople.

[email protected]

Page 35: Agile Software Development Methods 2010 e Ga Co

33

Management: ⬗Awrittenstatusreportthatiscreatedeverydayisaswellaswasteoftimethanrecordingofworkedtimethatiscontrolledbynobody.Sameistrueforthetechnicalmanagement-„over-engineering“ofarchitec-turesiswaste.

Anotherapproachtoavoidwastearevaluechains.Basedontheaddedvaluefor thecustomer,eachactivity thatcontributes toacertainaddedvalue islocatedinasketch.Thishelpstoexamineallstepsofadevelopmentprocessconcerningthevaluetheyprovide.Ifonesteponlyprovideslowtonovalue,hewillbedropped.

sUPPoRT leaRnInG:Inthecourseofaprojectallpartieslearn-boththecustomerandthedevelo-pers.Thisisgreatlydesiredandshouldbesupported.

Oneaidtothisisfeedback.Feedbackisaquickresponseonworkoutcomes.Inthisway,forexample,onecantrydifferentvariantsdirectlyinthesourcecodeandwillreceivefeedbackabouttherunningabilityimmediately-insteadoflarge-scalearchitecture-anddesigndocuments.Andinsteadofgatheringrequirementscompletely,itisbettertodesignafewscreensanddiscussthemwiththecustomer.

Inordertoapplyfeedbackpurposefully,iterationisused.Byregularprovisionofexecutablesoftware,oneisabletoobtainappropriatefeedbackfromthecustomer.Thereby,iterationsmightdifferinlength.However,itisimportanttokeepinmindthatiterationsare„Time-boxed“,whichmeansthatthefinaldateisfixed.Ifabottleneckarises,extentoftherespectiveiterationischan-ged,notthefinaldate.

The„SetbasedDesign“actsasa furtheraid tosupport learning.The ideabehindistokeepasmanyalternativesaslongaspossibleopen.

Thecommitmenttoanalternativeisnotmadeuntilinone‘sviewislearnedenoughtomakeadecision.ThisalsoaidsafurtherprincipleofLeanSoftwareDevelopments,namely,to„decideaslateaspossible“.

DeCIDInG as laTe as PossIble:In Lean Software Development it is postulated tomake a decision as lateas possible.Before then, thedevelopment in all affected areas is fostered,untilonehasgatheredtherequiredinformationtomaketherightdecision.Inparticular,professionalanalysis,architecture,designandimplementationarefosteredparallel.ThisisknownasConcurrentDevelopment.

Asupportingwayisthinkinginoptions.Aslongasonedoesnothaveallthenecessaryinformationtomakeadecision,onedoesnotcommitoneselfandleavesdifferentoptionsopen.Thosewhothinkinoptions,arethuscapableofdelayingdecisions.Itis,however,equallyimportanttorecognizetherighttimeforadecision.Thisisthenextresource,thelatestpossiblemoment.

Therighttimeforadecisioniswhenonemightblockanimportantalternativeotherwise.Thisshouldnot„justhappen“,butbyaconsciousdecision.MakingdecisionsisalsoanotherresourceofLeanSoftwareDevelopment.Decisionsaretakenbyexperienceandwithgutinstinct.Indoingso,itisveryimportanttoinvolveallthosepeoplethathavetobepartofimplementation.

[email protected]

Page 36: Agile Software Development Methods 2010 e Ga Co

34

DePloYInG as eaRlY as PossIble:Delayingdecisionsaffectnotonlytechnicaldecisions.Eventheprofessionalchoicesshouldnotbemadeuntiltheprofessionalshaveunderstoodtheimpli-cationsclearly.Inmanycases,allinvolvedpersonsneedtohaveexperiencewithexecutablesoftware.Hence,itisnecessarytodeliversoftwareasearlyaspossible,whichmakeshighdemandstothetaskmanagement.

Thereto, resources exist aswell. Such is thepull system,whereupcomingactivitieswillbecollectedasinacardindex.Theactivitiesareprioritized,thedevelopertaketasksoutofthisboxbypriorityandtheirownabilities.

Regular(daily)meetingstakeplacetosupportcoordinatingthetasks.Bysomesortofblackboarditismadetransparent,whoisworkingatwhichtasksandwhichonesaretobedevelopednext.ThePullSystemcanberegardedasachainofqueues.TheQueuingtheoryisaresourceofLeanSoftwareDevelop-ment.Thequeuingtheoryisabranchofsystemicthinking.Thereareseveraloptimizationmethodstoqueues.

Thecostsofdelaysarealsoaresource.Rapiddevelopmentisnotalwaysthemorefavorablealternative.Itmaybenecessarytopurchaseexpensivetoolsthatcostmorethanthepossiblesavedworkingtime.Insuchdecisions,LeanSoftwareDevelopmentrecommendstoconsidernotonlythedirectsavings,butalsothecostsforadelayeddelivery.Businessmanagementteachesthatthecostsformissedmarketopportunitiesoverliedevelopmentcostsfaraboveall.

GIVInG ResPonsIbIlITY To The TeaM:LeanSoftwareDevelopmentpromotestheideaoftransferringresponsibilitytotheteamasoneofthebiggestmotivators.

In order to motivate the team, Lean Software Development provides theapproachthattheteammaydetermineitsgoalsitself.Objectivesthathavebeenspecifiedbythemselvesaretobeachievedmoreoftenthanoneswhichcomefromothers.

However,self-setgoalsarenotyetsufficient.Teammembersmustbemoti-vated too. Often, it is tried to motivate employees with rewards (usuallyfinancial).Butthisaffectsonlytheexternalmotivation.Inordertoachieveagenuineinternalmotivation,itisnecessarytoaddressthefollowingfactorsinaccordancewithmotivationresearchers:

Membership ⬗Security ⬗Expertise ⬗Visibleprogress ⬗

Butyouneedmore:Leadership.Aleadingpersonalityhelpstheteamtofinddirectionandtoorganizetheenvironmentalworksituation,whichisneededtosuccessfulwork.Itprotectstheteamagainstinterferencesfromtheout-side,withoutinterferingthenecessaryinformationflow.Leadershipleadstoagoodteamthatisabletofightacrisissuccessfully,ifitshouldslipinthereonce.

[email protected]

Page 37: Agile Software Development Methods 2010 e Ga Co

35

InCoRPoRaTe InTeGRITY:Integrityofasystemmeansthatthisformsacoherentwhole.LeanSoftwareDevelopmentdistinguishesbetweeninternal,conceptualintegrityandexter-nal, perceived integrity. The conceptual integrity describes the technicalstructureofthesystem.Isthearchitecturebothunderstandableandexten-sible?Isitpossibletobuildinnewfeatureswithoutproblems?Isthedesignconsistent?

The perceived integrity, however, is a characteristic of the user interface.Doestheuserinterfaceuseasfewaspossibleandcatchymetaphors?Isanappropiatelevelconcerningtheeaseofusereached?Ifsamethingsappear,aretheynamedequally?Integritycannotbe„included“initially.

Asatexthastobereadagainandagaininordertobecorrect,auserinter-face or a design also has to be checked critically and changed, especiallysinceintegrityisusuallynotabigissueatthebeginningofaproject.Itisnotcritical until changesoccur that oversize theplannedextent. Inparticular,theattempttoincorporatethosechanges-withouttouchingtheexistingcodepreferably-leadto„backpacks“,„spaghetticode“andultimatelytothedeathoftheproject.

Thus,thenextimportantitemistheperceivedintegrity.Aclosecooperationbetweendevelopersandusers isbasicrequirement toenableuserspercei-vedintegrity,whentheyworkwithasystem.Thebetterthiscommunicationworks, themoreeasilywrongdecisionscanbedetectedandcorrected.Byshort iterationswithexecutablesoftware,thiscoordinationworksbest.Formorecomplextasks,earliercoordinationmaymakesense.

Inadditiontotheperceivedintegrity,theconceptualintegrityisofimportance.Thebestperceivedintegritywillhardlytobeupholdinthelengthoftime,ifitissheerabigfront,andifitreflectsnointernalconceptualintegrity.Ensuringthe internal conceptual integrity is themain taskof theMasterDeveloper.Therefore,aboveall,thecommunicationwithintheteamhastowork.

However,softwarethatcomesincrementallylosesitsconceptualintegrityovertime.Tocounteractthat,afurthermethodologyisapplied:Therefactoring.Thispointwasalreadydiscussedinsection4.12ExtremeProgramming(XP).

Another,alreadywell-knownresourceforensuringtheintegrityisautomatedtesting.Besidessecuringthecodequalityandthestabilitytowardschanges,automatedtestsanswerthefollowingpurposesaswell:

Communicationofrequirements ⬗Feedback ⬗Skeletonforfurthermethodologies,suchasforexampleRefactoring ⬗Documentation ⬗Maintainability ⬗

seeInG The Whole:Projectmanagementisnotjustaboutquality,time,scopeandcosts.Allthesepoints are important.However, none of thesepoints canbe applied singu-larly.

[email protected]

Page 38: Agile Software Development Methods 2010 e Ga Co

36

Asuccessfulprojectmanagerneedstoseethewholething:thevariousindivi-dualinterestsofcustomers,employeesandsuppliers,themanyprofessionalandtechnicalfactorsandtheinnerdynamicofaproject.Theyareallcloselyintertwined.Theydonotshapesimplecause-effectchains,butacomplexsys-tem including feedback loops,delaysandunpredictableevents.Understan-dingthesecorrelationsandinfluencingthemistheessentialtaskofeachpro-jectmanager.

Measurementservesasabasisinfulfillingthistask.However,herewithisnotmeanttoapplyhighlycomplex,meaninglessmetrics,buttooberservatetheprojectconsciouslyingeneralandtointerprettheapparentprojectprogess.Simplekeyfigures, suchase.g. thenumberofopenerrors, areabsolutelysufficient.

Drawingabowtocooperation,oneresourceremains:thecontracts.Contractsserveasabasis formainly twopurposes.First, theyare the foundation tocooperationandsecondly,theyallocatetheresponsibilitytothecontractingparties.

A method similar to Lean Software Development is Kanban. Kanban wasdevelopedin2007byDavidAndersonandisbasedontheprinciplesofLeanDevelopmenttoo.Themethodreliesonalimitationofthe„WorkinProgress“(WiP),whereuponnomorethanadefinedsetofrequirementsmaybeimple-mentedatthesametime.

AvisualizationoftheWiP,e.g.onawhiteboard,makesvisiblewherebottle-necksareintheprocessing.Byeliminatingthebottlenecksanimprovementoftheflowpathisachieved.

SinceKanbanandLeanSoftwareDevelopmentareelsewhereverysimilar,inthefurtherprogressofthisstudyKanbanwillnotbeexplicitlyaddressed.

MICRosofT solUTIons fRaMeWoRk foR 3.17 aGIle sofTWaRe DeVeloPMenT (Msf4asD)

The Microsoft Solutions Framework (MSF) is a set of principles, models,disciplines,conceptsandguidelinesforIT-projects.Aspecificprocessmodelisnotgivenbydefault-itcanbeappliedbothfortheclassicaldevelopingaswellasforagileapproaches.

The Microsoft Solutions Framework for Agile Software Development(MSF4ASD)isaparticularexpressionoftheMSF,justforagiledevelopment.Thereby it is about a template for theVisual Studio TeamSystem (VSTS).Productdefinition,developmentandtestingareprocessedinoverlappingite-rationswiththeaimofcompletingtheprojectincrementally.Eachiterationhasaslightlydifferentfocus,suchasthefollowingfigureshows.

Furthermore,MSF4ASDprovidesavarietyofprinciples, rolesandwaysofthinking,which are based on the agilemanifesto. Similarly,many types ofresultsarepre-definedtowhichthetemplatefortheVSTSincludesexamplesandtemplatesforthegivensituation.

[email protected]

Page 39: Agile Software Development Methods 2010 e Ga Co

37

MobIle-D3.18 Mobile-DistheagilemethodeformobileapplicationdevelopmentoftheFin-nishresearch-organisationVTT.Themethodincludesthephases

Explore ⬗Initialize(iteration0) ⬗Productionize ⬗Stabilize ⬗SystemTest&Fix ⬗

ThephasesProductionize,StabilizeandSystemTest&Fixruniterativelyandincludeeachof thestepsPlanningDay,WorkingDayandReleaseDay.ThesequencewithinaphaseisshowninFigure16.

RaPID aPPlICaTIon DeVeloPMenT (RaD)3.19

The„rapidapplicationdevelopment“istoascribedtoanideabyBrianGal-lagher,AlexBalchin,BarryBoehmandScottShultzbythe1980s,inordertomake the heavy software developmentmethods developed from the 1970smoreflexible.ThetermRADtherebywasnotpopularuntiltheearly1990s.JamesMartindevelopedamethodbasedoniterativedevelopmentofproto-types,whileIBMpublishedabookcalled„RapidApplicationDevelopment“in1991.

Asshowninfigure17,theprocessstartswithadiscussionincludingallpar-ties to create a rough list of basic requirements and prioritize them.Bothdevelopersandcustomersmayhaveconversationswitheachother,asoppo-sedtofurtherdiscussions.Basedonthelistofbasicrequirements,developersdesignaworkingprototypeofthesoftwareassoonaspossibleaccordingto

ContentsofFigure15:iterationsinMSF4ASD

TheendofaphaseinFigure16:Mobile-D

[email protected]

Page 40: Agile Software Development Methods 2010 e Ga Co

38

therelevanceofpriorities.Theymayusea„softwarebuildingkit“soas toassemblethemostimportantbasicrequirementsquickly.

Aftercompletionof thefirstprototype,a testby thecustomer takesplace.Headdsfurtherrequirementsandrefinesexistingrequirements.Inafurthermeeting,theagentshallnotifytheprincipleconcerningenhancedand/ornewrequirements.Thismeetingshalltherebyratherbeperformedasamonologueoftheagent.

Thenewrequirementsareoptimizedinashortdevelopmentcycle(fromoneday to threeweeks) and added to the software. This iteration is repeateduntilthesoftwarewithallpropertiesdesiredbythecustomerispresent.Thisapproachcreates ineach iterationnew, improvedversionsof thesoftware.Byminimalplanninginadvanceandplanningparalleltodevelopment,RADpromisesoperationalsoftwareinlessthan120days.

sCRUM3.20 Asearlyasinthe1980s,itwaslookedformoreflexibleapproachesinsoftwaredevelopment.Scrumisanagileframeworkbothforthesoftwaredevelopmentaswellasforprojectmanagement.Basedon„LeanProduction“,itwasdesi-gnedbyKenSchwaber,JeffSutherlandandMikeBeedle.Bothmethods,LeanProductionandScrum,focusthecontinuousdevelopment(employees,proces-ses,resources,methods)withtheaimofongoingproductionimprovementsoastoreachhighestqualitywithminimaleffort.

InScrum,thereisthecardinalhypothesisthatproductionassemblyaswellasdevelopmentprocessesaresuchlikeextensivethatparticularphasesandstepscannotbeplannedinadvance.However,ifateamorganizesitself incompliancewithfixedpresettings,thiswillleadtomoreeffectiveness.

Scrumusesitsownvocabularytoknownstandardterms.Forthatreason,themostsignificanttermswillbeexplainedhereinafter.Threerolesareinvolveddirectlyintheprocess.

Roles3.20.1 PRoDUCT oWneR:TheProductOwnershallprovidetheagentroleandisplacedingeneralbythedepartment.Hewritesandprioritizetherequirementsanddeterminestheirorder.Heisavailabletotheteamforinformationandisresponsibleforthesuccessoftheprojectlikewise.

RADprocess(Source:Figure17:http://blog.twinklesprings.com)

[email protected]

Page 41: Agile Software Development Methods 2010 e Ga Co

39

sCRUM MasTeR:Asacoachandfacilitatoroftheteam,theScrumMastermakessurethatthescrumrulesarestickedto.Hemanagestheentireprocess,eliminatesdisor-dersandworkscloselywiththeProductOwnertogetherinordertoshapetheprojectasvalue-addingaspossibleforthecompany.Moreover,hehelpstheteamtoincreaseitsproductivity.

TeaM:Therearepeoplewithdifferentexpertiseinvolvedtothedevelopmentoftheproductwithintheteam.Theteamhasallthequalificationsneededtotransferthedefinedrequirementsinfunctionality.

MaIn eleMenTs3.20.2 PRoDUCT baCkloG:Theproductbacklogshowsallthepropertiesoftheproducttobedevelopedinaprioritizedlist.Theserequirementscanberemovedandnewrequirementsadded.Theprocessingofrequirementsiscarriedoutindecreasingorderofpriority.

sPRInT:Fixedcycle(iteration)intwotofourweeksusually,withintheproductisdeve-loped.Attheendofeachsprint,afunctionalincrementcanbedeployed.Yetinordertogainrealaddedvaluetothecompany,usuallyseveralsprintsarenecessary.

sPRInT baCkloG:TheSprintBacklogdefines theworkscopeof the team foreach individualsprint. It contains the selected requirements from theProductBacklog. Inaddition,asummaryofalltaskstobedevelopediscompiledregularlysoastoachievethegoalofthesprint.

DaIlY sCRUM:Ato15minuteslimitedmeeting,whichtakesplaceeveryday.Regularcom-municationservestheexchangeofinformationamongeachotherrelatedto:

Statusquo ⬗Futuretasks ⬗Problemsoccured ⬗

oPeRaTIonal seQUenCe DesCRIPTIon3.20.3 Inalist(ProductBacklog)requirementsareadded,completedandprioritized.IncollaborationwiththeProductOwner,thehigherprioritiziedrequirementsof theProductBacklog are extracted regularly by the teamandduring aniteration(Sprint)completelyimplemented.PartsoftheProductBacklogthathavenotbeenextractedsofarmaybeprioritizedagainbytheProductOwnerforsubsequentsprints.

During Sprint, the teamworks focused andwithout interferences in orderto transfer therequirementsof theSprintBacklog inacompletelyfinishedandpotentiallyproductive,operatingapplicationpart(PotentiallyShippableFunctionality). A to 15minutes limited Informationmeeting (Daily Scrum)takesplaceeverydaytoassurethatallteammembersreachthesamelevelofknowledgeandtoproactivelypointtopotentialproblems.Attheendofthe

[email protected]

Page 42: Agile Software Development Methods 2010 e Ga Co

40

Sprint, theteamdemonstratesall involvedpersonsthe fullydevelopedandexecutablepropertiesonthesysteminrealtime(SprintReviewMeeting).

ReactionsofparticipantsandnewrequirementsareincorporatedintothenextSprintPlanningMeeting,whichistobeheldbeforeeachsprint.Theprocess(seefigure18)willbepassedthroughagain.

TesT DRIVen DeVeloPMenT (TDD)3.21 Thetraditionalsoftwaredevelopmentproposesimplementingcustomerrequi-rementsfirst inphasesand to test independentlyat theend.The testsarecreatedeitherparalleltothedevelopmentofsoftwareoronlyattheendofdevelopment.TDDreversesthisprocedure.Beforecoding,theprogrammerthinksabouttherequirementsthesoftwarehastomeetandwhichtestsareappropiate.Basedonthetests,theactualprogrammingisdonegraduallyinshort,iterativecycles.Anycycletraversedoptimizesthesoftwaretoadditio-nalproperties.Thisprocedureisexecutedthefollowingway:

1sT: CReaTInG a TesTAnewtestisgeneratedtoeachnewfeatureacustomerrequiresrelatedtothesoftware.Inordertocreateatest,thedeveloperhastoclearlyunderstandthecustomer‘srequirementsorspecialfeaturesofthesoftware.

2nD: eXeCUTInG a TesT (1)Bythefirsttestrun,theprogrammingisnottobechecked,sincenosinglelineofcodewaswritten.Thefirsttestrunisusedforthefunctionalvalidationofthetestingenvironmentandtoensurethatthetestrunsitselfandprovidestheexpectedresult„error“.

ScrumFigure18:Process

[email protected]

Page 43: Agile Software Development Methods 2010 e Ga Co

41

3RD: WRITInG/ fITTInG CoDe:Afterthefirsttest,thecodeisbeingwrittenwithaslittleeffortaspossibleinorderto justpassthenexttest.Additional functionalityof futurephasesshouldnotbeanticipated.Thewrittencodeinpresentconditionisnotperfect,butisoptimizedinthenextpasses.

4Th: eXeCUTInG a TesT (2)Whenthecodeiswrittenoradjusted,atestruntakesplaceagain.Thethirdandfourthsteptherebywillbelooped,untilalltestcasesarepassedfortheprogrammedunit.Developersnowcanbeconfidentlythatthecodemeetsallthetestedrequirements.

5Th: RefaCToRInGInthelaststep,thecodeissimplifiedbyrefactoring,eliminatingredundancyandmakingitcomprehensible.Attheendofrefactoring,itisrecommendedtoexecutealasttestruninordertoensurethatnoexistingfunctionalityhasbeendamagedbyrefactoring.Figure19 illustrates theentireprocess.Thedevelopmentofasoftwareisstructuredindifferent„units“.Eachunitpassesthroughthelifecycle.Thestagesthreeandfour(Writing/fittingcode,execu-tingatest)arerepeated,untilthedesiredfunctionalityofaunitisreached,allerrorshavebeeneliminatedandthedevelopercannotthinkofmorereaso-nabletests.Theprocesswillbepassedthroughbyeachunit.TDDisnotestmethod,butasoftwaredevelopmentmethod.

UnIfIeD PRoCess (UP)3.22 TheUnifiedProcess(UP) isapopularprocessframework.Themostknownrealization is theRationalUnifiedProcess(RUP).However, thereareothervariantsoftheUP.ThecommonfoundationofallrealizationsofUPis:

DeVeloPMenT Phases:Thedevelopmentisdividedintophases.TheUPresemblesthefollowingpha-ses:

23

TestDrivenDevelop-Figure19:mentLifecycle(ownpresentation)

[email protected]

Page 44: Agile Software Development Methods 2010 e Ga Co

42

Inception ⬗Elaboration ⬗Construction ⬗Transition ⬗

SomevariantsoftheUPextendthisphasemodel.

DIsCIPlInes:Thefollowingdisciplinesareprocessedinasoftwaredevelopmentproject:

BusinessModeling ⬗Requirements ⬗AnalysisandDesign ⬗Implementation ⬗Test ⬗Deployment ⬗

Overthephases,thecostdistributionconcerningthedisciplinesisrepresen-tedinthefollowingfigure20.

ITeRaTIVe anD InCReMenTal:Within thephases,projectresultsareprogressed iterativelyand incremen-tally.

Use Case DRIVen:Inordertodocumentthefunctionalrequirements,usecaseswillbeemplo-yed.

aRChITeCTURe-CenTeReD:UPfocusestheeffortsinthedesignofasystem-architecture.

CostFigure20:distributionofthedifferentdiscip-linesaboutthe

phasesoftheUP(source:Wikipe-

dia)

[email protected]

Page 45: Agile Software Development Methods 2010 e Ga Co

43

RIsk-foCUseD:RisksareaddressedearlywithinUP.Theresultsofeachphaseareselectedinawaythatpointswiththehighestrisksareprogessedfirst.

ThefollowingrealizationsoftheUnifiedProcessexist:

AgileUnifiedProcess(AUP):AlightweightversionbyScottW.Ambler ⬗EssentialUnifiedProcess(EssUP):AlightweightversionbyIvarJacob- ⬗sonOpenUnifiedProcess(OpenUP):Thedevelopmentprocessofthe ⬗EclipseProcessFrameworksRationalUnifiedProcess(RUP):Thedevelopmentprocessofthecom- ⬗panyRational(nowIBM)RationalUnifiedProcess-SystemEngineering(RUP-SE):Adaptationof ⬗RUPforsystemsengineeringEnterpriseUnifiedProcess(EUP)AnextensiontotheRUPatphases ⬗fortheentirelifecycleofsoftware(operatingandphase-out)OracleUnifiedMethod(OUM):ThedevelopmentprocessoftheOracle ⬗company

The Unified Process and its most famous realization, the Rational UnifiedProcess,arenoagileprocessmodels.ThesameistrueoftheRationalUni-fiedProcessforsystemengineering,theEnterpriseUnifiedProcessandtheOracleUnifiedMethod.Inthefollowing,onlythosevariantsoftheUPwillbeconsideredinmoredetail,whichsupporttheagilemethodology.

aGIle UnIfIeD PRoCess (aUP) 3.22.1

TheAgileUnifiedProcess(AUP)isasimplifiedversionoftheRationalUnifiedProcessandwasdevelopedbyScottW.Ambler.ThegoalistofacilitateagilitywithintheframeworkofRUP.Therefore,thedisciplinesBusinessModeling,RequirementsandAnalysisanddesignhavebeenaggregatedto„Model“.As

PhasesFigure21:anddisciplinesoftheAgileUnifiedProcess(source:www.ambysoft.com)

[email protected]

Page 46: Agile Software Development Methods 2010 e Ga Co

44

showninfigure21,thisdisciplinetakessignificantlylessefforttocomplete.Inthiscase,itissufficientthatmodelsare„justgoodenough“fortheproject.

AUPdistinguishesbetweeniterationsin„DevelopmentReleases“andin„Pro-ductionReleasesaswell:DevelopmentreleasesaredeployedinaQA-and/ordemoenvironment.Aproductionrelease,ontheotherhand,goesinproduc-tion.

Eventhoughnotallreleasesaregoingtobeinproduction,allreleaseswillbetargetedasexecutableresults.

TheAUPistherebybasedonthefollowingprinciples:

Thewholeteamknowswhatitdoes ⬗Simplicity ⬗Agility(withinthemeaningoftheagilemanifesto) ⬗Focusoncurrenttasks ⬗Toolindependence ⬗Possibiltyoftailoringthemethod ⬗

essenTIal UnIfIeD PRoCess (essUP)3.22.2 The Essential Unified Process (EssUP)was developed by Ivar Jacobson asanimprovementtotheRationalUnifiedProcess.Itidentifiespracticessuchasusecases,ArchitectureDrivenDevelopment,teampracticesandprocesspracticesborrowedfromCMMI,RUPandagiledevelopment.Fromallthesepractices,onecannowtakethose,whichareappropiatefortheconcretesitu-ationandmergethemtoaseparateprocess.

oPen UnIfIeD PRoCess (oPenUP)3.22.3 TheOpenUnifiedProcess(OpenUP)isaleanrealizationoftheUnifiedPro-cess,which provides iterative, incremental approaches in a structured lifecycle.ItispartoftheEclipseProcessFramework,anOpenSourceProcessFrameworkoftheEclipseFoundation.

TheOpenUPisbasedonfourbasicprinciples:

Cooperationinfavorofcommonunderstandingandbalanceofinte- ⬗restsCompetingprioritiesarebalancedtothehighestuserbenefits ⬗Earlyfocustothearchitecturetominimizerisksandtoguidedevelop- ⬗mentContinuousfeedbackandimprovement ⬗

ThecontentoftheOpenUPisdividedintothreeareas:

Personalarea:Encompassestheworkofeachindividualasamicro- ⬗incrementTeamarea:Thewholeteamdevelopsoperatingsoftwarewithinone ⬗iterationStakeholderarea:Encompassesthefullprojectlifecycle ⬗

[email protected]

Page 47: Agile Software Development Methods 2010 e Ga Co

45

DIsCIPlInes:AsallrepresentativesoftheUnifiedProcess,OpenUPencompassesdifferentdisciplinesaswell.Theseare:

Requirements ⬗Architecture ⬗Development ⬗Test ⬗ProjectManagement ⬗ConfigurationandChangeManagement ⬗

TheprojectlifecycleofanOpenUPprojectisdepictedbelowinfigure23.

ContentareasFigure22:oftheOpenUP(Source:http://epf.eclipse.org/wi-kis/openup/)

ProjectLifeFigure23:CycleunderOpenUP(source:http://www.eclipse.org/epf/general/OpenUP.pdf)

[email protected]

Page 48: Agile Software Development Methods 2010 e Ga Co

46

UsabIlITY DRIVen DeVeloPMenT (UDD)3.23 UsabilityDrivenDevelopment(UserInterfaceDrivenDevelpomentorUI-FirstSoftwareDevelopmentlikewise)isaniterativedevelopmentprocessthatcen-terstheusabilityofasystem.ExtremeProgrammingservesasamodel-ithasbeenextendedwithelementsoftheUserCenteredDesign.

EachiterationconsistsofninephasesinUDD: ⬗Experimentalgame ⬗Costestimation ⬗Interfacedesign ⬗Modeling ⬗Testdesign ⬗Programming ⬗Integration ⬗Deployment ⬗UsabilityTest ⬗

Thesequenceofphasesisshowninfigure24.

Phase 1 - eXPeRIMenTal GaMe:ThedevelopmentofsoftwareinaccordwithUDDbeginswithanexperimentalgame.Thecustomerorateammemberofthebusinesssidenotesallthetasksthesystemshouldbeabletohandleintermsofstorycards.Thesestorycardsareorderedasperpriorityanddevelopedaccordingtothatorder.

Theexperimentalgameisrepeatedateachiteration.Thisgivesthecustomertheabilitytochangeprioritizationineachiterationandtoaddcompletelynewstorycards.Morestorycardswillbeaddedbyusabilityteststakenplaceinthecourseofdevelopment.Thesehavegottobeprioritizedbythecustomerlikewise.

Phase 2 - CosT esTIMaTIon: Eachdevelopertakesstorycards,whichencompasstheworktobedoneuntilthenextexperimentalgame.Here,thecostestimationisdonebythedevelo-persthemselves.Theactualtimeswiththeestimatedtargettimesarecompa-

EndofaniterationFigure24:inUDD(source:http://www.jensjaeger.com/tag/usability-

drivendevelopment/)

Programming

[email protected]

Page 49: Agile Software Development Methods 2010 e Ga Co

47

redaftereachiteration.Thisresultsinabetterbasisforfurtherestimatesinthecourseofaproject.

Phase 3 - InTeRfaCe DesIGn: Comparedtothedesignofinterfaces,programmingisverycomplexandonlydifficultlyalterable.Hence, inUDDtheGUIofanapplication isconsideredfirst.Shapingthesurfaceofsoftwareisrelativelyeasy.Asketchonasheetofpaperismadequicklyandalteredeasily.Anotherimportantreasontodesigntheinterfacefirstisthatthesurfaceiswhatusersgettosee.Itwillbedifficulttoattractcustomerswithanapplicationsoftware,whichhasgreatfeatures,butanunattractivesurface.

In caseof extensionsor extensive changes concerning the surface, it shallbemadeuseoftheoptiontojumpinthephaseofusabilitytesting.Thus,thedrafteddesignwillbeexaminedandpossiblyimproved,beforetoomuchworkhasbeeninvested.

Phase 4 - MoDellInG: Oncethesurfaceofafunctionisdesigned,thephaseofmodellingbegins.Anoverviewexplainingthewaythenewfunctionalitymaybeintegratedinthewholesystemshallbecreatedwithinthemodelling.

Whatdatabasefieldsareneeded,whereinthelayermodelthefunctionistobeimplemented,whichlibraryfunctionscanbeused,whichalgorithmsaremostsuitableforthesolutionofproblems?Thesequestionsshouldbeaskedandansweredbythedevelopers.

Ifindoubt,theviewsofcolleagueswillbeobtainedorifpossible,atestwillbedeveloped.Aloadtestcanbequiterevealing,especiallyincaseofperfor-manceissues.

Inthisstageitisnotaboutdescribingthefunctionalitytobedevelopeddownto the lastdetailwithUMLcharts.Chartsshouldonlybeused,where it isusefulandthuscreatingbenefit.

Phase 5 - TesT DesIGn: Thenextphaseisnamedtestdesign.Allonthestorycardlistedfeaturestobeelaboratedwillbeimplementedintermsoftests.Itresultsinanexecutablespecificationof the functionalityrelating to thestorycard (seeTestDrivenDevelopment).Exceptionsarestorycards,whichdealexclusivelywithimpro-vementstothesurfaceanddonotalteranyfunctionalityofthesystem.Thesemayhaveemergedbyausabilitytestandmaybedifficultornotmechanicallytestableatall.Inthatcase,thisphasewillbeskipped.

Phase 6 - PRoGRaMMInG: Intheprogrammingphase,theresultsfromthepreviousphaseswillbeimple-mented. The previously designed user interface is implemented, requiredclassesandmethodswrittenanddatabasestructuresdeveloped.

Indoingso, the simplest solution thatworks shouldalwaysbechosenandimplemented.Programmingisdone,whenalltestscanbeexecutedcorrectly.Aftersuccessfullytesting,thenewlydevelopedsourcecodeshouldbetrialedbyarefactoring.

[email protected]

Page 50: Agile Software Development Methods 2010 e Ga Co

48

Phase 7 - InTeGRaTIon: Integration means bringing the modified source code with the code basetogether.Beforethisstepcanbemade,all testshavetobecompletedsuc-cessfully.

Asatooltointegration,aversionmanagementshouldbeusedbyallmeans.Itisadvisablethatthepossiblycreatedchartsduringthemodellingphasegetcheckedinaswellintheversionmanagementinadditiontothesourcecode.

Ontoolsthatautomaticallypassalltestsandtriggerabuildineachsoftwareversion,whichisrecordedtotheversionmanagement,shouldnotbewaived.Thus,errors,suchasaforgottencheck-inofafileintheversionmanagement,canbeeasilydetected.

Phase 8 - DePloYMenT:Thetermdeploymentdescribestheautomaticdistributionanddeliveryofthedevelopedsoftware.Ideally,thenewlycreatedfunctionisrecordedinthepro-ductionsystem.

Thisleadstotheadvantagethatfurtherdevelopmentsareavailableimmedia-telytotheusers.Despiteextensivetesting,thisyetimpliestheriskoferrorswithintheproductiveversion.Inordertotakethisrisk,thepossibilityofrevo-kingadeploymenthastobepresentatanytime.

Ifanimmediateproductionstartofanewreleaseisnotpossibleornotdesi-red,oneshoulddeployatleastonatestsystemtohaveaworkingsystemwiththelatestsoftwareversionfortestsanddemonstrationsalwaysavailable.

Phase 9 - UsabIlITY TesT: TheusabilitytestisthefinalphaseofaUDD-iteration.Thedeveloperwilltestthenewlyimplementedfunctionregardingtothefunctionalitydescriptiononthestorycard.

If,despiteofextensivetesting,errorsarefound,theprecedingdeploymentwillbecalledoffimmediatelyandtheiterationwillbepassedthroughagainwithaviewtodebugging.Thefunctionalityshouldbeensurednormally.

However,itwilloftenbethecasethatideasforimprovingregardingthejustdevelopedfunctionalityoradifferentfeatureofthesystemarise.Thesearelistedintermsofstorycardsandhavetobeprioritizedbythecustomersinthenextexperimentalgame.

[email protected]

Page 51: Agile Software Development Methods 2010 e Ga Co

49

eValUaTIon 4 Inthefollowingsections,theagilemethodsarebeingevaluatedinaccordancetovariouscriteria.Thecriteriaare:

Coverageofdisciplinesinsoftwareengineering ⬗Levelofawarenessanddisseminationofmethods ⬗Supportfordifferenttypesofprojects ⬗Supportbytools ⬗Normalization,standardization,certification,licensing ⬗Industryfocus ⬗Supportduringintroductionandutilization ⬗

Adetaileddescriptionof thecriteriausedand the individualevaluations isprovidedintherespectivechapters.

CoVeRaGe of DIsCIPlInes In sofTWaRe 4.1 enGIneeRInG

Itwillbeexaminedbelow,towhatextentagilemethodscoverdisciplinesofsoftwareengineering.Asdisciplinesofsoftwareengineeringwillbeconside-red:

ProjectManagement ⬗QualityManagement ⬗RequirementsManagement ⬗Systemdesign/technicalconception ⬗Implementation ⬗Test ⬗Integrationanddeployment ⬗Maintenance ⬗Operation ⬗

PRojeCT ManaGeMenT: Projectmanagementisuseofknowledge,skills,toolsandtechniquesonpro-jectactivitiestomeetprojectrequirements.Thisencompassestheactivitiesofplanning,controllingandchecking,andtheareasoftimemanagement,scopemanagement,riskmanagement,costmanagement,project-specificprocure-mentofproductsandservices,humanresourceplanning,projectintegrationandprojectcommunication.

QUalITY ManaGeMenT: QualityManagement is understood as coordinated activities to direct andcontrolanorganizationintermsofquality.Directingandcontrollingintermsofqualitytypicallyincludessettingthequalitypolicyandqualityobjectives,qualityplanning,qualityassuranceandqualityimprovement(ISO9000).

[email protected]

Page 52: Agile Software Development Methods 2010 e Ga Co

50

ReQUIReMenTs ManaGeMenT: Requirementsmanagementistheprocessofidentification,inquiry,documen-tation, analysis, tracking, prioritization and coordination of requirements.AccordingtoIEEE610,arequirementisadocumentedrepresentationofaconditionorcapabilityasper1.or2.:

1.Habitorabilitythatuserneedtosolveaproblemortoachieveanobjec-tive.

2.Habitorabilitythatiscompliedorneededbyasystemorsystempart,inordertofulfillacontract,astandard,aspecificationorotherformallygivendocument.

sYsTeM DesIGn / TeChnICal ConCePTIon: Systemdesignisthedefinitionofasystem-architectureaswellasthecom-ponents,modules,interfacesanddataofasoftware-system.

IMPleMenTaTIon: Implementationistheconversionofthetechnicalspecificationandthealgo-rithmsintoanexecutablesoftwareprogram.

TesT: Thetestsupportsensuringthesoftwarequalityandtotest,whethertherequi-rementsconcerningthesoftwarewillbemet.AccordingtoIEEE829,atestisacertainquantityinoneormoretestcases.AtestcaseregardingtoIEEE610comprisesthefollowing:

Thenecessarypre-conditionsfortheaccomplishment ⬗Thesetofinputvalues(onevaluepertestobjectparameter) ⬗Thesetofpredictedresults ⬗Theexpectedpost-conditions ⬗

Testcasesaredevelopedwithaviewtoacertaintargetoratestcondition,e.g.executingaparticularprogrampathorexaminingthecompliancewithspecificrequirements(suchashandingoffinputsthetestobjectandreadingoffdesiredvalues).

InTeGRaTIon anD DePloYMenT: Integrationistheprocessoflinkingindividualcomponentstolargerunitsandultimatelytothewholesystem.Deploymentisthecommissioningofsoftwareandtheroll-outtotheusers.

MaInTenanCe: Maintenanceisthemodificationofasoftwareproductafteritsdeploymentinordertocorrecterrorconditions,toimprovetheperformanceorothercharac-teristicsortoadapttheproductforadifferentenvironment.

[email protected]

Page 53: Agile Software Development Methods 2010 e Ga Co

51

oPeRaTIon: Operationmeanssecuringtheproductiveuseofsoftware.ThisencompassesthefollowingtopicsincompliancewithITILV3

ServiceStrategy ⬗ServiceDesign ⬗ServiceTransition ⬗ServiceOperation ⬗ContinualServiceImprovement ⬗

withtheirrespectiveprocesses.

[email protected]

Page 54: Agile Software Development Methods 2010 e Ga Co

52

PRofIles afTeR eValUaTInG The MeThoDs 4.2 Theresultofevaluationispresentedinthefollowingfiguresintheformofspidercharts.Theevaluationisdonewiththevalues0-4,where0meansnoandfourfullcoverage.Ithasbeenevaluated,towhatextentthedisciplinesofsoftwareengineeringwillbeaddressedbytherespectivemethods.Theevalu-ationdoesnotspecifythequalityofresultstoaspecificproject.

PRofIlesThefollowingabbreviationsareusedinthespidercharts:

PM:ProjectManagementQM:QualityManagementRM:RequirementsManagementSD:Systemdesign/technicalconceptionIMP:ImplementationT:TestINT:IntegrationandDeploymentM:MaintenanceO:Operation

[email protected]

Page 55: Agile Software Development Methods 2010 e Ga Co

53

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Agile Enterprise

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

AMDD

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

ActiF

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

ASD

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

BDD

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Crystal

[email protected]

Page 56: Agile Software Development Methods 2010 e Ga Co

54

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Design Driven Development (DDD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Dynamic System Development Method (DSDM)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Eclipse Way Process

01234

PM

QM

RM

SD

IMPT

INT

W

B

Evolutionary Process for integrating COTS-Based

Systems (EPIC)

01234

PM

QM

RM

SD

IMPT

INT

W

B

Evolutionary Project Management & Product

Development (EVO)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Extreme Programming (XP)

[email protected]

Page 57: Agile Software Development Methods 2010 e Ga Co

55

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Feature Driven Development (FDD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Iconix

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Internet-Speed Development (ISD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Lean Software Development (LSD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

MS Solution Framework (MSF4ASD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Mobile-D

[email protected]

Page 58: Agile Software Development Methods 2010 e Ga Co

56

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Rapid Application Development (RAD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Scrum

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Unified Process

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Agile Unified Process (AUP)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Essential Unified Process (EssUP)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Open Unified Process (OpenUP)

[email protected]

Page 59: Agile Software Development Methods 2010 e Ga Co

57

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Test Driven Development (TDD)

0

1

2

3

4PM

QM

RM

SD

IMPT

INT

W

B

Usability Driven Development (UDD)

[email protected]

Page 60: Agile Software Development Methods 2010 e Ga Co

58

Tables4.3 Thefollowingtablesummarizestheevaluation,wherethefollowingsymbolsareused:

0 Nocover1 Lowcoverage2 Mediumcoverage3 Coverage4 Fullcoverage

Thefollowingabbreviationsareusedinthetables:

PM:ProjectManagementQM:QualityManagementRM:RequirementsManagementSD:Systemdesign/technicalconceptionIMP:ImplementationT:TestINT:IntegrationandDeploymentM:MaintenanceO:Operation

[email protected]

Page 61: Agile Software Development Methods 2010 e Ga Co

59

Method PM QM RM sD IMP T InT W b

actif 3 2 4 3 4 1 3 0 0

agile enterprise 4 3 4 2 4 4 3 1 0

aMDD 1 2 2 2 3 4 3 3 3

asD 2 4 1 1 2 1 0 0 0

bDD 0 3 4 1 2 2 1 0 0

Crystal 2 3 2 0 3 4 1 1 0

DDD 0 1 3 1 1 1 0 0 0

DsDM 2 2 4 4 4 4 4 3 2

eclipse Way Process 4 2 4 4 4 4 3 1 0

ePIC 4 3 3 3 2 3 3 0 0

eVo 4 2 2 3 2 4 2 0 0

extreme Programming (XP) 1 3 3 2 4 4 2 1 0

fDD 3 3 3 4 3 1 1 0 0

Iconix 3 4 4 4 4 4 3 1 0

IsD 3 0 3 1 3 3 4 0 1

lsD 1 4 2 3 3 4 2 1 1

Mobile-D 2 2 2 1 2 3 1 0 0

Ms solution framework 3 2 2 2 3 3 2 0 0

RaD 1 1 2 0 4 3 3 1 0

scrum 4 3 4 1 1 1 3 1 0

TDD 0 3 1 0 4 4 2 1 0

UDD 2 3 3 2 2 4 4 1 0

Unified Process 1 1 4 4 4 3 3 1 0

aUP 4 1 3 3 4 3 3 1 0

essUP 4 2 3 4 4 3 3 1 0

oUP 4 1 4 4 4 3 3 1 0

Summaryofevaluation.Table1:

[email protected]

Page 62: Agile Software Development Methods 2010 e Ga Co

60

leVel of aWaReness anD DIsseMInaTIon of 4.3.1 MeThoDs

Theevaluationofthelevelofawarenessanddisseminationofagilemethodswasperformedbyreferencetothefollowingparameters:

nUMbeR of seaRCh ResUlTs In GooGle: Thenumberof searchresults inGoogle (www.google.com)hasbeenanaly-zed.Inordertofindonlythemostrelevantmethodsandtopreventobtainingresultswithothermeaningsofaterm(thetermScrume.g.comesfromtherugbysports),thefollowingsearchtextwasused

„<method>“agiledevelopment

Themethodtherebyhasbeenwrittenwithnoabbreviations.Example:

„TestDrivenDevelopment“agiledevelopment

Thenumberofresults for the levelofdiffusionhasbeendivided in„high“,„medium“and„low“.

Levelofdiffusionhigh:>100.000hitsbytheabovesearch ⬗Levelofdiffusionmedium:10.000-100.000hits ⬗Levelofdiffusionlow:<10.000hits ⬗

nUMbeR of books aVaIlable aT aMazon: Theobtainednumberofbooks,onthewebpageofAmazon(www.amazon.com)hasbeenanalyzed.Thesamesearch termsasonGoogle’spagehavebeenused.

The number of results for level of diffusion has been divided in „high”,„medium“and„low“.

Levelofdiffusionhigh:>10hitsbytheabovesearch ⬗Levelofdiffusionmedium:5-10hits ⬗Levelofdiffusionlow:<5hits ⬗

nUMbeR of PeRsons WITh knoWleDGe anD eXPeRIenCe In The MeThoDs:

Profiles that are saved inaWesternEuropean portal for freelancershavebeenanalyzed.Indoingso,thecandidate’sprofileshavebeensearchedfortherespectivemethodnames.Inordertoonlyfindtheappropriatemethods,themethodshavebeensearchedinquotationmarks.Example:„Feature-dri-vendevelopment“

The number of results for level of diffusion has been divided in „high“,„medium“and„low“.

Levelofdiffusionhigh:>100hitsbytheabovesearch ⬗Levelofdiffusionmedium:10-100hits ⬗Levelofdiffusionlow:<10hits ⬗

[email protected]

Page 63: Agile Software Development Methods 2010 e Ga Co

61

Method Google books People Total

actif Low Low Low Low

agile enterprise Medium Low Low Low

aMDD Medium Low Low Low

asD Low Low Low Low

bDD Low Low Low Low

Crystal High Low High High

DDD Low Low Low Low

DsDM Medium Low Low Low

eclipse Way Process Low Low Low Low

ePIC Low Low Low Low

eVo Medium Low Low Low

extreme Programming (XP) High High High High

fDD Medium Medium Medium Medium

Iconix Low Medium Low Low

IsD Low Low Low Low

lsD Medium High Low Medium

Mobil-D Low Low Low Low

Ms solution framework Low Low Low Low

RaD Medium Medium Medium Medium

scrum High High High High

TDD High Medium Medium Medium

UDD Low Low Low Low

Unified Process Medium Medium Medium Medium

aUP Medium Low Low Low

essUP Medium Low Low Low

oUP Medium Low Low Low

Evaluationoflevelofawarenessanddissemination.Table2:

[email protected]

Page 64: Agile Software Development Methods 2010 e Ga Co

62

Thefollowingfiguredepictstheresultsgraphically:Thetoponescanbeseenasthe„favorites“,theonesbelowratherasthe„exotic“.

0 2 4 6 8 10

UDD

MSF4ASD

Mobil-D

ISD

EPIC

Eclipse Way Process

DDD

BDD

ASD

Actif

Iconix

EVO

DSDM

AMDD

Agile Enterprise

OUP

EssUP

AUP

Unified Process

RAD

LSD

FDD

TDD

Crystal

Scrum

XP

Overallevaluationre-Figure25:gardingtothelevelofawareness

(Google,books,people)

[email protected]

Page 65: Agile Software Development Methods 2010 e Ga Co

63

sUPPoRT of DIffeRenT TYPes of PRojeCTs 4.3.2 Anothercriterionfortheevaluationofthemethodsisthesupportofdifferenttypesofprojects.Threetypesofprojectswereconsidered:

Newdevelopmentofcustomsoftware ⬗Furtherdevelopmentofcustomsoftware ⬗Customizingandadjustingdevelopmentofstandardsoftware ⬗

neW DeVeloPMenT of CUsToM sofTWaRe: Thenewdevelopmentofcustomsoftwareisunderstoodasthedevelopmentofanewsoftwaresystem.

DeVeloPMenT of CUsToM sofTWaRe: Thefurtherdevelopmentofcustomsoftwareisunderstoodasthefunctionalextensionofanexistingsoftwaresystem.

CUsToMIzInG anD aDaPTInG DeVeloPMenT of sTanDaRD sofTWaRe:

Customizingofstandardsoftwareandadaptingdevelopmentisunderstoodastheadoptionofastandardsystemtocompany-specificcircumstances.Custo-mizingtherebyistheadjustmentofconfigurationofthesoftwarewithoutpro-grammingactivities(e.g.thechangeofconfigurationfilesinthetexteditor),whileintheadaptingdevelopmentthesoftwareismadereadyforoperationbyprogrammingactivities(e.g.ABAP-developmentinanSAPsystem).

Wehavecometotheconclusionthatinanagileprojectenvironmentitcannot be differentiated between different types of projects, since the projectapproachprimarilydependson thebasic, surrounding conditions (e.g. sta-bilityandmaturityoftherequirements,standardprojectapproachofacom-pany, desired appointments andguidelines). Thus, as an example, thenewdevelopment of custom software can take place both in a classical and anagileway.

ItisrestrictivelytobesaidthattheuseofTestDrivenDevelopmentortheuseof the“TestFirst”approachofExtremeProgramming isnot recommendedboth incaseof furtherdevelopmentandcustomizingof standardsoftware.Incaseoffurtherdevelopmentofcustomsoftware,theuseofthesemethodsdependsontheexistingcoverageofthesoftwarebyunit-tests,incaseofcus-tomizingitgenerallydependsonthepresenceofaunit-testframework.

sUPPoRT bY Tools 4.3.3 Inordertouseamethodreasonable,atoolsupport isoftenhelpful.Itwasanalyzed,whetherthereisasupportbyspecializedsoftwaresolutionstotherespectivemethods.Withthis,toolsofbasicnaturethatmaybeusedintheagile software development, e.g.MSExcel orBugzilla, are notmeant, buttools specifically designed for the use of a particularmethod (e.g. Scrum-works).SeeTable3.

[email protected]

Page 66: Agile Software Development Methods 2010 e Ga Co

64

noRMalIzaTIon, sTanDaRDIzaTIon, CeRTIfICaTIon, 4.3.4 lICensInG

Inordertobeabletoassessthefutureviabilityandreliabilityofamethod,theissuesofnormalization/standardization,certificationandlicensinghavebeenconsidered.Indetail,thefollowingquestionshavebeenexamined:

Whoisthecarrier/driverofamethod(singlecompany,consortium, ⬗non-profitorganization,community)?Isthereastandardizationauthority? ⬗Isthereatrainingprogramwithcertification(e.g.,„CertifiedScrum ⬗Master“)?Doesamethodhavetobelicensedbeforeutilization? ⬗

ThepointsarepresentedIntable4.

InDUsTRY foCUs 4.3.5 As part of the research,we have come to the insight that for the applica-tionofagilesoftwaredevelopmentmethodsno industry focuscanbeseen.Inouropinion,anagileapproachsuitsinbranches,inwhichcompaniesactboth innovative and value-oriented and have to adopt onmarket demandsquicklyandflexiblyinordertoremaincompetitiveinthemarket(suchasintheTelecommunicationsindustry).Forbrancheswithafocusonsafety-criticalaspects(e.g.military,air&space),astronglegalprecept(e.g.bankingsector)andpublicinstitutionssuitsamoretraditionalmethod,suchasthewaterfallmodel,orV-modelXT.

However, thereareadditional criteria thathaveabearingon thedecision,whetheritshouldbeproceededtraditionaloragile.Thus,asanexample,inthebankingsectoracustomerportalmaybedevelopedagile,thecoreban-kingsystemincontrastshouldbedevelopedinamoretraditionalwayduetoavailabilityanddatasecurity.

sUPPoRT DURInG InTRoDUCTIon anD Use 4.3.6 Whenanewmethodoranewprocessisintroduced,itisoftendrawnonout-sidehelp.Itisnotdifferentwithinagilesoftwaredevelopment.Forthisreasonithasbeenexamined,whichmethodssupportandconsultingisavailabletoduringintroduction.

Table5shows,whethersupport(e.g.externconsultant,trainings)foramethodisoffered.

[email protected]

Page 67: Agile Software Development Methods 2010 e Ga Co

65

Method support by Tools

actif Yes

agile enterprise No

aMDD No

asD Yes

bDD Yes

Crystal Yes

DDD No

DsDM Yes

eclipse Way Process No

ePIC No

eVo No

extreme Programming (XP) Yes

fDD Yes

Iconix No

IsD No

lsD No

Mobile-D No

Ms solution framework Yes

RaD Yes

scrum Yes

TDD Yes

UDD No

Unified Process Yes

aUP No

essUP No

oUP Yes

describes,whetherthereisaspecializedtoolsupporttoamethod.Table3:

[email protected]

Page 68: Agile Software Development Methods 2010 e Ga Co

66

Methodnormali-zation /

standard-ization

Certifi-ation licensing

actif No No No

agile enterprise No No No

aMDD No No No

asD No No No

bDD No No No

Crystal No Yes No

DDD No No No

DsDM Yes Yes Yes

eclipse Way Process No No No

ePIC Yes No Yes

eVo Yes No No

extreme Programming (XP) No No No

fDD No Yes No

Iconix No No No

IsD No No No

lsD Yes Yes No

Mobile-D No No No

Ms solution framework No No No

RaD No No No

scrum Yes Yes No

TDD No Yes No

UDD No No No

Unified Process Yes Yes Yes

aUP Yes Yes No

essUP No No Yes

oUP No Yes No

Overviewofnormalization/standardization,certificationandlicensingTable4:

[email protected]

Page 69: Agile Software Development Methods 2010 e Ga Co

67

Method support available

actif Yes

agile enterprise No

aMDD No

asD Yes

bDD No

Crystal Yes

DDD No

DsDM Yes

eclipse Way Process Yes

ePIC Yes

eVo Yes

extreme Programming (XP) Yes

fDD Yes

Iconix Yes

IsD No

lsD Yes

Mobile-D No

Ms solution framework Yes

RaD No

scrum Yes

TDD Yes

UDD Yes

Unified Process Yes

aUP Yes

essUP Yes

oUP Yes

shows,whethersupport(e.g.externconsultant,trainings)foramethodisTable5:offered.

[email protected]

Page 70: Agile Software Development Methods 2010 e Ga Co

68

lInks5 aCTIf

http://www.microtool.de/instep/en/actif.aspaDaPTIVe sofTWaRe DeVeloPMenT (asD)

http://en.wikipedia.org/wiki/Adaptive_Software_Developmenthttp://www.jimhighsmith.com/articles/messy.htmhttp://www.pss-europe.com/P478.pdf

aGIle enTeRPRIse (foRMeRlY X bReeD) http://www.e-architects.com/AE/ aGIle MoDel DRIVen DeVeloPMenT (aMDD)

http://www.agilemodeling.com/essays/amdd.htmhttp://conferences.embarcadero.com/article/images/32437/3202.pdfhttp://bestofcyber.wordpress.com/2007/02/09/amdd-agile-model-driven-development/

behaVIoR DRIVen DeVeloPMenT (bDD) http://en.wikipedia.org/wiki/Behavior_Driven_Developmenthttp://behaviour-driven.org/http://www.code-magazine.com/article.aspx?quickid=0805061

CRYsTal http://alistair.cockburn.us/Crystal+methodologieshttp://alistair.cockburn.us/Crystal+light+methodshttp://www.agilekiwi.com/crystal_clear.htm

DesIGn DRIVen DeVeloPMenT (D3) http://www.designdrivendevelopment.org/http://en.wikipedia.org/wiki/Design-driven_development

DYnaMIC sYsTeM DeVeloPMenT MeThoD (DsDM) http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Methodhttp://www.dsdm.org/http://www.freetutes.com/systemanalysis/sa2-dynamic-system-development-method.html

eClIPse WaY PRoCess http://www.eclipsezone.com/eclipse/forums/t20805.htmlhttp://www.ibm.com/developerworks/rational/library/edge/08/jul08/vanVelzen

eVolUTIonaRY PRoCess foR InTeGRaTInG CoTs-baseD sYsTeMs (ePIC)

http://www.sei.cmu.edu/library/abstracts/reports/02tr009.cfmhttp://en.wikipedia.org/wiki/Evolutionary_Process_for_Integrating_COTS-Based_Systemshttp://www.ibm.com/developerworks/rational/library/aug05/peraire-pannone/index.html

eVolUTIonaRY PRojeCT ManaGeMenT & PRoDUCT DeVeloPMenT (eVo)

http://www.gilb.com/Project-Management eXTReMe PRoGRaMMInG (XP)

http://www.extremeprogramming.org/http://en.wikipedia.org/wiki/Extreme_Programminghttp://xprogramming.com/index.php

feaTURe DRIVen DeVeloPMenT (fDD) http://www.featuredrivendevelopment.com/http://www.nebulon.com/articles/fdd/download/fddprocessesA4.pdf

IConIX http://en.wikipedia.org/wiki/iconixhttp://iconixprocess.com/iconix-process/

[email protected]

Page 71: Agile Software Development Methods 2010 e Ga Co

69

InTeRneT sPeeD DeVeloPMenT http://www.viswiki.com/en/Internet-Speed_Development

lean sofTWaRe DeVeloPMenT (lsD) http://www.poppendieck.com/http://agilesoftwaredevelopment.com/leanprincipleshttp://www.leanprimer.com/downloads/lean_primer.pdf

MICRosofT solUTIons fRaMeWoRk foR aGIle DeVeloPMenT (Msf4asD)

http://download.microsoft.com/download/8/6/3/86375d9e-1263-4ba0-b5f2-f696aceb94f3/20060418.ppthttp://www.microsoft.com/downloads/details.aspx?FamilyId=9F3EA426-C2B2-4264-BA0F-35A021D85234&displaylang=en

MobIle-D http://virtual.vtt.fi/virtual/agile/mobiled.html

RaPID aPPlICaTIon DeVeloPMenT (RaD) http://www.cs.bgsu.edu/maner/domains/RAD.htmhttp://en.wikipedia.org/wiki/Rapid_application_development

sCRUM http://en.wikipedia.org/wiki/Scrum_(development)http://www.scrumalliance.org/

TesT DRIVen DeVeloPMenT (TDD) http://en.wikipedia.org/wiki/Test-driven_developmenthttp://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci1246164,00.html

UnIfIeD PRoCess (UP) http://en.wikipedia.org/wiki/Unified_Process http://www.ambysoft.com/unifiedprocess/agileUP.htmlhttp://www.ivarjacobson.com/process_improvement_technology/essential_unified_process_software/http://www.eclipse.org/epf/general/OpenUP.pdf

UsabIlITY DRIVen DeVeloPMenT (UDD) http://cakebaker.42dh.com/2007/07/07/usability-driven-development/

[email protected]

Page 72: Agile Software Development Methods 2010 e Ga Co

70

sUMMaRY6 Agilesoftwaredevelopmentisontheriseallovertheworld.Evidenceofthatisthevarietyofmethodsinagileenvironment.ThehugenumberofmethodstestamentsthatTHEagileMethoddoesnotexist(yet?).

Each of themethods examined has its specific focus, its strengths and itsweaknesses,butitseligibilityaswell.

Eachprojectisuniqueregardingtoitscontentanditsboundaryconditions.Choosing the appropriate method to implementation is usually not easy.Nevertheless,theapplicationofaparticularmethoddoesnotguaranteepro-jectsuccess.

Byselectingtherightteamortherightpartner,youcansetthecoursealreadytosuccessbeforeprojectstart,regardlessoftheappliedmethod.

Attheendoftheday,itcomesdowntotheexperience,skillsandknowledgeofpeople,whorealizetheproject-forprojectsarecarriedoutbyman,notbymethods.

[email protected]

Page 73: Agile Software Development Methods 2010 e Ga Co

71

aboUT bQI7 TheBestQualityInstitute(BQI),basedinBerlin,istheleadinginstituteforawardswhichmeasureandassessthequalityofcompaniesandemployees.

BQIisthefirstplacetocallfordevelopinghighlyspecializedresearchstudiesandassessmentmodelsforthemostdiverseareasofyourbusiness.BQIisapioneerinstandardizingqualityassessmentofsoftwareandpersonnel.

Independence,comparabilityandtransparencyareBQI’scorecompetenciesandallowBQItoliveuptothehighexpectationsofitsclientsandparticipa-tingcompanies.

[email protected]

Page 75: Agile Software Development Methods 2010 e Ga Co

73

DIsClaIMeR8 ThecontentsofthisdocumentareprotectedduetocopyrightbyBQI.Citationisallowedwhilsttakingtheusualrulesandguidelinesintoaccount.Copyingorprintingbelatedly, includingexcerptsaswell asphotomechanical repro-ductionorsavingonastoragemediumisonlypermittedbywrittenapprovaloftheBQI.

The corresponding safeguard provision hold true for brands and businessrelationships,thatareusedinthecontentofthispresentation,eveniftheyarenotlabelledassuch.

eXClUsIon of lIabIlITY: TheBQIassumesnoliabilityfortheactuality,correctness,completenessorquality of the information provided at all. Liability claims against theBQI,basedondisadvantagesorharmsofanykindrelatingtoaphysicalorimagi-naryway,whichhavebeencausedbyuseordisuseofthepresentedinforma-tionortheuseofincompleteandfaultyinformation,areprincipallyexcluded,asfarasthereisnoevidenceofdeliberateorrecklessguiltinessonthepartoftheBQI.

ThisresearchhasbeencarriedoutexclusivelyforBQIby

PENTASYS AGRüdesheimerSt.980686Munichwww.pentasys.de

[email protected]

Page 76: Agile Software Development Methods 2010 e Ga Co

BQIBestQualityInstituteGmbHJägerstraße67-69D-10117BerlinGermanywww.bqi.euMail:[email protected]

[email protected]