You are on page 1of 9

Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

Jeff Sutherland, Ph.D. Carsten Ruseng Jakobsen Kent Johnson


Patientkeeper Inc. Systematic Software Engineering AgileDigm Inc.
jeff.sutherland@computer.org crj@systematic.dk kent.johnson@agiledigm.com

Abstract In 2002, a significantly extended version called


CMMI was announced, where the ‘I’ stands for
Projects combining agile methods with CMMI1 are ‘Integration.”. In 2006, version 1.2 of the CMMI model
more successful in producing higher quality software was published [2]. This model integrated software
that more effectively meets customer needs at a faster engineering, systems engineering disciplines, and software
pace. Systematic Software Engineering works at acquisition practices into one maturity model. CMMI
CMMI level 5 and uses Lean Software Development as defines 25 process areas to implement. For each process
a driver for optimizing software processes. Early pilot area required goals, expected practices, and recommended
projects showed productivity on Scrum teams almost sub-practices are defined. In addition, a set of generic
twice that of traditional teams. Other projects using a practices must be applied for all processes.
story-based test-driven approach to software Experience with CMM and CMMI, demonstrates that
development reduced defects in final test by 40%. organizations appraised to higher levels of CMM or
We assert that Scrum and CMMI together bring a CMMI improve the ability to deliver on schedule, cost,
more powerful combination of adaptability and and agreed quality. Increasingly, the industry requires
predictability than either one alone and suggest how suppliers to be appraised to CMM or CMMI level 3 or
other companies can combine them. higher [3]. A number of governmental organizations
worldwide, have established CMMI maturity
1. Introduction requirements. For example, the Danish Minister of
Science recently proposed regulations to require public
Successful software development is challenged by organizations to request documentation of their supplier’s
the ability to manage complexity, technology maturity level [4].
innovation, and requirements change. Agile and CMMI
methods each address these challenges but have a very 1.2. Scrum
different approach and perspective.
Management of complexity requires process Scrum for software development teams began at Easel
discipline while management of change requires Corporation in 1993 [5] and emerged as a formal method
adaptability. CMMI provides process discipline and at OOPSLA’95 [6]. A development process was needed to
Scrum enhances adaptability. This paper provides an support enterprise teams where visualization of design
analysis of the effect of introducing Agile practices immediately generated working code. Fundamental
into a CMMI Level 5 company. problems inherent in software development influenced the
introduction of Scrum:
1.1. CMMI • Uncertainty is inherent and inevitable in software
development processes and products - Ziv’s
The Capability Maturity Model (CMM) has Uncertainty Principle [7]
existed since 1991, as a model based on best practices • For a new software system the requirements will not
for software development. It describes an evolutionary be completely known until after the users have used it
method for improving an organization from one that is - Humphrey’s Requirements Uncertainty Principle [8]
ad hoc and immature to one that is disciplined and • It is not possible to completely specify an interactive
mature [1]. The CMM is internationally recognized system – Wegner’s Lemma [9]
and was developed by the Software Engineering • Ambiguous and changing requirements, combined
Institute at Carnegie Mellon University, Pittsburgh, with evolving tools and technologies make
USA. implementation strategies unpredictable.
“All-at-Once” models of software development
1
® Capability Maturity Model, CMM and CMMI are uniquely fit object-oriented implementation of software
registered in the U.S. Patent and Trademark Office and help resolve these challenges. They assume the

1530-1605/08 $25.00 © 2008 IEEE 1


Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

creation of software involves simultaneous work on Principle of face-to-face conversations at “all hands
requirements, analysis, design, coding, and testing, meeting” or a visit by a senior manager during a project’s
then delivering the entire system all at once [10]. kick off could be used to communicate the policy.
Sutherland and Schwaber, co-creators of Scrum 2.1.2. Establish and maintain the plan for performing
joined forces with creators of other Agile processes in Agile Methods (GP2.2). This practice can help ensure
2001 to write the Agile Manifesto [11]. A common Agile Methods do not degrade into undisciplined hacking.
focus on working software, team interactions, customer The expectation is that Agile Methods are planned and
collaboration, and adapting to change were agreed that a defined process exists and is followed. The defined
upon as central principles essential to optimizing process should include a sequence of steps capturing the
software productivity and quality. minimum essential information needed to describe what a
project really does. The plan would also capture the
2. Guide for mixing CMMI and Agile essential aspects of how the other 10 generic practices are
to be implemented in the project. In Scrum, some of this
planning is likely to be captured in a product backlog
2.1. How CMMI can improve Agile and/or sprint backlog, most likely within a tool as opposed
to a document.
Our focus is on using CMMI to help an organization 2.1.3. Provide adequate resources for performing Agile
institutionalize Agile Methods. Selective use of Agile Methods (GP 2.3). Every project wants, needs, and
Methods may degenerate into undisciplined hacking. expects competent professionals, adequate funding, and
We believe real value from Agile Methods can only be appropriate facilities and tools. Implementing an activity
obtained through disciplined use. CMMI has a concept to explicitly manage these wants and needs has proved
of Institutionalization that can help establish this useful. In Scrum, for example, these needs may be
needed discipline. reviewed and addressed at the Sprint Planning Meeting
Institutionalization is defined in CMMI as “the and Sprint Review Meeting and reconsidered when
ingrained way of doing business that an organization significant changes occur.
follows routinely as part of its corporate culture.” 2.1.4. Assign responsibility and authority for
Others have described institutionalization as simply performing Agile Methods (GP 2.4). For a project to be
“this is the way we do things around here.” Note that successful, clear responsibility and authority need to be
institutionalization is an organizational-level concept defined. Usually this includes a combination of role
that supports multiple projects. descriptions and assignments. The definitions of these
CMMI supports institutionalization through roles identify a level of responsibility and authority. For
Generic Practices (GP) associated with all process example, a Scrum Project would assign an individual or
areas. For the purposes of discussion, we will look at individuals to the roles of Product Owner, ScrumMaster,
the 12 generic practices associated with maturity levels and Team. Expertise in the Team is likely to include a mix
2 and 3 in the CMMI [14] and how they might help an of domain experts, system engineers, software engineers,
organization use Agile Methods. We have paraphrased architects, programmers, analysts, QA experts, testers, UI
the generic practices (shown in bold text below) to designers, etc. Scrum assigns the team as a whole the
match our recommended usage with Agile Methods. responsibility for delivering working software. The
In CMMI terms, the projects in an organization would Product Owner is responsible for specifying and
be expected to perform an activity that accomplished prioritizing the work. The ScrumMaster is responsible for
each of these generic practices. We have used Scrum assuring the Scrum process is followed. Management is
as the example Agile Method to describe some of the responsible for providing the right expertise to the team.
activities that relate to these practices. 2.1.5. Train the people performing Agile Methods (GP
2.5). The right training can increase the performance of
2.1.1. Establish and maintain an organizational competent professionals and supports introducing new
policy for planning and performing Agile Methods methods into an organization. Institutionalization of the
(GP 2.1). The first step toward institutionalization of Agile Method being used requires consistent training. This
Agile Methods is to establish how and when they will practice includes determining the individuals to train,
be used in the organization. An organization might defining the exact training to provide, and performing the
determine that Agile Methods will be used on all needed training. Training can be provided using many
projects or some subset of projects based on size, type different approaches, including programmed instruction,
of product, technology, or other factors. This policy is formalized on-the-job training, mentoring, and formal and
a way to clearly communicate the organization’s intent classroom training. It is important that a mechanism be
regarding Agile Methods. In keeping with the Agile

2
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

defined to ensure that training has occurred and is The Product Owner has primary responsibility for assuring
beneficial. software meets requirements and is high quality.
2.1.6. Place designated work products under 2.1.10. Review the activities, status, and results of the
appropriate level of configuration management (GP Agile Methods with higher-level management and
2.6). The purpose of a project is to produce deliverable resolve issues (GP2.10). The purpose of this practice is to
product(s). This product is often a collection of a ensure that higher-level management has appropriate
number of intermediate or supporting work products visibility into the project activities. Different managers
(code, manuals, software systems, build files, etc.). have different needs for information. Agile Methods have
Each of these work products has a value and often goes a high level of interaction, for example, Scrum has a
through a series of steps that increase their value. The Sprint Planning Meeting, Daily Scrum Meetings, a Sprint
concept of configuration management is intended to Review Meeting, and a Sprint Retrospective Meeting.
protect these valuable work products by defining the Management needs are supported by transparency of
level of control, for example, version control or status data produced by the Scrum Burndown Chart
baseline control and perhaps multiple levels of baseline combined with defect data. Management responsibilities
control to use within the project. are to (1) provide strategic vision, business strategy, and
2.1.7. Identify and involve the relevant stakeholders resources, (2) remove impediments surfaced by Scrum
as planned (GP 2.7). Involving the customer as a teams that the teams cannot remove themselves, (3) ensure
relevant stakeholder is a strength of Agile Methods. growth and career path of staff, and (4) challenge the
This practice further identifies the need to ensure that Scrum teams to move beyond mediocrity. The list of
the expected level of stakeholder involvement occurs. impediments generated by the Scrum teams is transparent
For example, if the project depends on customer to management and it is their responsibility to assure they
feedback with each increment, build, or Sprint, and are removed in order to improve organizational
involvement falls short of expectations, it is then performance.
necessary to communicate to the appropriate level, 2.1.11. Establish and maintain the description of Agile
individual, or group in the organization to allow for Methods (GP 3.1). This practice is a refinement of GP2.2
corrective action, as corrective action may be beyond above. The only real difference is that description of
the scope of the project team. In advanced Scrum Agile Methods in this practice is expected to be
implementations, this may be formalized as a organization-wide and not unique to a project. The result
MetaScrum [17] where stakeholders serve as a board is that variability in how Agile Methods are performed
of directors for the Product Owner. would be reduced across the organization; and therefore
2.1.8. Monitor and control Agile Methods against more exchange between projects of people, tools,
the plan and take appropriate corrective action (GP information and products can be supported.
2.8). This practice involves measuring actual 2.1.12. Collect the results from using Agile Methods to
performance against the project’s plan and taking support future use and improve the organization’s
corrective action. Direct day-to-day monitoring is a approach to Agile Methods (GP 3.2).
strong feature of the Daily Scrum Meeting, the Release This practice supports the goal of learning across projects
Burndown Chart shows how much work remains at the by collecting the results from individual projects. The
beginning of each Sprint, and the Sprint Burndown Scrum Sprint Retrospective Meeting could be used as the
Chart shows total task hours remaining per day. Scrum mechanism for this practice.
enhances the effectiveness of the plan by allowing the All of these generic practices have been useful in
Product Owner to inspect and adapt to maximize ROI, organizations implementing other processes. We have
rather than merely assuring plan accuracy. seen that a number of these generic practices have at least
2.1.9. Objectively evaluate adherence to the Agile partial support in Scrum or other Agile Methods. We
Methods and address noncompliance (GP2.9). This believe that implementing these practices can help
practice is based on having someone not directly establish needed discipline to any Agile Method.
responsible for managing or performing project
activities evaluate the actual activities of the project. 2.2. Critiques of CMM
Some organizations implement this practice as both an
assurance activity and coaching activity. The coaching In research funded by the Danish government, Rose
concept matches many Agile Methods. The et. al. surveyed the literature on critiques of CMM [18].
ScrumMaster has primary responsibility for adherence They observed that the chief criticism of CMM is not the
to Scrum practices, tracking progress, removing process itself, but the effects of focus on process
impediments, resolving personnel problems, and is orientation.
usually not engaged in implementation of project tasks.

3
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

