Académique Documents
Professionnel Documents
Culture Documents
A Case Study
Marja Kpyaho
Marjo Kauppinen
c 2015 IEEE
978-1-4673-6905-3/15/$31.00
334
335
TABLE I
C HALLENGES IN AGILE RE
AGILE RE CHALLENGES
[6]
[5, 6, 7]
[6]
[6]
[5]
[6]
[5, 6, 7]
[6]
[6]
[5, 7]
Not understanding the big picture of requirements at the start of the project
Uncovering system level issues late in the project
Refactoring is inevitable
Cost and schedule es4ma4on
Constant re-priori4za4on can lead to instability
[5]
[5, 6]
[5, 6]
[5, 6]
[6]
[5, 6, 7]
[6]
[6]
[6]
336
the practice but the purpose of prototyping is nevertheless related to the active role of the first author are discussed in
always to gain more insight into designing the final product. Section V.C.
Studies on the topic of prototyping have rather unanimously
found prototyping to be a highly effective way to do user- A. Overview of the Project
In May 2011, two developers were sent to customer premises
centered design where you involve the user early on in
development [13, 14, 9, 15, 16, 17]. As Acosta et al. [18] state, to build a very easy-to-use UI for collecting working hours of
rapid prototyping techniques have also been recognized as an store managers in a big retail company. The customer company
important technology for RE. Already in the early 90s Windsor was encountering big organizational changes and had already
and Storrs [15] found that using a prototype provides a user with tried to automate its processes but the previous costly project
an understandable specification and the prototype, which shows had failed due to usability problems of the complex system. The
the designers interpretation of the requirements, can reduce new approach was to build the needed components iteratively
the risk of misunderstandings and different interpretations of and incrementally using a very agile approach. During the first
system specifications. Also other early researchers have noted year, the project size grew from two to ten developers in the core
that throw-away prototyping is cost-effective and improves team and thirty people in the entire project. During the year the
specifications [16] and that it can be even seen as the cheapest, team developed a portal containing multiple applications related
most practical method of producing a truly iterative approach to hour tracking and human resources. The core team also took
over the development of the backend systems. Although the
to interface design [14].
Today, we have multiple fast and cheap ways to produce project was delayed multiple times and encountered overruns,
prototypes even in the earliest phases of the development three years later the project had finally reached most of its
cycle. The use of prototypes to capture requirements fits the goals with a few thousand users using the built software daily.
We classify the case study project to be large for the
agile thinking well - constructing the UI can be seen as an
efficient way of reaching consensus on what we are doing. following three reasons: 1) number of team members and
As Windsor and Storrs [15] state it, we need a model of the stakeholders, 2) duration of the project, and 3) complexity and
evolving design that is comprehensible to users and solicits size of the system. First, the maximum size of the core team
feedback as much as possible. It is extremely difficult to was fifteen with at least another fifteen stakeholders supporting
visualise the behaviour of an interactive system with written, the project. Secondly, the project lasted three years with a lot
often lengthy and complex specifications [15]. Because of the of member turnover during this period. Thirdly, the system
natural tendency of humans to understand complex systems developed included most of the customers support processes
better as a visualization, prototyping can be seen as a good related to salaries and human resources and ended up having
a few thousand end users. There were also other suppliers
way of achieving a mutual understanding.
Although most of the research discussed here is focused on involved which further complicated the management of the
involving end users in prototyping, it should be noted that the project.
same laws of understanding apply when the communication
partner is the customer and not the end user. We will be dis- B. Data Collection and Analysis
To collect information on the case we carried out semicussing the upsides of prototyping related to agile development
and particularly agile RE later when discussing our results in structured and open-ended interviews with four team members
the light of other research. For now it is enough to state that, and one customer representative. The team members included
as far as we know, there has been very little research on the two backend architects, a person in charge of maintaining the
data and the person that, in addition to the author, was most
relationship between agile RE and prototyping.
involved in RE during the project. The customer interviewee
III. T HE C ASE S TUDY
was the project owner for six months and was the person who
This paper describes a case study that was conducted as part knew most about the systems and processes of the company.
of a masters thesis of one of the authors [19]. The case study All participants that were interviewed had been involved in the
was based on a one-year period of a large agile project. The project one year at minimum.
original research was conducted with in-depth interviews and
We chose semi-structured and open-ended interviews as the
qualitative analysis. In the process of writing this paper the method because we wanted to gain rich information about
results were reviewed. The goal of this paper was to gain a agile RE and prototyping. In addition, the interviewees were
deep understanding of how RE was practiced with prototyping able to provide information more freely than a questionnaire
and whether this helped in solving some problems inherent would have made possible. The interviews were semi-structured
in agility. The case study also contained elements of insider meaning that there were certain themes that we discussed
action research [20]. The first author of the paper was an active in each interview and the questions were used as a frame
member of the case study project. She was the lead designer for the discussion. The main themes of the interviews were:
and lead UI developer and the one producing the UI prototypes. 1) challenges encountered in the project, 2) benefits from
Therefore, she was able to make observations and gain a deep prototyping, and 3) improvement suggestions to the processes
understanding of prototyping and other software-engineering used. Additional questions were also asked depending on
activities performed during the project. The validity threats the interviewees role in the project. For example, effects
337
338
support in other areas. Table II gives an overview of the effects product owner. The role of product owner comes from Scrum
of prototyping on challenges identified from previous literature. where it means the person responsible for representing the
The effects have been derived from a comparison of challenges customer and being the voice of the stakeholders. Common
in literature and in the case study project [19]. The following to most agile methods is the importance of the customer role
paragraphs describe both benefits of prototyping, and problems in the project. Sufficient participation is often hard to achieve
where complementing practices would have been beneficial.
and we also failed to educate our customer enough on his
Managing with very little documentation and specifi- role. Building a genuinely agile project requires agility from
cations This was the area where we gained most benefits both the development team and the customer who should be
from UI prototypes. It is characteristic of agile methods that educated on their responsibilities right from the start.
documentation is minimal. However, this can cause problems
Not understanding the big picture One of the biggest
as the customer may have difficulties trusting the process problems we faced in the project was that, as we concentrated
and understanding what the developers are doing. In the case on a few features or one small UI at a time, we sometimes
study project the prototypes acted as a comprehensive but low missed the mark on the business needs of the customer. Keeping
maintenance documentation for the plans of one iteration. The the business needs in mind at all times might have led to some
prototypes also made writing acceptance tests easier as they less perfect partial implementations but would have been better
provided relatively detailed specifications for features.
for the project as a whole. A good example of this was the
Motivation issues related to RE work We had few human resources UI that was originally designed for thousands
motivation issues related to RE work because the prototypes of store managers but at some point was transformed into an
were concrete and actually fun to work with. It was perceived administrative UI for ten users causing some quality issues.
more motivating to update the visual prototype than textual Had we understood the internal politics while doing the original
documentation. Our project still faced challenges in practicing design, we could have included a way for the administrative
TDD (Test Driven Development) and the development team personnel to remain in control of the data. The bigger picture in
agreed that the method should have been utilized more than it this project would also have included better understanding the
was. Quality assurance was sometimes lacking and many bugs components that other suppliers were developing. Despite these
were only found after completing a feature.
difficulties we also had some positive effects from prototyping
Using ATDD (Acceptance Test Driven Development) could in this area. The system architects reported that the prototypes
have stabilized some features earlier as the goals of the iteration made architecture design easier at times and helped in basing
would have been clearer. The project team did practice some important decisions on something concrete.
ATDD by using a test framework that enabled integration
As an improvement, it would have been beneficial to start
tests to act more as acceptance tests. These automated tests the project by taking time to understand the big picture and
were written in natural language because we were hoping the making a larger-scale plan. This plan could then have been
customer would then participate more in writing acceptance reviewed every few iterations. Although it would have changed
tests. The framework worked well, but we simply did not utilize a lot during the project we might have been able to catch
it as well as we could have and also did not get the customer some major problems earlier. The review sessions should
to participate enough.
have included participants from as many customer groups as
Building acceptance tests early on based on the prototypes possible so that all views could have been considered. It would
would have been a good improvement in the case study project. also have been beneficial to keep a record of the envisioned
The UI prototypes could have served as a good base for building roadmap for the project in a flow chart or some other simple
acceptance tests more efficiently. Not realizing this potential illustration. Overly focusing on end user satisfaction was also
was mainly due to lack of skills in TDD and the fact that further strengthened by prototyping. It enabled too much focus
requirements seemed to change too much even during iterations. on partially optimized solutions. When using prototyping and
However, several interviewees noted that clearer acceptance very iterative approaches it is important to remember that user
tests would have given the process a better backbone. As it needs and customer needs can differ and are both important to
was, we were often unsure when the features were actually consider when building comprehensive solutions. The customer
production ready.
is not always right, and a team of software development
Achieving enough quality communication with customer professionals should be able to make the customer see that on
Despite the fact that the project team worked in customer those occasions.
premises and used UI prototypes for better communication
Neglecting quality requirements Our prototyping apwe still experienced problems in this area. Nevertheless, we proach only served to enforce the natural tendency of agile
did gain some benefits in this area from prototyping. It was methods to neglect quality requirements. In the case study
sometimes difficult to achieve sufficient customer presence, but project we mainly focused on visible features based on user
when we did, the prototypes enabled better communication interface prototypes. For example, there were some architectural
and a quick way to achieve shared vision among different requirements concerning our database structure that were
stakeholders.
mentioned every now and then by the customer, but that ended
The improvement idea that came up in the interviews was up not having any effect until a visible feature demanded it.
to educate the customer on agile methods and on being a By this time it was already extremely costly and demanded a
339
TABLE II
H OW PROTOTYPING HELPED IN FACING CHALLENGES
AGILE RE CHALLENGES
Yes
Yes
Yes
Yes
Yes
Some
Some
Some
No
Some
Not understanding the big picture of requirements at the start of the project
Uncovering system level issues late in the project
Refactoring is inevitable
Cost and schedule es4ma4on
Constant re-priori4za4on can lead to instability
No
No
Some
No
No
No
No
No
No
PROTOTYPING HELPED?
early. This would also prevent the customer from having too
high expectations, which was mentioned as a problem in both
literature and in one project interview.
C. Summary of Findings
The case study revealed that prototyping solved some
challenges in agile RE while having very little or even a
negative effect on other agile RE problems. The biggest benefit
from prototyping was having unambiguous documentation in
the form of prototypes. The prototypes helped create trust and
acted as clear documentation. Another big benefit was that
prototyping provided better motivation for RE work. Working
with prototypes was perceived to be more motivating, and they
also made it easier to practice ATDD when appropriate. The
third area where we gained benefits was in ensuring improved
communication among stakeholders. Prototyping did not make
the customer participate more in daily activities but it did help
in reaching consensus more easily by providing a common
language that everyone could understand.
On the other hand, in the areas of not understanding the
big picture and neglecting quality requirements, prototyping
did not help significantly and may have even highlighted these
problems. Other challenges that were not helped by prototyping
were problems with communicating the customer role more
clearly, motivating the team for ATDD and issues with too
detailed prototyping. Figure 2 presents five improvement ideas
we found to solve these problems, added into the previously
shown case process.
340
Educating customer on
being product owner
EACH ITERATION
Elicitating initial
requirements
Building simplified
prototype
Using prototype
in implementation
Reviewing
prototype with quality
requirements
New features
from backlog
Building acceptance
tests based on
prototype
V. D ISCUSSION
In this section, we compare the case study results to current
literature. The case study revealed much of the same issues
as previous literature on agile RE challenges, including lack
of customer participation, neglect of quality requirements and
instability due to constant change. However, looking at the
results it seems that some problems that had plagued other
projects were counteracted by prototyping in the case study
project. Next we go through benefits and shortcomings of
prototyping as found in the case study, and compare them to
literature.
A. Benefits from Prototyping
According to literature, prototyping can complement the
agile philosophy well and Memmel et al. [21] even suggest
that the role of prototypes was less important in software
engineering before agile approaches refocused attention on
them as vehicles for inspections and testing. Here we compare
our positive findings regarding prototyping with previously
published work.
Having unambiguous documentation Prototyping helped
in many of the challenges related to managing with very little
documentation that often plague agile RE. Acosta et al. [18]
also report that developing executable prototypes as part of
the requirements specification process diminishes ambiguity,
incompleteness and inconsistency that easily become prominent
when developing complex software systems. Lack of tangible
plans and specifications didnt come up as a challenge in
the case project because the prototypes provided sufficient
documentation. Also, Sillitti et al. [22] point out that companies
using agile development seek to create trust by integrating the
customer into the development process. However, when the
customer involvement is insufficient there may not be much
base on which to build trust. In our case the prototypes provided
this base and there were very few trust issues.
341
342
R EFERENCES
[1] D. Mishra and A. Mishra. Complex software project
development: agile methods adoption. Journal of Software
Maintenance and Evolution: Research and Practice, 23
(8):549564, 2011.
[2] J. Savolainen, J. Kuusela, and A. Vilavaara. Transition
to agile development - rediscovery of important requirements engineering practices. In 18th IEEE International
Requirements Engineering Conference (RE), pages 289
294, 2010.
[3] L. Jiang and A. Eberlein. An analysis of the history of
classical software development and agile development.
In IEEE International Conference on Systems, Man and
Cybernetics, pages 3733 3738, 2009.
[4] Chaos manifesto - the laws of chaos and the chaos 100
best pm practices. Technical report, The Standish Group,
2011.
[5] E. Bjarnason, K. Wnuk, and B. Regnell. A case study
on benefits and side-effects of agile practices in largescale requirements engineering. In Proceedings of the 1st
Workshop on Agile Requirements Engineering, AREW
11, pages 3/13/5, 2011.
[6] L. Cao and B. Ramesh. Agile requirements engineering
practices: An empirical study. IEEE Software, 25(1):60
67, 2008. ISSN 0740-7459.
[7] F. Paetsch, A. Eberlein, and F. Maurer. Requirements
engineering and agile software development. In Proceedings of the twelfth IEEE International Workshops on
Enabling Technologies: Infrastructure for Collaborative
Enterprises, pages 308 313, 2003.
[8] B. Waldmann. Theres never enough time: Doing requirements under resource constraints, and what requirements
engineering can learn from agile development. In 19th
IEEE International Requirements Engineering Conference
(RE), pages 301 305, 2011.
[9] M. Schrage. Never go to a client meeting without a
prototype [software prototyping]. IEEE Software, 21(2):
42 45, 2004.
[10] M. Fowler and J. Highsmith. The agile manifesto.
Technical report, Agile Alliance, 2001.
[11] T. Fancott, P. Kamthan, and N. Shahmir. Towards next
generation requirements engineering. In International
Conference on Social Informatics (SocialInformatics),
pages 328331, 2012.
[12] D. Baumer, W. Bischofberger, H. Lichter, and H. Zullighoven. User interface prototyping-concepts, tools, and
experience. In Proceedings of the 18th International
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
343