Download - Kanban and XP Xtreme Programming

Transcript
  • ExtremeProgramming(XP)AndKanban

    Name:IrfanAliChandioID#MIT122240SSubmissionDue:Week7

  • a. Introduction

    Extreme Programming is one of the most discussed subjects in the software

    developmentcommunity.ButwhatmakesXPextreme?Andhowdoesitfitintothe

    New World of agile methodologies?. This assignment will establish the agile

    methodologyandexplainwhyyoumightwanttotryone.ThenwewillseehowXPand

    Kanbanusesasetofpracticestobuildaneffectivesoftwaredevelopmentteamthat

    producesqualitysoftwareinapredictableandrepeatablemanner.Whenevaluating

    certainactivitiesinthesoftwaredevelopment processonemusthaveareferenceto

    understandifwearemakingprogress.XPhasfourcorevaluesthatareusedtoguide

    the practices that are employed. These values are: Communication, Simplicity,

    Feedback,Courage.

    XP recognizes that the end goal of a development project is to produce quality,

    productioncodethatcanbeexecutedandmaintained.Anythinginaprojectthatdoes

    notdirectlysupportthisgoalisquestionedanddiscardedifappropriate.XPtakes12

    software development "best practices," and applies them to the extreme. Every

    contributortotheProjectisapartoftheTEAMandtheTeaminteractswiththe

    Customerdaily.[1].

    XPteamspracticesmallreleasesintwoimportantways:First,the teamreleases

    running, testedsoftware, delivering business value chosenby the customer, every

    iteration.TheCustomercanusethissoftwareforanypurpose,whetherevaluationor

    evenreleasetoendusers.Themostimportantaspectisthatthesoftwareisvisible,

    andgiventothecustomer,attheendofeveryiteration.Second,XPteamsreleaseto

    theirendusersfrequentlyaswell.XPWebprojectsrelease

    asoftenasdaily,inhouseprojectsmonthlyormorefrequently.

  • b. DescriptionofXP

    ExtremeProgramming(XP):

    Typicallyevery13weeks.XP,originallydescribedbyKentBeck,hasemergedasone

    of the most popular and controversial agile methodologies. XP is a disciplined

    approachtodeliveringhighqualitysoftwarequicklyandcontinuously. It promotes

    high customer involvement, rapid feedback loops, continuous testing, continuous

    planning,andcloseteamworktodeliverworkingsoftwareatveryfrequentintervals.

    Agilemethodologies:

    PlanningGame:

    XPteamsuseacommonsystemofnamestobesurethateveryoneunderstandshow

    thesystemworksandwheretolooktofindthefunctionalityyou'relookingfor,orto

    findtherightplacetoputthefunctionalityyou'reabouttoadd.

    SmallReleases:XPTeamsreleasessmallscriptsorpatchesofthesoftwareinordertogettherapidfeedbackfromclientsorcustomers.

    CustomerAcceptanceTests:Thistestshowsifclientofcustomerissatisfiedwiththeworkinprogess.

    SimpleDesign:XPteamuseshighlyeffectivedesignmethodwhichnontechnicalstafforcustomercanunderstandthesoftwareanditsworkswiththehelpofflowcharts.

    PairProgramming:XPteampairthepeaceofsoftwareintermsofscriptsandpatchestofixthecurrentsoftwarebugs

    TestDrivenDevelopment:XPteamdeploythesoftwarequicklytothemarkettotestthepeaceofsoftwareinthemarketplace.

  • Refactoring:XPteamalsoindentthesoftwarelikeforexampleuses#beforethecodeinorderforcustomersandclientstounderstandthatwhatisgoingtohappenedwiththispeaceofcode.

    ContinuousIntegrationXPteamcreatesintegrationofthesoftwareinstructuralway.

    XPteamwithfollowingsimpleandclearunderstandingsmadethosepointsbelow.

    CollectiveCodeOwnershipCodingStandardsMetaphorSustainablePace[2]

    Fig-1: XP Process Structure:

    Source: [1]

  • XPhashighproductivityandhightolerance.Communicationisusuallystrongwithshort paths, especially informal (not documented). There is only a small range ofdeliverable (artifacts), but these are delivered frequently releases. Moreover, XPregardsasoftwaredevelopmentprojectasasystemoffourcontrolvariables:Cost,Time,QualityandScope.[4].

    Deployment Cycle:

    Implementationoccursinsmallsteps(tasks)forwhichXPdefinesthefollowingprocedure:

    1.Analyzewhatistobedone.ThisprobablyinvolvesanalyzingEngineeringTasksand/orUserStories.Ifnecessaryasessionisperformedtogether.

    2.WriteUnitTests.They(XPTeam)willhelpinfindinginterfacesandtheydeterminewhenthetaskiscompleted(RelentlessTesting).

    3.Implementjustenoughcodetomakethetestsrunning.(DoTheSimplestThingThatCouldPossiblyWorkandYouArentGonnaNeedIt)

    4.Simplifythecodeifnecessary.(Refactoring)

    5.Integratethechangesintothecodebase.Ifproblemsoccurresolvethem(ContinuousIntegration).Iftheproblemcannotberesolved,startover.

    Thiswholeproceduretakesacoupleofhours,atmostaday.[5].

  • c. DescriptionofKanban

    Kanbanpromotescontinuouscollaborationandencouragesactive,ongoinglearningandimprovingbydefiningthebestpossibleteamworkflow. Kanbanisbasedon3basicprinciples:

    Visualizewhatyoudotoday(workflow):seeingalltheitemsincontextofeachothercanbeveryinformative, Limit theamountof workinprogress (WIP): this helpsbalancetheflowbasedapproachsoteamsdon'tstartandcommittotoomuchworkatonce, Enhance flow: when something is finished, the next highest thing fromthebacklogispulledintoplay.[3],[4].

    KanbanstandsforKancard,Bansignal.TheessenceoftheKanbanconceptisthatasupplier,thewarehouseormanufacturingshouldonlydelivercomponentsasandwhen they are needed, so that there is no excess Inventory. Within this system,workstationslocatedalongproductionlinesonlyproduce/deliverdesiredcomponentswhentheyreceiveacardandanemptycontainer,indicatingthatmorepartswillbeneededinproduction.Incaseoflineinterruptions,eachworkstationwillonlyproduceenoughcomponentstofillthecontainerandthenstop.Inaddition,Kanbanlimitstheamountof inventoryintheprocessbyactingasan authorizationtoproducemoreInventory.SinceKanbanisachainprocessinwhichordersflowfromoneprocesstoanother,theproductionordeliveryofcomponentsarepulledtotheproductionline,incontrast tothetraditionalforecastorientedmethodwherepartsarepushedtotheline.[4].Fig2showsKanbanFlowandKanbanMaterialFlow.

    Fig2.KanbanFlowandKanbanMaterialFlow.

    Source:[5].

  • d. Compare&ContrastXPwithKanban

    XP Kanban

    Typicallyevery13weeks JustinTime(JIT)

    PlaningGame PlaningGameisdonewhenneeded

    SmallReleases Noexcessinventory

    CustomerAcceptance CustomerChainProcess

    SimpleDesign: Ordersflowfromoneprocesstoanother,

    CertifiedatCMMLevel5 Youdon'thavetobeCertified

    e. XPExample(s)

    ForExampleinXPCRCstandsforClassResponsibilityCollaborator.Itisamethodtodetermineandvisualizethedesignofasystem.Themaintoolforthismethodistheindexcard.Eachcardrepresentsaclasswithinthesystem.DuringaCRCsessiononestartswithasetofcardsontowhichthenamesofobviousclassesarewritten(atthetop).Ifaresponsibility(e.g.fieldormethod)isfounditiswrittenontheleftsideofthecard.If theclassneedsto cooperatewithanotherclasstofulfill aresponsibilityacollaborationexists.Thenameoftheotherclassisthenwrittenontherightsideofthecard.Thecardscanalsobeofdifferentcolorstoexpressdifferenttypesofclasses.[3],[6]

    Fig3ExampleofCRCCard.

    Source:[2].

  • f. Kanban Example(s)

    Kanbanisanewtechniqueformanagingasoftwaredevelopmentprocessinahighlyefficient way. Kanban underpins Toyota's "justintime" (JIT) production system.Althoughproducingsoftwareisacreativeactivityandthereforedifferenttomassproducingcars,theunderlyingmechanismformanagingtheproductionlinecanstillbeapplied.[7]

    Moreover.Kanbansareproducedwithbarcodesandthesystemisreadytoacceptdataentrythroughscanners,etc[6].

    Fig4KanbanExample:

    Source: [7].

    WhocanadoptKanban?

    OneofthebestthingsaboutKanbanisthelowbarriertoadoption.Youdon'thavetobepracticingScrumorXPorbecertifiedatCMMLevel5.ThecolumnsonyourKanbanboardcouldbeassimpleas:"ToDo","Doing",and"Done".

    You'reingoodenoughshapetostartusingKanbanifyoucan(manuallyorotherwise):

    Checkoutthecodefromasourcecodecontrolsystem Buildthecode Checkitworks Deployit

  • Conclusion:

    ThepowerofXPliesinthecooperationofthevariousrulesandpractices.GiventhesuccessstoriesofXPprojectsitmustwork,however.IthinkthatisnecessarytotryXPinanactual project in order to fully understandandevaluate it. Incontrast,advantages of Kanban processing provides a simple and understandable process.Provides quick and precise information. There are low costs associated with thetransferofinformation.Providesquickresponsetochanges.Thereisastrictlimitofovercapacityinprocesses.Avoidsoverproduction.Minimizeswaste.Fullcontrolcanbemaintained.Delegatesresponsibilitytolineworkers

  • References:

    [1].Sambasivam.G,(2006),'ExtermeProgramming',Availableathttp://www.unf.edu/~broggio/cen6016/ExtremeProgramming%28XP%29Article.pdfViewedat16thAug2014.

    [2].Newkirk.J,(2002),'IntroductiontoAgileProcessesandExtremeProgramming',Availableatftp://www.ufv.br/dpi/mestrado/XP/newkirk_XP.pdf,Viewedat16thAug2014.

    [3.],Dudziak.T,(2000),'extremeProgramming:AnOverview',Availableat:http://www.versionone.com/Agile101/AgileDevelopmentMethodologiesScrumKanbanLeanXP/Viewedat18thAug2014.

    [4].Konovalov.SandMisslinger.S,(2006),'ExtremeProgramming',Availableat:http://www14.in.tum.de/konferenzen/Jass06/courses/3/presentations/ExtremeProgramming.pdfViewedat20thAug2014.

    [5]..Jarvis.BandGristock.S.P,(2001),'ExtremeProgramming(XP)SixSigmaCMMI',Availableat:www.sei.cmu.edu/library/assets/jarvisgristock.pdf,Viewedat20thAug2014.

    [6].GloviaInternational,(2014),'Automatetheflowofmaterialusingpulltechniques',Availableat:http://www.fujitsu.com/downloads/CN/it/products/Kanban.pdfViewedat21stAug2014.

    [7].KanbanBlog,(2014),'KanbanExplained:WhocanadoptKanban',Availableat:http://kanbanblog.com/explained/,Viewedat21stAug2014.