Andrea Janes Giancarlo Succi Lean Software Development in Action Lean Software Development in Action Andrea Janes • Giancarlo Succi Lean Software Development in Action 123 AndreaJanes GiancarloSucci LiberaUniversitaJdiBolzano Bolzano Italy ISBN978-3-662-44178-7 ISBN978-3-642-00503-9(eBook) DOI10.1007/978-3-642-00503-9 SpringerHeidelbergNewYorkDordrechtLondon LibraryofCongressControlNumber:2014953961 ©Springer-VerlagBerlinHeidelberg2014 Thisworkissubjecttocopyright.AllrightsarereservedbythePublisher,whetherthewholeorpartof thematerialisconcerned,specificallytherightsoftranslation,reprinting,reuseofillustrations,recitation, broadcasting,reproductiononmicrofilmsorinanyotherphysicalway,andtransmissionorinformation storageandretrieval,electronicadaptation,computersoftware,orbysimilarordissimilarmethodology nowknownorhereafterdeveloped.Exemptedfromthislegalreservationarebriefexcerptsinconnection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’slocation,initscurrentversion,andpermissionforusemustalwaysbeobtainedfromSpringer. PermissionsforusemaybeobtainedthroughRightsLinkattheCopyrightClearanceCenter.Violations areliabletoprosecutionundertherespectiveCopyrightLaw. Theuseofgeneraldescriptivenames,registerednames,trademarks,servicemarks,etc.inthispublication doesnotimply,evenintheabsenceofaspecificstatement,thatsuchnamesareexemptfromtherelevant protectivelawsandregulationsandthereforefreeforgeneraluse. While the advice and information in this book are believed to be true and accurate at the date of publication,neithertheauthorsnortheeditorsnorthepublishercanacceptanylegalresponsibilityfor anyerrorsoromissionsthatmaybemade.Thepublishermakesnowarranty,expressorimplied,with respecttothematerialcontainedherein. Printedonacid-freepaper SpringerispartofSpringerScience+BusinessMedia(www.springer.com) Preface We wrote this book with the idea to show a practical implementation of Lean software development, gluing together well-proven tools to provide a way to develop Lean. The message this book wants to convey is the utilization of goal- oriented, automated measurement for the creation of a Lean organizationand the facilitationofLeansoftwaredevelopment. Sinceitsconceptioninthemid-1950s,Leanthinkinghasbeenverysuccessfulin manufacturing:ithashelpedorganizationstofocusonvalue-providingactivities,to identifyunnecessaryones,andthereforetoincreasetheefficiencyandeffectiveness of the overall process. There are several proposals on how to translate Lean principles into software engineering practices, starting from the Agile Manifesto andthepioneeringworkofKentBeck(seeChap.4),ofMaryandTomPoppendieck (seeChap.6),andofmanyothers. It is a fact that to be successful, a Lean orientation of software development has to go hand in hand with the business strategy of the companyas a whole. To achievesuchagoal,therearetwointerrelatedaspectsthatrequirespecialattention: measurementandexperiencemanagement. Measurement means to describe real-world processes according to clearly defined rules to understand, control, and improve (see Chap.9). Now, “Lean software company thinking” requires a comprehensive measurement program: measurementisacornerstoneofLeanthinking,aswellevidencedbythefounders oftheLeanapproach,suchasTaiichiO¯no,JamesP.Womack,andDanielT.Jones (seeChap.1). Managersofsoftwarecompanieshaveoftenperceivedmeasurementasawaste of time, mostly because the measurement process required a lot of effort from developersandmanagers,andoftentheresultsofameasurementprogramcouldnot be used to steer effectivelythe directionof the business. In the last decade,a new approachtosoftwaremeasurementhasemerged,where,ononeside,ithasbecome evident that a successful software measurement program ought to be introduced in a company-wide measurement approach to promote process improvement, as discussed by the CMMI (see Chap.3) and several other recent software process v vi Preface improvement initiatives, and, on the other side, the measurement process has becomemuchlessinvasiveandthereforeeffortconsuming(seeChap.9). Measurement is a necessary step in systematic quality approaches like Six Sigma or in performance management instruments like the Balanced Scorecard (see Chap.3). A methodical approach to measurement as proposed in this book willallowtointroducequalityandperformancemanagementinstrumentsthatrely onit. Thesecondaspectrequiringspecialattentionisexperience,i.e.,valuable,stored, specific knowledgethatwas acquiredin a previousproblem-solvingsituation (see Chap.8). Softwaredevelopmentorganizationshavealwaysbeenconcernedwithcollecting andinstitutionalizingtheexperienceofitsdevelopersandengineers,sothatitwould notbetoodependentonitskeypeopleandtheturnoverwouldnotaffectittoomuch. TheexperienceoftheseyearshaveshownthatLeansoftwareorganizationsareeven moredependentontheskillsofindividualpeople. It appears therefore critical to promote the institutionalization of experience acrosstheentirecompany.Thestudiesthattheauthorshavedoneonthefieldhave evidenced that the collected software measures can be extremely instrumental to achievesuchagoal. Altogether,inthisbooktheauthorsprovidethenecessaryknowledgetoestablish “Leansoftwarecompanythinking”takingadvantageofthemostrecentapproaches tosoftwaremeasurement. The main target group of the book consists of people working in the field of software engineering that want to understand how to obtain an efficient and effectivesoftwaredevelopmentprocess.Thisgroupincludesdevelopers,managers, andstudentsfollowinganM.Sc.curriculuminsoftwareengineering. Thisbookparticularlyappliestosmallandmediumenterprises—thedominating organizationalformintheEuropeansoftwaresector—thatdonothavetheresources to put in place the mentioned processes of collecting and institutionalizing the experienceof its developersand engineers. This creates a high dependencyon its key people, and turnovercan severely challengethe ability to continueto provide a given product or service to the market. Additionally, not institutionalizing the own experiences means wasting an important opportunity for small and medium enterprisestomaintainorimprovetheirpositioninthemarket. A comprehensive,company-widemeasurementapproachis exactly what (even very small) companies need to align the performed activities to the needs of the stakeholders, to the business strategy, etc. With the automatic, non-invasive measurement proposed in this book—this is what we mean by “Lean Software Developmentin action”—morecompanieswill be able to optimize their software developmentprocesstowardsLean. The discussion on how to transfer Lean conceptsinto software developmentis still ongoing. To support this process, we aim to inspire others to follow our line of researchto applymeasurementto understandthe effectsof introducedchanges in the software development process even at an early stage. Measurement helps Preface vii to understand and to reason about the obtained desired and undesired changes. Moreover,itpointsoutopportunitiestoimprove. WepresentourapproachtoLeanSoftwareDevelopmentinthreeparts: 1. Thefirstpartillustrateswhattheterm“LeanProduction”means,whywethink it is useful to transfer Lean concepts into software engineering, and which approachesexisttotransfertheLeanconceptintosoftwareengineering. 2. Thesecondpartillustratesthetoolswe useto achieveLeanSoftwareDevelop- ment: Non-invasiveMeasurement,the GoalQuestion Metric approach,and the ExperienceFactory. 3. The third part illustrates how we combined the different tools to enable Lean Thinkinginsoftwaredevelopment. BackgroundKnowledge Whenever we thought that some background knowledge is interesting or usefulinaparticularpartofthetext,weaddeditinaboxlikethis. Alastbutimportantnote:throughoutthisbook,whereverthemasculineformis used,itappliestothefeminineformaswell. AndreaJanes Bozen,Italy GiancarloSucci May2014 Acronyms ABC ActivityBasedCosting AJAX AsynchronousJavaScriptandXML ANSI AmericanNationalStandardsInstitute API ApplicationProgrammingInterface PMI ProjectManagementInstitute AT&T AmericanTelephoneandTelegraphCompany BC BeforeChrist CC CyclomaticComplexity CD CompactDisk CIO ChiefInformationOfficer CMM CapabilityMaturityModel CMMI CapabilityMaturityModelIntegration DAD DisciplinedAgileDelivery DMAIC Define,Measure,Analyze,Improve,Control DSDM DynamicSystemsDevelopmentMethod ETL ExtractTransformLoad FSS FlagshipSoftwareServices,acompanyinourfictionalstory GQM GoalQuestionMetrics GUI GraphicalUserInterface HTML HyperTextMarkupLanguage IBM InternationalBusinessMachines ICSE InternationalConferenceonSoftwareEngineering ISO InternationalOrganizationforStandardization IT InformationTechnology IQ IntelligenceQuotient JSP JavaServerPages LOC LinesOfCode NASA NationalAeronauticsandSpaceAdministration NPV NetPresentValue PC ProcessCosting PDCA PlanDoCheckAct ix
Description: