recommendations for software development projects.
This requires research into feature extraction and
model definition and validation, to support predic-
tion of success or failure of a current Scrum sprint
period. We make use of information about earlier
sprints, such that we can predict the probable outcome
before the sprint in question has started.
Finally, to what respect and extent, and using
which kinds of measures, can the effectiveness of
novel software engineering methodologies be deter-
mined scientifically? After model validation, we will
apply the prediction to ongoing projects and deter-
mine the effects of recommendations on the devel-
opment process and its success. The recommenda-
tion model must integrate into the current software de-
velopment practices, for example by augmenting ex-
isting systems for quality reporting, project manage-
ment, logistics and human resources. Such an experi-
mental setup requires thorough verification and com-
parison with projects that lack this setup.
3.3 Conceptual Frameworks
We describe a Scrum sprint as models which we will
use to perform model validation. We present three
models that relate to the linear model of a Scrum
sprint, namely a factory process, a symbiotic learning
network, and a predator-prey system.
In the factory model, we start at some predeter-
mined state with a concept for something a user may
want to be able to do with the product, of which the
release is the eventual outcome. This leads to a use
case which can be expanded into a story. The story
may undergo multiple phases in which it is further
detailed in terms of design and scope, after which the
story is reviewed. The review determines whether the
story is ready to develop into an implemented fea-
ture. This step employs programming of source code
to handle the use cases. Again, this step can be re-
viewed to ensure code quality and agreement within
the team about how the code is supposed to function.
Aside from manual inspection, a test process allows
the team to check if the implementation conforms to
their expectationsthrough the use of verification mod-
els (with a technical equivalent of automated regres-
sion tests and similar benchmarks).
A special twist of the Scrum factory is that the
client may be involved in the quality acceptance of
the product before it is released to them. This may
materialize in the form of acceptance testing in a test
environment, witness testing, or a demo near the end
of the sprint. This external testing process brings the
story closer to production. In the end, the stories
that are considered to be ‘done’ are released in a po-
tentially shippable increment. Again, this is slightly
different from conventional product launch strategies,
since not all desired functionality may have made it
into the increment, but those that did are working as
expected.
There are indicative moments at each step in this
process: before the entire process starts, in between
the subprocesses, and at the end of the production
line. These moments are shown in Figure 2 and may
occur during the Scrum sprint or before or after it in
the case of designing and reviewing the stories. At
any moment, we may determine how many of these
stories are at the current step as well as how many are
waiting to be pulled into the next step after a subtask
is done. Thus we have separate backlogs for stories
at any point of the development phase, not just before
they are pulled into a sprint.
Ideally, the factory pipeline is a one-way conveyor
belt with a stable speed such that the backlogs re-
main small and manageable. However, one additional
complication is that stories may be pulled back into
an earlier state, for example when review or testing
uncovers problems that require redesigning, fixes in
code, or other changes in an earlier process. Similarly
to the intermediate backlogs, the volume of such set-
backs should be limited. The practice of adding these
backward flows into the model yields a value stream
map, which stems from the Lean software develop-
ment principles (Abdulmalek and Rajgopal, 2007).
In another context, the Scrum sprint can be seen as
a symbiotic environmentthat encourages stakeholders
to learn from past mistakes, such that known prob-
lems can be prevented in the future.
One can define a time range, such as the start of a
sprint until the end of a sprint, in which the team per-
forms actions that may improvethe product and them-
selves. At the start of this range, we have a number of
artifacts, such as code, components in the system ar-
chitecture, stories in the sprint and in the backlog, and
(reported) bugs. All of these artifacts may have some
measurable indication of how proficient they are: is
the code readable, are the stories detailed enough (but
not too implementation-specific), etc.
At the end of the sprint, these artifacts have the
same properties, but upon measuring them they may
have improved. We can detect if the solutions were
implemented in the code in such a way that it is
reusable for later features and is future-proof against
unknown bugs or regressions elsewhere in the code.
This includes checks for code duplications or other
code smells within or between components. The
structure of the architecture may improve, which is
more than just aligning it with the initial design con-
cept. Problems that were encountered with certain
stories should be used as a learning moment to ensure