While side effects of process focus may be viewed CMMI does not focus on A primary responsibility
as simply poor CMM implementation, organizations underlying organizational of the ScrumMaster is to
with heavyweight processes are highly prone to poor problems that should be maintain and resolve an
execution. resolved. impediment list that
As with any other model, good and bad contains organizational
implementations of CMM exist. We believe that bad issues, personal issues,
implementations are one of the main reasons for the and technical problems.
existence of many negative criticisms of CMM. Such CMMI ignores quality in The Scrum Product
implementations are often characterized as in the table the software product Owner is responsible for
below, whereas many good CMM implementations assuming an unproven continuously
address most of the criticism. link between quality in the reprioritizing the Product
One way to enhance chances for a good CMM or process and quality in the Backlog to maximize
CMMI implementation is to use Scrum. Applying resulting product. business value in current
Scrum and agile mindset while implementing CMMI Differing project and context.
will help to assure good practice. organizational
We acknowledge that the CMM criticism listed in circumstances may mean
the table below exist, but from our knowledge of good that a process that delivers
CMMI implementations we consider the criticisms to a good product in one
be incorrect. However, a poor implementation of context delivers a poor
CMMI may be perceived this to have the problems product in another
below. Even though good CMMI implementations can context.
be done without agile methods, the table shows that CMMI lacks business The primary focus of
Scrum will contribute with a beneficial focus on issues orientation Scrum is on delivering
stemming from a “bad” CMMI implementation. business value.
Conversely, there are Agile implementations that CMMI provides poor With Scrum, creation and
do no meet the basic requirements of Scrum practice. awareness of prioritization of features,
They do not result in fixed iterations that deliver organizational context. tasks, and impediments is
working code that is fully tested at the end of each always done in
Sprint. The Product Owner may not be clearly defined organizational context by
or be dysfunctional. There may not be a single Product inspected and adapting.
Backlog prioritized by business value for the company CMMI ignores technical Daily inspection and
leading to conflicting priorities and thrashing within and organizational adaptation in Scrum
the organization. The Product Backlog may not be infrastructures. meetings focuses on
estimated by the team, leading to unpredictable technical and
projects, missed deadlines, and broken budgets. The organizational issues.
team may not keep a Burndown chart and know the CMMI encourages an Scrum focus is on
velocity of software production from Sprint to Sprint. internal efficiency focus delivering business value.
This can make it impossible for the Product Owner to and thus market and Type C Scrum allows an
develop a release plan with predicable release dates. A competition blindness. entire company to
good CMMI implementation can help remedy all of dominate a market
these common impediments. segment through
inspecting and adapting
CMM criticism Scrum support in real time to
CMM reveres process but Scrum is the first competition [17].
ignores people. development process to
treat people issues the
same as other project 3. Scrum and CMMI: a magic potion
management issues [19].
Systematic is a privately held software systems company
that employs over 400 people with offices in Denmark,
USA, Finland and the UK. They develop large systems
used in the defense, healthcare, manufacturing, and service
industries. In November 2005 they were appraised using

4
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

