Table Of ContentAndrea 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:This book illustrates how goal-oriented, automated measurement can be used to create Lean organizations and to facilitate the development of Lean software, while also demonstrating the practical implementation of Lean software development by combining tried and trusted tools.In order to be successfu