kanban and xp xtreme programming

Upload: irfee

Post on 10-Oct-2015

36 views

Category:

Documents


0 download

DESCRIPTION

Extreme Programming is one of the most discussed subjects in the  software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies?.

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.