the SCAMPISM2 method and found to be CMMI level 5 using 69% effort compared to a CMMI Level 1 company
compliant. [12, 13]. Figure 2 above shows that replacing some core
At Systematic, CMMI Level 5 practices have processes with Scrum drives cost down another 34%, cuts
reduced rework by 42%, maintained estimation process overhead by more than 50% and drives defects
precision deviation less than 10%, and assure 92% of down by 40%.
all milestones are delivered early or on time. At the CMMI Level 5 is increasingly a requirement from
same time, extra work on projects has been customers and key to obtaining large contracts, especially
significantly reduced. within defence and healthcare. Customers recognize that
12% CMMI Level 5 gives high predictability and better-
10% engineered product for scalability, maintainability,
9,8%
8%
adaptability, and reliability.
8,3%
CMMI provides insight into what processes are
6% 6,9% 6,4% 7,6%
6,0% 6,8%
needed to maintain a disciplined mature organization
4% 4,7% capable of predicting and improving performance of the
2% organization and projects. Scrum provides guidance for
efficient management of projects in a way that allows for
Q2 2005 Q3 2005 Q4 2005 Q1 2006 Q2 2006 Q3 2006 Q4 2006 Q1 2007
high flexibility and adaptability. When mixing the two, a
Figure 1 Rework at Systematic magic potion emerges, where the mindset from Scrum
ensures that processes are implemented efficiently while
More importantly, Systematic has transformed embracing change, and CMMI ensures that all relevant
over twenty years of experience into a unified set of processes are considered.
processes used by all software projects. Historical data Individually CMMI and Scrum have proven benefits
are systematically collected and analyzed to but also pitfalls. An Agile company may implement
continuously provide insight into the capability and Scrum correctly but fail due to lack of institutionalization,
performance of the organization. or insufficient execution of engineering or management
The use of a shared common process makes it processes. CMMI can help Agile companies to
easier for people to move from project to project and institutionalize Agile methods more consistently and
share experiences and lessons learned between clarify what processes need improvement.
projects. We can also compare performance of new A company can comply with CMMI, but fail to reach
processes to performance of existing processes and optimal performance due to poor process implemenation.
create a foundation for continuous improvement. Scrum and other Agile methodologies can guide such
companies towards more efficient implementation of
CMMI process requirements.
CMMI 1
Project effort 100 % Rework
100%
Work
3.1. Systematic Lean experience
90%
Proces focus
80%
CMMI Systematic made a strategic decision to use Lean as the
50 % 69 %
70%
9%
dominant paradigm for future improvements after
SCRUM
60%
a
achieving CMMI level 5. Lean has demonstrated notable
50% results for many years in domains such as auto
40% 35 % manufacturing, and has been adapted to other domains,
4%
30% including product and software development. Systematic
50 % 50 %
20% 25 % identified Lean Software Development [15] as the Lean
10% dialect most relevant to Systematic.
10 % 6%
CMMI 1 CMMI 5 CMMI 5 Applying Lean Software Development, as a driver for
SCRUM
future improvements in a company appraised to CMMI
Figure 2: CMMI and Scrum Productivity Gains level 5, depends on the adoption of a lean and agile
mindset in the implementation of the CMMI processes,
In short, Systematic is able to deliver what the
and Systematic placed special focus implementing the
customer has ordered on schedule, cost and quality
Lean change in the spirit of the Agile Manifesto.
Lean competencies were established through handing
2 SM
Capability Maturity Model Integration, and out handout of books, formal and informal training, and
SCAMPI are service marks of Carnegie Mellon walk-the-talk activities. Project Managers were trained in
University Lean Software Development, and Mary Poppendieck

5
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

visited Systematic to present a management seminar on which thinking tools to focus on. Left most tools were
Lean Software Development. considered good candidates to start with.
This seminar established an understanding of the However the most important input was an analysis
Agile and Lean mindset. The causal dependencies showing improvement opportunities with a high expected
between the principles and tools in Lean Software cost-benefit ratio. Internal studies at Systematic show the
Development were analyzed by Carsten Jakobsen, cost of fixing a defect increases from 1.6 hours when
change agent for Lean, and resulted in the model detected in the coding phase, to 12 hours when detected in
presented in Table 1. the testing phase and 23.7 hours when detected in the
The model groups the thinking tools from Lean maintenance phase. Improvements that could eliminate or
Software Development into the categories: move defects to earlier phases were priorities. We also
Engineering, Management and People. Furthermore observed that focus on quality gradually led to longer test
the elements are arranged according to causal periods which drove a trend towards increased cycle time.
dependencies, where elements to the right depends on From a business value perspective, shorter cycle times are
one or more elements to the left. These dependencies desirable.
are simplified into four phases: Value, Flow, Pull and .
Perfection. The model facilitated a way to prioritize

Value Flow Pull Perfection


