Professional Documents
Culture Documents
net/publication/276839987
CITATIONS READS
8 415
4 authors:
Some of the authors of this publication are also working on these related projects:
Recommendation Techniques for Software Quality Improvement in Small Medium Enterprises View project
All content following this page was uploaded by Andrea Janes on 05 August 2016.
The reputation of lightweight software development processes such as Agile and Lean is
damaged by practitioners that claim bene¯ts of such processes that are not true.
Teams that want to demonstrate their seriousness, could bene¯t from matching their pro-
cesses to the CMMI model, a recognized model by industry and the public administration.
CMMI stands for Capability Maturity Model Integration and provides a reference model to
improve and evaluate processes according to their maturity based on best practices.
On the other hand, particularly in a lightweight software development process, the costs of a
CMMI appraisal are hard to justify since its advantages are not directly related to the creation
of value for the customer.
This paper presents Jidoka4CMMI, a tool that once a CMMI appraisal has been con-
ducted allows the documentation of the assessment criteria in form of executable test cases.
The test cases, and so the CMMI appraisal, can be repeated anytime, without additional costs.
The use of Jidoka4CMMI increases the bene¯ts of conducting a CMMI appraisal. We hope
that this encourages practitioners using lightweight software development processes to assess
their processes using a CMMI model.
1. Introduction
Promoters of non-traditional software development processes (e.g. Extreme Pro-
gramming [1], Scrum [2], Lean software development [3], etc.) often face the problem
that their success attracts dubious consultants that use this success to attract new
clients [4]. Such consultants then claim that you do not need to document anything,
can solve every problem, can produce bug-free software, turn your customers into
friends, maintain deadlines easily, and will have a 9 to 5 job. Then, when such claims
1255
1256 S. Astromskis et al.
cannot be met, such behavior damages the reputation of the new method and those
that use it.
Moreover, some companies call themselves Agile, Lean, etc., not because they
pursue agility, but because it is fashionable to do so [5]. The picture of a young,
dynamic, °exible, and lean team is what customers expect and, as a consequence,
what companies convey within their marketing material.
In summary, the described development damages the reputation of lightweight
software development processes. The conscientious part of the community needs to
develop methods and tools to objectively assess their method to produce software
and hence, to understand in which context it works and in which not [6]. The
availability of such methods and tools will help to distinguish the serious practitioner
from the quacksalver.
Agile and Lean teams could bene¯t from having a reference model, accepted by
the industry and the public administration, that de¯nes what it means to develop
\good" software. Teams that adhere to such model could claim that what they do
corresponds to the best practices of software development.
The CMMI for Development is such a model that describes typical elements of
e®ective processes [7]. Therefore, a proposed solution to increase the reputation of
Agile and Lean teams is to embrace both: CMMI and Agile [7].
The comparison of the development process of a given organization with the
recommendations of the CMMI helps to evaluate the maturity of the analyzed
process, ¯nd gaps between the performed activities and the suggested ones, identify
improvement possibilities, and demonstrate their maturity towards criticizers using
a model recognized throughout the industry and public administration.
According to Hillel Glazer, one of the autors of the paper \CMMI or Agile, Why
not embrace both?" [7], a CMMI appraisal for a small business with less than 100
developers that is completely ready to be appraised can cost from $36.000 to $60.000,
the exact price depends on a variety of factors. If the team needs help to prepare
everything to get appraised, clients typically spend about $125.000 over about a
year's time or less [8].
Agile and Lean practitioners are attentive on the elimination of any unnecessary
activities to improve their e±ciency. Hence, there is a certain level of skepticism
towards the CMMI since its value is indirect: a CMMI appraisal does not directly
contribute to the creation of value for the client. Only if the team is able to use the
results of the appraisal to optimize the software development process, and subse-
quently the software it produces, then it was worth it. For many, a CMMI appraisal
represents an investment that, considering the costs, is too risky.
We want to encourage practitioners using lightweight software development
processes to assess their processes from the CMMI perspective. Therefore we propose
a tool that once con¯gured, constantly evaluates the CMMI compliance of the on-
going processes, without generating additional costs.
Continuous CMMI Assessment Using Non-Invasive Measurement and Process Mining 1257
a JUnit, http://junit.org
b Jenkins CI, http://jenkins-ci.org
1258 S. Astromskis et al.
Table 1. Studies about software process improvement using software process mining.
Type a
Process improvement
Title Year framework Conformance Discovery Algorithm b
An Exploratory study of 2006 PDCA [24] Customized Alpha
process enactment as
input to software pro-
cess improvement [20]
A Systematic Approach to 2006 Not speci¯ed Alpha [25]
Process Enactment
Analysis as Input to
Software Process Im-
provement or Tailor-
ing [21]
Using process mining in 2011 CMMI [23] Markov chain [26]
software development
process management:
A case study [22]
a Type of software process mining.
b Software process mining algorithm used.
time than it would if the data would be collected automatically, and stored in a
database.
Our work di®ers from previous works in that it combines non-invasive data col-
lection and process mining to support the maturity assessment. In using non-invasive
measurement techniques to collect data about the software development process, we
want to encourage practitioners using lightweight software development approaches
to analyze their processes from a CMMI perspective.
3. Background
In the following three sections we brie°y present three concepts we used to develop
Jidoka4CMMI.
3.1. Jidoka
One of the pillars of Lean Management is \Jidoka", the introduction of quality inside
the production process and product.
Jidoka is often translated as \autonomation" or \automation with a human
mind" and is usually illustrated making the example of a machine that can detect a
problem with the produced output and interrupt production automatically rather
than continue to run and produce bad output [29].
Some authors translate Jidoka with \quality-at-the-source" [30] meaning that
quality is inherent in the production system, which is in contrast to the traditional
approach that checks quality after the process. In essence Jidoka is composed by two
Continuous CMMI Assessment Using Non-Invasive Measurement and Process Mining 1259
3.2. CMMI
The CMMI for Development is a model that describes typical elements of e®ective
processes [7]. It is used to assess the maturity of a process. A CMMI model describes
typical work products and typical practices that if performed indicate a
certain maturity level.
CMMI models are not precise process descriptions. The actual processes used in
an organization depend on many factors, including application domains and orga-
nization structure and size. The process areas of a CMMI model typically do not map
one to one with the processes used in the organization [32].
To automate the assessment of processes against the recommendations of the
CMMI, we adopt non-invasive data collection.
Non-invasive measurement
Legend
SoŌware development acƟvity
TransiƟon from one acƟvity to another
Measurement probe
We use this term to describe a measurement methodology that does not require
any participation by the software developer. As depicted in Fig. 2, Non-invasive data
collection relies on a set of sensors or probes that extract the data from other systems
(active) or that get triggered by the observed events (passive) [34].
The measurement probe logs events and report them to a message queue over the
Internet using the REST [36] protocol.
We use a message queue to minimize the workload of the client computers. Devel-
opers do not want that their machines slow down because some measurement program
is running in the background. By using a message queue (we use Apache ActiveMQc),
we can minimize the time the client machine is busy uploading data. The data are then
read from the message queue, processed, and inserted into the data warehouse. Due to
the large amount of data we collect, we use a NoSQL database, Apache Cassandrad.
The data are then extracted from the data warehouse and processed to feed it to the
process mining algorithm and its results visualized on a dashboard (see Fig. 3).
Figure 3 contains the same elements as Fig. 1: a mechanism to detect a problem
and a mechanism to notify everybody that a problem exists: in Fig. 1, the switch
under the lamp detects the problem and the lamp noti¯es everybody. In Fig. 3, the
measurement probes report problems to the data warehouse and the dashboard
informs everybody about the current status of the system.
Legend
Computer
Data transfer
Dashboard
Data processing and transfer
an organization [37]. The process mining algorithms analyze raw data without using
any a-priori information about the underlying process and aim to discover the actual
process model.
Software systems that support and/or control real word processes typically have
logging mechanisms in place so that one can analyze why something is not working or
how the systems can be improved (e.g. see [38–40]). Such data is stored in an event
log database, which is the main information source for process mining. The process
mining community distinguishes three main process mining activities:
(1) Process discovery: the core of process mining. Process discovery methods analyze
the event logs and extract process models that model the actual real world
events.
(2) Process conformance: if the organization has a formal model describing how a
process has to be executed, it is possible to compare the de¯ned model with the
mined one and verify if they conform.
(3) Process enhancement: the aim is on improving the actual process. One group of
process enhancement methods aim to modify the existing process model, by
comparing it with the de¯ned model in an organization. Another group aims to
extend the de¯ned model by cross-correlating it with the activity log, and
enriching the existing process model with additional perspectives, e.g.
throughput times, service levels, bottlenecks, and so on [37].
There is a common misconception, that the process models that can be mined are
only related to the control-°ow of activities [41]. The control-°ow is the core of mined
process models, but other perspectives can be mined too; some of them can be
combined with the control °ow perspective. Possible process mining perspectives are
summarized in Table 2.
1262 S. Astromskis et al.
Perspective Aim
Control-°ow Describe the discovered models as an ordered °ow of activities, modeled and visu-
alized as Petri-nets [42], EPCs [43], BPMN [44], YAWL [45], UML Activity
Diagram [46], etc. to identify a \good" a characterization of all possible paths.
Social network Study the communication between the team members during the life cycle of the
task.
Organizational Cluster team members to roles according to the tasks that they are usually
working on.
Information Map activities to the typical information or material resources of information that are
and resource needed to execute the task.
Case Study the properties of particular cases. Cases can be characterized by its path in the
process or by the originators working on it.
Time Study the timing and the frequency of events. If the events in the initial log have
timestamps, then it is possible to discover process bottlenecks, observe the re-
source utilization and predict the time that the process needs to ¯nish.
a With \good" we mean that the characterization conforms to the business goals (see section 4.1).
. Discover the structure of the process to reveal the structure of an unknown process
or discover how a process looks like in practice.
. Discover the most frequent path in the process so the user is able to get a clearer
understanding of their process by knowing the path of events followed by the
majority of cases. This information can be used for redesign purposes, since op-
timizing the most frequent path in the process might bring bene¯ts to the overall
performance.
. Visualize the distribution of cases over paths: by visualizing the percentage of
process instances following each possible path the user can decide to focus on the
most frequent behavior. This also allows determining whether there are a lot of
variations in the process and possibly representing a starting point for a redesign
meant to reduce these variations.
. Check for compliance to the explicit model: By executing this use case scenario, the
user can detect possible inconsistencies between the actual process and the one
that is prescribed. This analysis may either lead to the enforcement of the docu-
mented process or to an update of the documentation.
The research area of process mining is still rather young and these use cases
are just the examples, and do not reveal the full potential of this discipline. We
Continuous CMMI Assessment Using Non-Invasive Measurement and Process Mining 1263
want to propose the possibility to apply process mining techniques to support the
CMMI appraisal.
Rule
execuƟon
e Eclipse,
http://www.eclipse.org
f MicrosoftVisual Studio, http://www.microsoft.com/visualstudio
g OpenO±ce, http://www.openo±ce.org
h Microsoft O±ce, http://o±ce.microsoft.com
1264 S. Astromskis et al.
(1) Specify a Goal Question Metric (GQM) model [48] that de¯nes what to collect,
how to collect it, and why to collect it;
(2) Specify the conditions that the collected \footprints" have to ful¯ll using
JavaScripti or Javaj;
(3) De¯ne how a detection of non-conformance has to be noti¯ed.
In step (1) we require the user not only to specify what data to collect, but also to
document which question this data answers and how to interpret the answer of the
question. The result of the test case is then linked back to the measurement goal to
understand what the result means.
The CMMI model for Development speci¯es requirements for processes. Jido-
ka4CMMI contains process mining support to allow the user to evaluate if a process
conforms to the de¯ned process or, if we ¯nd out that the de¯ned process is not
followed, to discover the real process.
Process mining is a research discipline that sits between machine learning and
data mining on the one hand, and process modeling and analysis on the other
hand [37]. Process mining supports:
i JavaScript, http://www.ecmascript.org
j Oracle Java, http://www.java.com
Continuous CMMI Assessment Using Non-Invasive Measurement and Process Mining 1265
5. Proof of Concept
The initial validation of our approach occurred through the implementation of proof-
of-concepts. In this paper we present one. Each proof-of-concept consists of ¯ve
parts: the description of the context, the GQM model that describes why, how, and
which data is collected, examples of the collected data, the description how the data
is processed, and examples of possible results of the analysis.
Analyze
requirements management (object)
for the purpose of conformance checking (why)
with respect to the defined process (focus)
from the point of view of the project manager (who)
in the context of the soŌware
development department (where).
Metric Metric
Fig. 5. An excerpt of a Goal Question Metric model describing how a given speci¯c practice is evaluated.
At the metric level, the measurement probes collect process data which are stored
in our database.
At the question level, it is necessary to link the collected data to the question it
answers. To de¯ne how this link occurs, we allow the user to de¯ne rules written in
JavaScript that de¯ne how the incoming data is processed and interpreted to de-
termine the answer of the question.
To ensure that the system can be easily extended, every measurement probe can
expose objects that allow the JavaScript rules to access the collected data and so, to
construct rules that interpret them.
These objects are accessible while con¯guring the data, and we developed an
autocomplete feature, that helps the user to de¯ne the rules. An example of a rule
that identi¯es cases where a task was moved from the \Deployment" phase back to
the \Development" phase is reported below.
function live_to_dev_checker(processMetrics) {
var matches = [];
for (var i = 0; i < processMetrics.instances.length; i++) {
}
}
return matches;
};
This function loops over the di®erent process instances, and looks for matches
of a task sequence. The results of the rule are used to interpret the connected GQM
question and to visualize the result of this interpretation on a dashboard.
We visualize the results of the data collection and interpretation in a dashboard,
which is based on tiles (see [51] for a complete description of our dashboarding
approach). Each tile can be con¯gured de¯ning a caption, a color, and a value (see
Fig. 6).
In our case, for each question, a user can de¯ne rules to control how the inter-
preted data, i.e. the answer to the corresponding GQM question, is visualualized by a
speci¯c color, caption, and value to display on the dashboard.
For example, if for the question \How many times did a requirement move be-
tween the deployment and development phase?" we want to assign a green color if
the result is below 5, orange if it is between 5 and 15, and red if it is over 15, the rule is
as follows.
An example of two such tiles is shown in Fig. 6: one tile is colored red, because the
number of cases where the requirement was moved from deployment to development
is higher than 15.
In the same way as JavaScript rules de¯ne the interpretation of data to answer a
question, we allow the user to de¯ne JavaScript rules to use the answers to a set of
questions to evaluate the outcome of a measurement goal.
In this way, the user of our dashboard can immediately understand which speci¯c
practices and process areas do not need any attention (green), have warnings (yel-
low), and where immediate attention is needed (red). Each tile can also display a
numeric value and a message to help the user to understand which practice requires
improvement.
As recommended by [52], to increase the trust of the user in our visualization, we
give the user the possibility to see the original data that caused the state of the tile. In
our example, if a user clicks on the tile describing the process conformance, a visu-
alization is displayed that describes the identi¯ed process is depicted in Fig. 7.
6. Conclusion
In this work, we present a novel scenario in the assessment of light weight software
development processes.
We show, how quality assurance in the of the recommended practices by the
CMMI can be \built into the process", as proposed by Lean Thinking [53].
We give an example of how to integrate the continuous monitoring of produced
artifacts, ongoing development activities, and consumed resources with the pro-
duction process together with the knowledge about unacceptable values of the
monitored data.
Once modeled in a tool as described in this paper, also low ceremony processes
such as Agile and Lean processes, can continuously assess their processes using the
CMMI framework.
References
1. K. Beck and C. Andres, Extreme Programming Explained: Embrace Change, 2nd ed.
(Addison-Wesley Professional, 2004).
2. K. Schwaber, Agile Project Management with Scrum (Microsoft Press, Redmond, WA,
2004).
1270 S. Astromskis et al.
41. V. Rubin, C. Gunther, W. M. P. van der Aalst, E. Kindler, B. F. van Dongen and W.
Schaefer, Process mining framework for software processes, in Proceedings of Software
Process Dynamics and Agility, 2007, pp. 169–181.
42. C. Petri, Kommunikation mit automaten, Ph.D. dissertation, Rheinisch-West°isches
Institut fr instrumentelle Mathematik an der Universitt Bonn, 1962.
43. A. Scheer, ARIS - vom Gesch€ aftsprozess zum Anwendungssystem (Springer, 1999).
44. Object Management Group (OMG), Business Process Model and Notation (BPMN)
Version 2.0, Tech. Rep., 2011.
45. W. M. P. van der Aalst and A. H. M. ter Hofstede, Yawl: Yet another work°ow language,
Inf. Syst. 30(4) (2005) 245–275.
46. J. Rumbaugh, I. Jacobson and G. Booch, Uni¯ed Modeling Language Reference Manual,
2nd Edition (Pearson Higher Education).
47. I. Ailenei, A. Rozinat, A. Eckert and W. M. Aalst, De¯nition and validation of process
mining use cases, in Business Process Management Workshops, 2012, p. 7586.
48. V. R. Basili, G. Caldiera and H. D. Rombach, The goal question metric approach, in
Encyclopedia of Software Engineering (Wiley, 1994).
49. W. M. P. van der Aalst, Process Mining: Discovery, Conformance and Enhancement of
Business Processes, 1st ed. (Springer, 2011).
50. J. D. Weerdt, M. D. Backer, J. Vanthienen and B. Baesens, A multi-dimensional quality
assessment of state-of-the-art process discovery algorithms using real-life event logs, In-
formation Systems 37(7) (2012) 654–676.
51. A. Janes, A. Sillitti and G. Succi, E®ective dashboard design, Cutter IT Journal 26(1),
2013.
52. M. Robillard, W. Maalej, R. J. Walker and T. Zimmermann, Eds., Recommendation
Systems in Software Engineering (Springer, 2014).
53. J. P. Womack and D. T. Jones, Lean Thinking: Banish Waste and Create Wealth in Your
Corporation, 2nd ed. (Free Press, 2003).