kanban and xp xtreme programming
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.