Engineering P6 Integrity P2 Amplify Learning P2 Amplify Learning P6 Integrity
T19 Refactor T5 Synchronization T3 Feedback T18 Conceptual
T20 Test T4 Iterations T6 Setbased T17 Perceived
development
Management P1 Create Value P4 Deliver Fast P7 See the Whole P3 Defer Commitment
T7 Options thinking
T1 Find Waste T11 Queue Theory T22 Contracts T8 Defer commitment
T2 Value Stream T12 Cost of delay T21 Measures T9 Decision making
T10 Pull
People P5 Empower team P5 Empower team P5 Empower team P5 Empower team
T16 Expertise T14 Motivation T15 Leadership T13 Self determination
Table 2 Lean Software Development arranged after causal dependencies
working code bi-weekly and providing a transparent
3.2. Systematic experience from pilots process to the customer. During project execution, a high
communication bandwidth was kept between the team, the
Analysis of Systematic improvement opportunities customer and end users. This was one of the main reasons
and Lean causal dependencies led to the decision to for achieving high customer satisfaction.
seek improvements based on the Lean Software The delivery plan and customer involvement resulted
Development principles of Build Integrity In, Amplify in early detection of technological problems. Had a
Learning and Deliver Fast. traditional approach been used these issues would have
Lean Thinking tools inspired us to consider Scrum been identified much later with negative impacts on cost
and early testing. In approximately 4 months, two and schedule performance.
small and two large projects piloted Scrum and story- Productivity of this small project was at the expected
based early testing. level compared to the productivity performance baseline
for small projects. Another small project with a team size
3.2.1. Scrum. The first pilot responded to a request for of 5 working for a Defense customer using Scrum shows a
proposal, where Systematic, inspired by Lean similar productivity and the same indications of high
principles, suggested a delivery plan with bi-weekly quality and customer satisfaction.
deliveries. Explicit expectations for customer At Systematic, productivity for a project is defined as
involvement and feedback were established. The the total number of lines of code produced divided by the
project had a team size of 4 and produced software for total project effort spent in hours. Data are normalized
a customer in the Danish Government. with respect to programming language, type of code: new,
One of the main reasons that Systematic was reuse or test.
awarded the contract was the commitment to deliver

6
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

Systematic maintains a productivity performance are lightweight, and could typically be done in less than 5
baseline (PPB) from data collected on completed minutes.
projects [16] showing project size related to hours to Many benefits from story-based development were
project completion. Historically, these data show that immediately apparent. The combination of a good
productivity is high on small projects and declines with definition of when a story was complete, and early
the size of the project. The productivity performance incremental testing of the features, provided a very precise
baseline in Systematic is divided into two groups: overview of status and progress for both team and other
small projects less than 4000 hours and large projects stakeholders.
above 4000 hours. Productivity of small projects is Developing a series of small stories rather than parts
181% the productivity of large projects. of a big feature creates a better focus on completing a
When comparing the projects using Scrum to the feature until it fulfills all the criteria for being “done”.
current productivity baseline it is seen that productivity This project finished early, and reduced the number of
for small projects is insignificantly changed, but the coding defects in final test by 38% compared to previous
productivity for large projects shows a 201% increase processes.
in productivity, or slightly better than linear scalability. Another project with a team size of 19 working on a
As mentioned above, the large projects did additional module to a electronic patient record system, also worked
improvements, and it is therefore not possible to with early testing. They ensured that test activities were
attribute the benefit solely to Scrum. However the integrated into development, with a strong focus on
people involved all agree that Scrum was a significant “seeing the whole” and understanding how the solution fit
part of this improvement. the customer’s domain. Each week the project defined a
There is a strong indication that large projects in goal to be achieved. The project ensured that test and
Systematic using Scrum will double productivity going domain specialists were co-located with the developers.
forward compared to previous processes. Small This caused discussion and reflection between testers,
projects in Systematic already show a high developers, user experience engineers and software
productivity. We believe that this is because small architects, before or very early in the development of new
projects in Systematic always have been managed in a functionality. As a consequence the amount of remaining
way similar to Scrum. However quality and customer coding defects in final test were reduced by 42%
satisfaction seems to be improved with Scrum. We compared to previous processes.
believe Scrum has facilitated a better understanding of Based on these two projects, it was concluded that
how small projects are managed efficiently. test activities should be an integrated activity through out
the projects’ lifetime. Scrum inherently supports this
3.2.2. Early testing. One larger project with a team through cross-functional teams and frequent deliveries to
size of 10 worked on a military messaging system. the customer. Furthermore, it was concluded that the
This project was inspired from the Lean thinking tool story-based software development method should be the
“Build Integrity In” to investigate how to do early test, default recommended method for software development in
and as a result they invented an enhanced story-based Systematic projects.
approach to early testing in software development. The
name “Story-based” development was inspired from 3.2.3. Real needs. In another project, a customer sent a
XP, but our approach included new aspects like: short request for proposal on a fixed set of requirements. When
incremental contributions, inspections, and was feature Systematic responded, we expressed our concern that the
driven. scope and contents expressed in the requirements were
The idea of story-based development was to beyond the customer’s real needs.
subdivide features of work, typically estimated to Systematic decided to openly share the internal
hundreds of hours of work into smaller stories of 20-40 estimation of the requirements with the customer, for the
hours of work. The implementation of a story followed purpose of narrowing scope by removing requirements not
a new procedure, where the first activity would be to needed or too expensive compared to the customer’s
decide how the story could be tested before any code budget. The customer agreed to re-evaluate the
was written. This test could then be used as the exit requirement specification, and the result was that
criteria for implementation of the story. requirements and price were reduced by 50%.
The procedure included a few checkpoints where This experience supports results in a Standish Group
an inspector would inspect the work produced, and Study reported at XP2002 by Jim Johnson, showing that
decide whether or not the developer could proceed to 64% of features in a fixed price contract are never or
the next activity in the procedure. These inspections rarely used by end-users.

