Upload
jsappidi
View
218
Download
0
Embed Size (px)
Citation preview
8/3/2019 Cast WP Lean Application Management Web
1/18
White Paper
Cutting IT Costs by Applying
Lean Principles
Software Measurement
for Lean Application Management
IT organizations are experimenting with Lean techniques to
reduce application costs and delivery times with mixed results.
To achieve these objectives, IT must eliminate the largest source
of waste in application development and maintenance defects
and the enormous rework they cause. This paper shows how
focusing on the Jidoka pillar of the Toyota Production System,
which is the use of automation to detect and eliminate defects
early, attacks and reduces defects and rework. By applying
the waste-reducing principles of Jidoka to development,
maintenance, and the design of applications, IT can both cutcosts and shorten time-to-service.
Dr. Bill CurtisSenior Vice President and Chief Scientist, CAST
Director, Consortium for IT Software Quality
8/3/2019 Cast WP Lean Application Management Web
2/18
Cutting IT Costs by Applying Lean Principles
Page 2
Executive Summary
Dr. Bill Curtis, SVP and Chie Scientist at CAST, explains how the Lean
practices pioneered in the Toyota Production System apply to the development
and maintenance o application sotware, leading to decreased total cost o
ownership and improved business responsiveness and operational dependability.
The Problem
ITorganizationshavebeenapplyingLeanpracticestothedevelopmentand
maintenanceofapplicationsoftware,yetthepowerfulbenetshaveyetto
befullyrealizedbecausetheyhavenotfocusedontheearlydetectionand
eliminationofdefects.
Defectsinsourcecodeandthereworktheycausearethelargestsourcesof
wasteinapplicationdevelopmentaccountingfor30%to50%ofdevelopment
effort.
Asmuchastwothirdsofallapplicationmaintenanceeffortcanbeclassiedaswasteduetoreworkcausedbydefectsandtimespenttryingtounderstand
whatisgoingoninpoorlyconstructedapplications.
Overtime,applicationsbecomelessresponsiveandobesewithcodethatisno
longerneeded,wastingmachineresources.
ThefastpaceandshortreleasecyclesofAgiletruncatesthetimeavailable
foridentifyingandremediatingstructuralproblemsinthesourcecodeofan
application.
The Solution
ByfocusingonJidoka,thepillarofLeaninvolvingtheautomatedearly
detectionandeliminationofdefects,defectscanbeidentiedwhentheyare
injectedintothesourcecodeandxedquickly,ratherthanlaterinthelife
cyclewhentheirrepairisoften10timesmoretime-consumingandexpensive.
Executive Summary
8/3/2019 Cast WP Lean Application Management Web
3/18
Cutting IT Costs by Applying Lean Principles
Page 3
Eliminatingthecausesofdefectsandcontinuallytrainingdevelopersfordefect-
freeworkcandramaticallyimproveproductivityandshortentime-to-release.
Inapplicationmaintenance,itisvitaltoaddressthechangeabilityofcode
beforeitsreleasetoreducethetimeneededtounderstandtheapplicationfor
subsequentreleases,andsustainthequalityoftheapplicationoveritslifetime.
Overanapplicationsoperationallife,youmustcontinuouslytunetheperformanceofthecodeandmanageapplicationsize,especiallywhen
deployingitinacloudenvironment.
Key Takeaways
ThroughadherencetotheJidokacomponentofLean,thecombinationof
LeanApplicationDevelopment,LeanApplicationMaintenance,andLean
ApplicationAssetsprovidesthefoundationforLeanApplicationManagement.
SoftwareanalysisandmeasurementiskeytosupportingLeanApplication
Management.Theautomatedanalysisandmeasurementofstructural
qualityofapplicationsiscriticaltotheoverallcostofownership,business
responsiveness,andoperationaldependabilityrequiredtorunaLean
Enterprise.
LeanprocessesworkattheirmostefcientwhenperformedonLeanproducts.
Thebestwaytoreducewasteistodesignitoutoftheapplicationfromthe
beginningbydrivingdesigndecisionsbasedonprioritizedqualitygoals.
Executive Summary (continued)
8/3/2019 Cast WP Lean Application Management Web
4/18
Cutting IT Costs by Applying Lean Principles
Page 4
I. How Lean Applies to Software
Applications
II. Lean Application Development
III. Lean Application Maintenance
IV. Lean Application Assets
V. Lean Application Management
VI. References
I. How Lean Applies to Software Applications
For the past several years, IT organizations have been exploring the application
o Lean practices pioneered in the Toyota Production System1, 2 or automobile
assembly to the development and maintenance o application sotware. Its ocus
on empowered teams and process streamlining3, 4 has popularized Lean in the
Agile Methods community. However, some o the most powerul benets o
Lean have yet to be ully realized in application development since the Agile
community has ocused more on the just-in-time aspects o Lean rather than onJidoka, the automated early detection and elimination o deects.
Jidoka is one o the two pillars o the Toyota Production System that provides
the oundation or Lean practices (Figure1). Jidoka uses automation to detect
deects early in the production process, as well as their causes so they can be
identied and eliminated. The th principle o what has become known as the
ToyotaWay is to build a culture o stopping to x problems and get quality
right the rst time.5 This principle had a proound eect on the productivity o
automobile manuacturing, and has the potential to transorm the economics o
application development as well.
Figure 1 The Toyota Production System
Contents
8/3/2019 Cast WP Lean Application Management Web
5/18
Cutting IT Costs by Applying Lean Principles
Page 5
Highlights
An IT organization can establish
Lean Application Management
by automating sotwaremeasurement that supports key
Lean practices.
Jidoka can be implemented in an application portolio through the practices
o Lean Application Management, which ocuses on applying Lean methods
in three areas: Application Development, Application Maintenance, and
Application Assets. In the context o development and maintenance o business
applications, Jidoka involves the use o technologies such as static analysis to
identiy deects when they are added to the source code, so they can be xed
beore being passed on to a later lie cycle phase where their repair is much
more expensive. The sections that ollow describe how an IT organization can
establish Lean Application Management by automating sotware measurement
that supports key Lean practices in each o these three areas.
II. Lean Application Development
The largest opportunity or improving quality and productivity during
application development is by eliminating its largest sources o waste deects
and the rework they cause. In many organizations, 30% to 50% o development
eort is devoted to rework7, 8. These staggering numbers are exacerbated by the
act that deects become 10 times more expensive to x or each major phase o
the sotware lie cycle they slip past. Under these circumstances, productivity is
largely determined by quality.
Beore the Toyota Production System, 25% o the eort in traditional mass
production automobile manuacturing was devoted to xing deects in ully
assembled automobiles at the end o the production line1. Deects that would
have been inexpensive to x during assembly became expensive because
large portions o the car had to be disassembled to make the needed repairs.
Lean practices in the Toyota Production System virtually eliminated rework
areas at the end o production lines, contributing heavily to Leans dramatic
improvements in productivity, quality, and time-to-market over traditional mass
production1.
8/3/2019 Cast WP Lean Application Management Web
6/18
Cutting IT Costs by Applying Lean Principles
Page 6
Highlights
Structural deects are at
the root o most devastating
operational problems such as
outages, security breaches, data
corruption, and perormance
degradation.
The level o rework in sotware applications is actually worse than that observed
in traditional automobile assembly (Figure2). As in mass production automobile
manuacturing, rework in application development piles up at the end o the
development cycle, causing delays and oten throwing the project into chaotic
thrashing to get the application suciently stable or release. This rework is
maniest in the continuing cycle o testing, recoding deective components, and
then retesting them to nd even more deects.
Figure 2 Comparison of Rework in Traditional Automobile Assembly and Software Development
Why doesnt testing eliminate the rework problem? Modern testing practices
are generally eective in detecting unctional deects deviations rom what
the customer wanted. However, testing is not as eective in detecting the
non-unctional deects that represent structural faws in the construction o the
application9,10,11. These structural deects are dicult to detect through testing
and are requently the most expensive to x because they involve interactions
between multiple tiers o the application, which are oten written in dierent
languages and hosted on dierent platorms. Structural deects are at the root o
most devastating operational problems such as outages, security breaches, data
corruption, and perormance degradation9 10. Static analysis o the structural
quality o business applications augments other quality assurance techniques
such as testing and design inspections to eliminate such deects.
8/3/2019 Cast WP Lean Application Management Web
7/18
Cutting IT Costs by Applying Lean Principles
Page 7
Highlights
I structural deects escape
into operations, the cost o
correcting them can expand by
an order o magnitude.
There are three main keys to eliminating rework (Figure3) in Lean Application
Development.
Figure 3 How Structural Analysis Contributes to Lean Application Development
1. Detect and remediate deects early: Every component added to the
source code should be analyzed at build time when it is integrated with the
evolving application to see its impact on the system as a whole. Detection
and repair at this point can be an order o magnitude cheaper than i these
structural faws slip into the nal stages o testing, when they are deeply
embedded in the application and a larger portion o the code has to be torn
down, xed, and rebuilt. I structural deects escape into operations where
multiple versions o the sotware are in use, the cost o correcting them can
expand by an additional order o magnitude.
Early detection o deects is especially critical when using Agile. Agile
methods are popular development techniques, but their ast pace and short
release cycles truncate the time available or identiying and remediating
the structural problems remaining in the source code. Although Agile
teams typically rebuild their application daily to integrate newly developed
components, their short schedules do not allow time or evaluating structural
quality at the application level unless the analysis is automated. Agile teams
8/3/2019 Cast WP Lean Application Management Web
8/18
Cutting IT Costs by Applying Lean Principles
Page 8
Highlights
Organizations that rigorously
apply Lean techniques have
been able to reduce rework by
80% to 90%.
benet rom detecting structural deects early so the most severe ones can be
remediated beore release i a schedule buer provides time or addressing
them. Addressing structural problems prior to release helps prevent waste in
maintenance.
2. Eliminate the causes o deects: When structural quality diagnostics
are coupled with a powerul root cause analysis method such as Orthogonal
Deect Classication12, application teams can identiy the process sourceso structural deects so that their root causes can be eliminated. Typically
an organization will not investigate the causes o every deect, but instead
ocus on those that recur most requently or have the potential or devastating
impact. While early detection minimizes rework, root cause-based process
improvement virtually eliminates it.
3. Train developers continually or deect-ree work: Techniques such
as Pareto charts o structural quality violations identiy the most requent
types o structural deects being injected into applications. The results
can be ed into training activities to help developers avoid these recurring
structural deects in the uture, urther eliminating sources o rework. Some
projects have a ormal launch process or each phase o development, giving
the opportunity to review current issues and the types o errors to be avoided
during the next phase. Developing workfow and a knowledge center to
classiy and guide developers in understanding and remediating structural
deects can raise the bar on the perormance o an application development
organization.
Combinations o these three Lean techniques enabled by sotware analysisand measurement technology can reduce, and in many cases eliminate, the
structural deects that cause the most severe rework in application development.
Organizations that apply these techniques rigorously have been able to reduce
rework by 80% to 90%13, dramatically improving productivity and shortening
time-to-release.
8/3/2019 Cast WP Lean Application Management Web
9/18
Cutting IT Costs by Applying Lean Principles
Page 9
Highlights
As much as two-thirds o all
maintenance eort can beclassifed as waste resulting
rom poor application design
and coding.
III. Lean Application Maintenance
The two primary sources o waste in application maintenance are rework due to
deects or badly constructed sotware and the staggering time maintenance sta
spend trying to understand what is going on in poorly constructed applications.
Correcting deects requently accounts or as much as one third o all post-
release work, and time spent understanding the code has been shown to account
or as much as hal o all the eort expended by maintenance sta14,15(Figure4).
When the overlap between these two activities is removed, as much as two thirdso all maintenance eort can be classied as waste. Since these sources o waste
result rom poor application design and coding, they must be addressed as a
critical ocus o Lean Application Maintenance.
Figure 4 How Maintenance Staff Spend Their Time15
By identiying structural deects that have a high probability o causing
operational problems and result in maintenance rework, sotware analysis and
measurement provides strong support or Lean Application Maintenance. In
addition, by addressing the changeability o the code beore a release, the time
spent understanding the application can be dramatically reduced in maintaining
subsequent releases. Similarly, by sustaining the quality o the application over
its lietime, IT can avoid degraded applications and costly redevelopments.
8/3/2019 Cast WP Lean Application Management Web
10/18
Cutting IT Costs by Applying Lean Principles
Page 10
Highlights
Improving the changeability
o an application slashes the
time wasted understanding
unnecessarily complex code.
There are three main keys to eliminating waste (Figure5) in Lean Application
Maintenance.
Figure 5 How Structural Analysis Contributes to Lean Application Development
1. Improve application changeability: The maintenance team can identiy
the most serious structural faws degrading the changeability o an application
using diagnostics rom structural analysis o the application, such as high
coupling among components especially across application layers. Prioritizing
and remediating the most severe changeability problems will reduce the
time that maintenance sta spends trying to trace control and data fows
through the code. Improving the changeability o an application not only
slashes the time wasted on understanding unnecessarily complex code, but
also shortens implementation and verication cycles. As a result, the amount
o unctionality delivered in a single release can be as much as doubled.
In addition, as the ease o changing an application improves, ewer new
deects will be injected into the code during maintenance by eliminating the
misunderstanding o interactions among application layers. Lessons learned
in improving changeability can be used in training developers how to produce
more changeable architectures and code.
8/3/2019 Cast WP Lean Application Management Web
11/18
Cutting IT Costs by Applying Lean Principles
Page 11
Highlights
Technical debt is the cost o
fxing structural problems that
are not fxed beore release,
but can cause problems in the
uture.
2. Reduce deect-fxing releases: IT organizations must too requently plan
releases devoted primarily to xing deects in the application. The deects
that take the longest to x in maintenance are requently structural, since
such faws are harder to detect through traditional testing. Implementing
sotware analysis and measurement as a component o the development
process helps dramatically reduce the number o structural deects that slip
into operational sotware. By detecting and eliminating these deects beore
release, it is possible to reduce deect xing in maintenance to near zero in
a mature development environment13. The percentage o maintenance eort
devoted to implementing new business unctions is dramatically increased as
the releases o an application devoted to deect xing are eliminated.
3. Sustain lietime quality: To track and sustain the quality o an application
throughout its lietime, sotware analysis and measurement should be
implemented as a standard component o the maintenance process. The
structural quality o many applications degrades continually over a succession
o maintenance releases, to the point that management has to weigh the
tradeo between the increasing time and expense o adding unctionalityversus the cost o redeveloping the application. The quality o an application
can be sustained across its lietime by measuring the status o various
quality attributes during maintenance and remediating the quality problems
created by maintenance actions, eliminating the need or extremely costly
redevelopments.
All three o these aspects o Lean Application Maintenance involve reducing the
technical debt that builds up in applications. Technical debt can be dened as
the cost o xing the structural problems in source code that are not xed beorerelease, but will have to be corrected so they dont cause operational problems
or degrade the maintainability o the application. Technical debt has been
conservatively measured to cost $2.82 per line o code, although the actual cost
based on more realistic assumptions about time to repair deects is easily twice as
high16. Applications appear to dier in their technical debt based on the language
in which they were implemented (Figure6). Structural analysis and measurement
provides executives with a way to measure the opportunity or cost reductions rom
applying the practices o Lean Application Maintenance.
8/3/2019 Cast WP Lean Application Management Web
12/18
Cutting IT Costs by Applying Lean Principles
Page 12
Highlights
Lean processes work at their
most efcient when perormed
on Lean products.
Figure 6 Technical Debt Measured in Applications by Language16
IV. Lean Application Assets
Lean processes work at their most ecient when perormed on Lean products.
The best way to reduce waste is to design it out o the application rom the
beginning by driving design decisions based on prioritized quality goals.
However, even when designed well, applications age and can become less
responsive and obese with code that is no longer needed, wasting machine
resources. This excess is especially acute in a cloud environment where the
application owner is being charged or both space and processing time.
8/3/2019 Cast WP Lean Application Management Web
13/18
Cutting IT Costs by Applying Lean Principles
Page 13
Highlights
The most eective way to
eliminate waste is to design it
out o an application rom the
beginning.
There are three keys to creating Lean Applications that eliminate waste (Figure7).
Figure 7 How Waste is Reduced by Creating Lean Application Assets
1. Design or prioritized quality characteristics: The principles o LeanProduct Development and Design or Six Sigma both encourage applications
that are designed with quality priorities in mind. Quality characteristics
such as Robustness, Changeability, Security, and Perormance Eciency
should be prioritized or each application at the beginning o its development.
Architectural and coding decisions should maximize the most important
quality characteristics. These quality characteristics can be measured and
analyzed during both development and maintenance to ensure the quality
o the source code is consistent with its quality priorities. Architectural and
coding lessons rom an IT organizations application experience related to
these characteristics should be captured or consideration when making uture
design and coding decisions, since the most eective way to eliminate waste
is to design it out o the application rom the beginning.
2. Tune the perormance o application code: Poorly designed and coded
applications can waste expensive machine resources by requiring more
processing than necessary. Structural analysis should be applied to detect
poor coding and architectural practices that can dramatically aect processing
requirements and time. Structural problems such as expensive calls inside
8/3/2019 Cast WP Lean Application Management Web
14/18
Cutting IT Costs by Applying Lean Principles
Page 14
Highlights
An applications code base
should be evaluated at each
release to detect code that is no
longer needed.
loops, ailure to properly index queries, and embedding unctions inside
WHERE clauses can dramatically increase processing loads, requiring the
acquisition o additional machine resources and slowing response times. In
one example, a major multinational nancial services company that started
proactively measuring and remediating perormance problems in their
applications saw processing expenses reduced by roughly $10,000 each
month or a single application. Perormance issues are especially acute in
cloud environments where such problems can result in unexpectedly large
bills.
3. Manage application size: The size o an application should be continually
monitored to ensure its growth is under control and ts within parameters
appropriate or its environment. Automated measurement o code size can
be done in both unction points and lines o code to indicate the amount o
code added, changed, or deleted. When these measures indicate that code
growth exceeds allowable thresholds, corrective actions should be triggered.
Further, the code base should be evaluated at each release to detect code
that is no longer needed. Dead code throughout the application can then bescheduled or removal in an upcoming release. Removing dead code ensures
that application growth and the machine resources needed to support it are
consistent with the business requirements o the application. In addition
to tracking application growth, these size measures will be important or
evaluating maintenance productivity, as will be explained in the next section.
V. Lean Application Management
Establishing a Lean IT organization requires rapid and continual eedback on
the quality o the applications being placed in operation. The combination o LeanApplication Development, Lean Application Maintenance, and Lean Application
Assets provides the oundation or Lean Application Management (Figure8),
a critical step in turning an IT organization into a Lean Enterprise. By aggressively
pursuing the Jidoka component o Lean, the analysis and measurement o
applications provides a critical ingredient required to reduce many sources
o waste associated with application development and maintenance.
8/3/2019 Cast WP Lean Application Management Web
15/18
Cutting IT Costs by Applying Lean Principles
Page 15
Highlights
Automated analysis and
measurement o structural
quality is critical to run a Lean
Enterprise.
Figure 8 Lean Application Management
The ability to continually monitor application productivity is another critical
component o Lean Application Management. Productivity data provides insight
into the eectiveness o Lean practices at the application, portolio, and delivery
center level. It is important to choose a consistent measure or the numerator
o productivity measures that is, or the size o both the application and the
actual work accomplished during each release. When these size measures are
ully automated, they can be evaluated consistently across all applications
and used or comparisons across an application portolio or between dierent
delivery centers. Consequently, the benets o Lean practices and other
improvement activities can also be assessed at the application, portolio, or
delivery center levels. These analyses provide the insight needed by application
executives to target troubled applications or delivery centers, and allocate the
resources required to optimize their cost structure and service to the business.
Sotware analysis and measurement can be easily integrated into a disciplined
sotware lie cycle process. In an undisciplined environment, diagnostics can
be used to motivate disciplined work by holding developers accountable or
the quality o the applications they produce. In either environment, automated
analysis and measurement o structural quality o applications is critical
to the overall cost o ownership, business responsiveness, and operational
dependability required to run a Lean Enterprise.
8/3/2019 Cast WP Lean Application Management Web
16/18
Cutting IT Costs by Applying Lean Principles
Page 16
References
1. J.P. Womack, D.T. Jones, & D. Roos (1990). TheCarThatChangedtheWorld. New York: Free Press.
2. J. Womack & D.T. Jones (1996). LeanThinking. New York: Simon & Schuster.
3. M. Poppendieck & T. Poppendieck (2003). LeanSoftwareDevelopment:AnAgileToolkit . Boston: Addison Wesley.
4. M. Poppendieck & T. Poppendieck (2007). ImplementingLeanSoftwareDevelopment. Boston: Addison Wesley.
5. J.K. Liker (2004). TheToyotaWay. New York: McGraw-Hill.
6. J.M. Morgan & J.K. Liker (2006). TheToyotaProductDevelopmentSystem . New York: Taylor & Francis.
7. R. Dion (1993). Process improvement and the corporate balance sheet. IEEESoftware, 10 (4), 28-35.
8. B. Boehm (1987). Increasing sotware productivity. IEEEComputer, 20 (9), 43-57.
9. D. Spinellis (2006). CodeQuality. Boston: Addison Wesley.
10. M.T. Nygard (2007). ReleaseIt. Pragmatic Programmers.
11. D. Jackson (2009). A direct path to dependable sotware. CommunicationsoftheACM, 52 (4), 78-88.
12. R. Chillarege, et al. (1992). Orthogonal Deect Classication: Concept or In-Process Measurement.
IEEETransactiononSoftwareEngineering, 18, (11), 943-956.
13. M.C. Paulk, C.W. Weber, B. Curtis, & M.B. Chrissis (1995). TheCapabilityMaturityModel. Boston: Addison Wesley.
14. D.C. Littman, J. Pinto, S. Letovsky, & E. Soloway (1987). Mental models and sotware maintenance.
JournalofSystemsandSoftware, 7 (4), 341-355.
15. M. Ben-Menachem & G.S. Marliss (2005). IT assets - control by importance and exception:
Supporting the paradigm o change. IEEESoftware, 22 (4), 94-102.
16. J. Sappidi, B. Curtis, & J. Subramanyam (2010). CASTWorldwideApplicationSoftwareQualityStudy2010 .
New York: CAST Research Labs.
8/3/2019 Cast WP Lean Application Management Web
17/18
Cutting IT Costs by Applying Lean Principles
Page 17
Dr. Bill Curtis
Senior Vice President and Chief Scientist
Bill Curtis is an industry luminary who is responsible or infuencing CASTs
scientic and strategic direction, as well as helping CAST educate the IT market
to the importance o managing and measuring the quality o its sotware. He is
best known or leading the development o the Capability Maturity Model (CMM)
which has become the global standard or evaluating the capability o sotware
development organizations.
Prior to joining CAST, Dr. Curtis was a Co-Founder o TeraQuest, the global leaderin CMM-based services, which was acquired by Borland. Prior to TeraQuest, he
directed the Sotware Process Program at the Sotware Engineering Institute
(SEI) at Carnegie Mellon University. Prior to the SEI he directed research on
intelligent user interace technology and the sotware design process at MCC,
the th generation computer research consortium in Austin, Texas. Beore MCC
he developed a sotware productivity and quality measurement system or ITT,
managed research on sotware practices and metrics at GE Space Division, and
taught statistics at the University o Washington.
Dr. Curtis holds a Ph.D. rom Texas Christian University, an M.A. rom the
University o Texas, and a B.A. rom Eckerd College. He was recently elected a
Fellow o the Institute o Electrical and Electronics Engineers or his contributions
to sotware process improvement and measurement. In his ree time Dr. Curtis
enjoys traveling, writing, photography, helping with his daughters homework, and
University o Texas ootball.
8/3/2019 Cast WP Lean Application Management Web
18/18
Europe
3, rue Marcel Allgot
92190 Meudon - France
North America
373 Park Avenue South
New York NY 10016t ft
About CAST
CAST is a pioneer and world leader in Sotware Analysis and Measurement, withunique technology resulting rom more than $90 million in R&D investment. CAST
provides IT and business executives with precise analytics and automated sotware
measurement to transorm application development into a management discipline.
More than 650 companies across all industry sectors and geographies rely on CAST
to prevent business disruption while reducing hard IT costs. CAST is an integral part
o sotware delivery and maintenance at the worlds leading IT service providers such
as IBM and Capgemini.
Founded in 1990, CAST is listed on NYSE-Euronext (Euronext: CAS) and serves IT
intensive enterprises worldwide with a network o oces in North America, Europeand India. For more inormation, visit www.castsotware.com.