Kanban and XP Xtreme Programming
description
Transcript of Kanban and XP Xtreme Programming
-
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.