7
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

We believe that this illustrates how important it is Evaluation of results from pilot projects led to
to have a frank and open discussion with the customer, adoption of Scrum and story based early testing. One
in order to find out what the real needs are. Success is consequence of adopting story-based early testing was an
not achieved by doing the largest project, but by doing enhanced focus on the ability to continuously integrate and
the project that provides the most value for the build the project software. Some projects established an
customer, leaving time for software developers to work objective that at least one build should be produced per
with other customers with real needs. This strategy is day, and that the time from when a build fails until next
strongly supported by Scrum. succesful build must not be more than a working day. In a
CMMI level 5 company a key activity is to maintain
3.3. Adoption of agile methods statistical control of subprocesses as a first step in
quantitatively improving the subprocess. In this example,
The result of the pilots were two-fold. They Systematic looked at the time it took to fix failed builds as
confirmed the general idea of using a Lean mindset as data to support the goal. A system was setup to gather data
a source for identification of new improvements. automatically from the project build server and control
Secondly, it provided two specific improvements, charts were established (see figure 2). This is a good
Scrum and story-based early testing, showing how illustration of how disciplines are institutionalized with
agile methods can be adopted while maintaining CMMI and how they can be used in the adoption and
CMMI compliance. An important insight for institutionalization of agile practices. These methods are
Systematic was that adoption of agile methods now the default choice for new projects and are integrated
involved only small adjustments to existing processes. in the process descriptions at Systematic.
The main difference was to adopt a lean and agile
mindset in interpretation of existing processes.

Fix time of failed builds

10

8 UCLx= 8 74
Fix Time
LCL of avg fix time
6
Hours

Avg fix time


4 UCL of avg fix time
2 Mean= 2 1
0 LCLx= 0
378 380 384 385 386 387 388 391 393 394 398 399 401 410 411 415 416 417 423 434
Build ID

Figure 3: Control Chart for fix-time of failed builds


consider other Agile practices at Systematic. Scrum now
4. Conclusion reduces every category of work (defects, rework, total
work required, and process overhead) by almost 50%.
This paper shows that CMMI and Scrum can be For Agile companies the article has presented how
successfully mixed. The mix results in significantly Generic Practices can be used to institutionalize agile
improved performance while maintaining compliance practices and we presented Lean Software Development
to CMMI Level 5 as compared to performance with [19] as an operational tool to identify improvement
either CMMI or Scrum alone. opportunities in a CMMI 5 company.
Scrum pilot projects showed significant gains in Companies in defense, aerospace, and other industries
productivity and quality over traditional methods. that require high maturity of processes, should carefully
Simulataneously better user satisfaction and developer consider introducing Agile practices and all software
satisfaction were achieved. These results led to an ROI companies should consider introducing CMMI practices.
based decision to more widely introduce Scrum and

8
Proceedings of the 41st Hawaii International Conference on System Sciences - 2008

Our recommendation to the Agile community is to [17] J. Sutherland, "Future of Scrum: Parallel Pipelining of
use the CMMI generic practices from CMMI Level 3 Sprints in Complex Projects," in AGILE 2005 Conference,
to amplify the benefits from Agile methods. Our Denver, CO, 2005.
recommendation to the CMMI community is to fit [18] J. Rose, I. Aaen, and P. Axel Nielsen, "The Industrial Age,
the Knowledge Age, the Internet Age: Improving Software
Agile methods into your CMMI framework. It will
Management," Aalborg University 2004.
provide exciting improvements to your organization. [19] J. O. Coplien, "Personal issues caused over 50% of
productivity losses in the ATT Bell Labs Pasteur Project
5. References analysis of over 200 case studies," Personal communication
ed, J. Sutherland, Ed. Lynby, Denmark, 2006.
[1] M. C. Paulk, C. V. Weber, B. Curtis, and M. B.
Chrissis, The Capability Maturity Model ®: Guidelines
for Improving the Software Process. Boston: Addison-
Wesley, 1995.
[2] M. B. Chrissis, Konrad, and Shrum, CMMI Second
Edition: Guidelines for Process Integration and Product
Improvement.: Addison-Wesley, 2006.
[3] D. R. Goldenson and D. L. Gibson, "Demonstrating the
impacts and benefits of CMMI," CrossTalk, October
2003.
[4] D. D. o. Science, "Maturity of customer and suppliers in
the public sector," 2006.
[5] J. Sutherland, "Agile Development: Lessons Learned
from the First Scrum," Cutter Agile Project
Management Advisory Service: Executive Update, vol.
5, pp. 1-4, 2004.
[6] K. Schwaber, "Scrum Development Process," in
OOPSLA Business Object Design and Implementation
Workshop, J. Sutherland, D. Patel, C. Casanave, J.
Miller, and G. Hollowell, Eds. London: Springer, 1997.
[7] H. Ziv and D. Richardson, "The Uncertainty Principle in
Software Engineering," in submitted to Proceedings of
the 19th International Conference on Software
Engineering (ICSE'97), 1997.
[8] W. S. Humphrey, A Discipline for Software
Engineering: Addison-Wesley, 1995.
[9] P. Wegner, "Why Interaction Is More Powerful Than
Algorithms," Communications of the ACM, vol. 40, pp.
80-91, May 1997.
[10] P. DeGrace and L. H. Stahl, Wicked problems, righteous
solutions : a catalogue of modern software engineering
paradigms. Englewood Cliffs, N.J.: Yourdon Press,
1990.
[11] M. Fowler and J. Highsmith, "The Agile Manifesto,"
Dr. Dobbs, July 13 2001.
[12] Krasner and Houston, "Using the Cost of Quality
Approach for Software," CrossTalk, November 1998.
[13] M. Diaz and J. King, "How CMM Impacts Quality,
Productivity, Rework, and the Bottom Line," CrossTalk,
March 2002.
[14] M. B. Chrissis, Konrad, and Shrum, CMMI – guideline
for process integration and product improvement, 2002.
[15] M. Poppendieck and T. Poppendieck, Lean Software
Development: An Implementation Guide: Addison-
Wesley, 2006.
[16] M. K. Kulpa and K. A. Johnson, Interpreting the
CMMI: A Process Improvement Approach. Boca Raton:
Auerbach Publications, 2003.

You might also like