<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Challenges and Working Solutions in Agile Adaptation: Experiences from the Industry1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Özden Özcan-Top</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Onur Demirors</string-name>
          <email>onurdemirors@iyte.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fergal Mc Caffery</string-name>
          <email>fergal.mccaffery@dkit.ie</email>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Engineering, Izmir Institute of Technology</institution>
          ,
          <addr-line>Izmir</addr-line>
          ,
          <country>Turkey Springer</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Graduate School of Informatics, Middle East Technical University</institution>
          ,
          <addr-line>Ankara</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Regulated Software Research Centre, Dundalk Institute of Technology</institution>
          ,
          <addr-line>Dundalk</addr-line>
          ,
          <country country="IE">Ireland</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>STATSports Group</institution>
          ,
          <addr-line>Newry</addr-line>
          ,
          <country country="IE">Ireland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Challenges in agile adaptation is inevitable in software development projects and have to be dealt with by software practitioners. The pathway to excellence in agility requires experience of challenges, failure of process scenarios; and the discovery of working solutions by software development teams. The major purpose of this study is to highlight both the challenges organizations faced when implementing agile techniques and the solutions adopted that proved successful. In order to specify these challenges and working solutions, we performed a multiple case study by using the Software Agility Assessment Reference Model (AgilityMod). In this paper, we describe two cases that achieve the highest levels of agility among eight cases and describe their experiences in achieving a good adaptation through the challenges that they faced and the solutions that were found for these challenges. Additionally, we provide two challenges that have not been resolved yet and are subject to further discussions.</p>
      </abstract>
      <kwd-group>
        <kwd>Agile Software Development</kwd>
        <kwd>Agility Assessment</kwd>
        <kwd>Agile Adaptation</kwd>
        <kwd>AgilityMod</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Agile software development is one of the most important paradigms that radically
changed how software is developed [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The agile manifesto and principles [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] inspired
many people.
      </p>
      <p>The promises made by the agile manifesto were so tempting that inevitably, agile
was considered as a silver bullet. After a while, it was noticed by the software
community that agile software development is not a “one size fits all” kind of approach. Every
project, whether small or large, distributed or collocated has its own conditions that are
specific to those environments. Besides, organizations do not quickly progress from
low to high levels of agility. The pathway to excellence in agility requires experience
1Copyright ©2020 for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC BY 4.0).
of challenges, failure of process scenarios; and the discovery of working solutions by
software development teams.</p>
      <p>
        Unresolved challenges may end up with the fossilization of software development
teams, which is a phenomenon described as being stuck with a condition that prevents
someone from improving. Mitigating the impact of such challenges had a significant
role on team performance and breaking the domino effect created by such challenges
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        It is also significant to identify to what degree a software development team
compromises agility while discovering the solutions that work for them. Agile maturity and
agility assessment models are utilized to identify upon which side of the agility line an
organization resides. Previously we assessed the capability of existing models [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], but
were not convinced with the quality of such models.
      </p>
      <p>
        We developed the Software Agility Assessment Reference Model (AgilityMod) to
provide a structured model for agility assessment. The Model provides a means for
identifying agility gaps in software development projects [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ].
      </p>
      <p>We performed a multiple case study to identify AgilityMod’s applicability in
operational software development projects. The case study included eight industry cases. In
this paper, we present the two cases (Case G and Case C), which achieved the best
agility results. The main emphasis of this paper is upon the lessons learnt from the most
successful implementations of agile and that is why we only focus on the two most
successful cases.</p>
      <p>The purpose of this paper is to describe both the challenges organizations faced when
implementing agile techniques and the solutions adopted that proved successful. We
think that it is also very important for the challenges to be described with their own
environments where they were observed. From this perspective, the paper will provide
a specific insight to readers about what could work, under what kind of conditions. The
challenges described here are not at an abstract level, but actual, detailed and specific.</p>
      <p>This paper is structured as follows: In Section 2, we discuss the challenges
organizations face when embarking upon agile software development and suggested solutions
for these challenges, based upon previous documented research. In Section 3, we briefly
explain the Software Agility Assessment Reference Model (AgilityMod) that we
developed and was subsequently used within the eight case studies. In section 4, we
present the case study. In section 5, we both provide the challenges that were faced in agile
adaptation and the specific solutions that were successfully implemented in two
organizations. In Section 5, we also describe two challenges that still need to be further
investigated for effective solutions. Finally, in Section 6, we present our overall opinion
on this topic.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        Agile has had a groundbreaking impact on software development. Debates on what
agile is still continue, as to whether agile is: a development and management
philosophy; a collection of technical practices; a way of life; or all of these [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Nerur et al. specify that agile and traditional approaches diverge in a number of
aspects: approach to control, management style, knowledge management, role of the
customer in development process, role assignment, communication style, development
life-cycle, organizational culture and technology [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Boehm makes this discussion over
developers, customers, requirements, architecture, refactoring, team size and the
primary objective of the development [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Stober and Hansmann compare the characteristics of software development teams to
the characteristics of fractal units in mathematics which are self-similarity,
goal-orientation, self-organization, self-improvement and vitality [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] .
      </p>
      <p>
        The core set of Agile methods or to use Highsmith’s phrase Agile Software
Development Ecosystems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] include Dynamic Systems Development Method [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Scrum
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Agile Software Process Model [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Crystal collection [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref9">9-12</xref>
        ], Extreme
programming [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ], Internet Speed Development [
        <xref ref-type="bibr" rid="ref15 ref16 ref17">15-17</xref>
        ], Adaptive Software Development
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], Pragmatic Programming [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], Feature Driven Development [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], Agile Modelling
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], Lean Software Development [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and Test Driven Development [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. These
models which are developed for varying real life conditions, share a set values which were
later defined in agile manifesto in 2001[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        For organizations transitioning from traditional approaches to agile approaches,
major challenges are observed in customer involvement, documentation, upfront
requirement analysis, document-driven testing, communication and knowledge sharing [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
Heeagar mentions that it is difficult to find solutions to these challenges applicable in
organizational contexts and valid in terms of agility. However, she does not provide
any solutions that worked for large scale, and document driven software organizations
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
      <p>
        Sekitoleko et.al [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] specify the challenges associated with using agile within
largescale distributed software development teams. They define “technical dependency” as
“the relationships and interactions between artifacts and teams during product
development”. From this perspective, they present the major challenges as “the planning
challenge, the task prioritization challenge, the knowledge sharing challenge, the code
quality challenge, and the integration challenge”. Even if the presented challenges are
valid in a general context, we think that “technical dependency challenge” term
misleads the reader. The term is usually used for the dependencies among architectural
elements at the architectural level [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>
        Kaisti et.al’s study is also valuable as they specified agile challenges in an embedded
systems development domain, a domain that had not benefited much from the agility
so far [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. The major challenges listed in this study are “high cost of change late in
development due to hardware components”, “difficulties in making frequent software
releases”, “not avoiding documentation at different levels of software development due
to integration of different stakeholders to the process and due to the regulatory
standards”, and “long development cycles of electronics and mechanics design”.
      </p>
      <p>
        There are a small number of studies on identification of agile adoption challenges
specified through empirical research and focused on real life cases. Identification of
optimum granularity levels for user stories has been studied by Liskin et.al [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. Their
work is one of the studies that analyzes the challenges and provides solutions for them.
      </p>
      <p>
        Ramesh [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] et. al identified seven agile requirements engineering (RE) challenges
by collecting data from 16 organizations with semi-structured interviews, participant
observations and review of documents. The challenges are associated with RE practices
are: “agile estimation approaches and the need for early and accurate project estimates
in projects”, “agile architecture approach and architecture inadequacy with the
emergence of requirements”, “neglect of non-functional requirements and unavailability of
on-site customer in requirements elicitation”, “the conflicts between business value
based requirement prioritization and the architecture development”, “inadequate
requirements verification” and “misunderstood minimum documentation concept”.
Although those challenges point to significant problems in agile software development, all
of the practices mentioned are not specific to agile requirements engineering. In
addition, the problems mentioned about the neglect of non-functional requirements,
minimal documentation and inadequate requirements verification cannot be listed as
challenges in agile adoption rather they are examples of poor implementation choices and
can be resolved without violating the agile principles.
      </p>
      <p>
        Conboy et. al [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] examined the people related challenges associated with agile
software development in 2011 through a case study followed by focused group discussions.
They specified the following challenges: developer fear caused by skill deficiencies,
the need for competence in broad range of skills, increased reliance on social
interaction, lack of business knowledge among developers, lack of developer motivation in
implementing agile methods, devolved decision making due to self-organization, and
implementing agile compliant performance evaluation systems instead of individual
evaluation.
      </p>
      <p>Compared to other research papers described above, the last three emphasize the
real-life problems. The others basically focus on the challenges from a high level
(abstract) perspective. We do not ignore these attempts however, we are sure that we
should be more specific about the challenges, the solutions and the surrounding
conditions that created those challenges to provide insight about real life situations to the
reader.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Software Agility Assessment Reference Model (AgilityMod)</title>
      <p>
        AgilityMod is a software agility assessment reference model the structure of which was
defined in accordance with the ISO/IEC 15504-Process Assessment Model [
        <xref ref-type="bibr" rid="ref32 ref33">32, 33</xref>
        ].
      </p>
      <p>From AgilityMod’s perspective, Agility is the capability of being able to give and
obtain feedback rapidly, being adaptive to changing conditions, having confidence on
developing solutions to complex problems, being creative and innovative, respecting
others, working with humility, learning from mistakes, improving continuously,
solving problems/issues with communication and moving away from complex and
bureaucratic procedures.</p>
      <p>The model mainly consists of two dimensions: Aspect Dimension and Agility
Dimension which can be seen on Fig.1.</p>
      <p>LEVEL 3: EFFECTIVE
se
li
p
rcPnd LEVEL 2: LEAN
n
i
a
o
iftsaen LEVEL 1: AD-HOC
M
e
li
g
A LEVEL 0: NOT IMPLEMENTED</p>
      <p>Agility
Dimension</p>
      <p>AGILITY ASSESSMENT
REFERENCE MODEL</p>
      <p>AgilityMOD
Agile Practices and Processes</p>
      <p>Aspect</p>
      <p>Dimension</p>
      <p>
        The first dimension of the Model is the Aspect Dimension. This dimension is
described with Aspects rather than processes. Because, the formal process layers of
traditional software development are intertwined to each other in agile software
development. Therefore, it is difficult to specify boundaries for agile processes. From this
perspective, the Aspects are a collection of interrelated and interacting activities of agile
processes and practices that are integrated under meaningful and agile compatible
abstract definitions [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The aspect dimension consists of four aspects: “Exploration”,
“Construction”, “Transition” and “Management”. The cultural issues which are a
significant part of agile adaptation are taken into account in the agility dimension.
      </p>
      <p>The purpose of the Exploration Aspect is to understand the customer/user needs and
to transform these needs into artifacts that initiate communication for elaboration on
them during construction and manage the changes to these artifacts. The purpose of the
Construction Aspect is to develop a high-quality software solution that is ready to be
built, including architecture, design, coding and unit testing activities. The Transition
Aspect includes practices to establish and maintain reliable and repeatable build,
integration and deployment practices to keep the application in a working state throughout
development. This makes it possible to obtain feedback in relation to the problems in
the process, to make the whole process visible to everyone, and to shorten the response
time for changes. Finally, the purpose of the Management Aspect is to perform planning
and tracking activities continuously, and estimating collaboratively to achieve
efficiency and performing these practices as value adding activities to the project life cycle</p>
      <p>At the Agility Dimension, Agility of an aspect is described with four Levels: “Not
Implemented (L0)”, “Ad-Hoc (L1)”, “Lean (L2)” and “Effective (L3)”. When an aspect
progresses from the bottom level to the top level, its conformance to agile values and
principles increases.</p>
      <p>At Level 0, the aspect practices are either not achieved or partially achieved. At
Level 1, fundamental development processes such as requirements development,
design, coding, integration, testing, and deployment are performed consistently. There are
transition attempts towards agility by exploring best fitting agile practices or
approaches. Aspect practices are implemented and aspect purposes are achieved; however
agile values and principles are not fully incorporated into aspect practices. At Level 2,
work products are developed iteratively and incrementally, non-value-added activities
are eliminated from the aspect practices, balance is achieved between adaptive and
predictive works. At Level 3, each aspect is performed to achieve delivering value with
high productivity and low defects by employing agile engineering practices and using
agile tools to support a continuously improving environment.
4</p>
    </sec>
    <sec id="sec-4">
      <title>The Case Study</title>
      <p>
        We performed this study using a qualitative research approach where the researchers
collect data in the natural settings through overviewing documents, observing behavior
or interviewing participants [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]. Through reviewing other qualitative research
strategies, we selected the case study research to collect and analyze the empirical evidence.
The case study research is suitable for “how” and “why” type questions and the
researcher has little control over events in a real-life context [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
      </p>
      <p>
        We performed a multiple case study that included eight cases. We observed the
applicability of AgilityMod for the identification of agility gaps in software projects and
also to identify strengths and the weaknesses of the Model. We explained the case study
and the results in detail in [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ]. As the scope of this paper is to describe the agile
adaption challenges and lessons learnt from the most successful cases, here we describe only
the two cases that had achieved the highest agility levels from the eight cases: Case G
and Case C.
4.1
      </p>
      <sec id="sec-4-1">
        <title>Description of the Cases</title>
        <p>We selected the eight cases randomly in order to observe different levels of agility for
each aspect. The rationale behind this approach is that without performing an agility
assessment, it is not rational and easy to make judgments about the maturity of the
cases, just by knowing the duration of agile adaption efforts.</p>
        <p>Below, we both describe the two organizations that the projects were performed in
and the two projects that were subjected to this research. Again, we are not describing
all eight cases here, just the cases that achieved the hightest agility levels after the
assessment with AgilityMod.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Case G</title>
        <p>Organization G is a government IT organization responsible for developing
e-government software for various governance organizations. It is located in Ankara, Turkey.</p>
        <p>The project (Case G) that was subjected to the assessment, is an e-government
project, providing solutions to 40 foundations which are located in different cities of
Turkey and with approximately 25 million Turkish citizens. Case G includes 21 employees
divided into four teams which report to a project manager and an assistant project
manager. Three of these teams purely work on software modules, the last one is involved
in both system infrastructure and software development activities. Each team has a
technical team leader. Other members of the team did not have specific roles, each one
was involved in analysis, design and development activities. Since the beginning of the
project in 2009, 7 million LOC has been developed. The product is developed in
iterations, each of which is one month in length. There is a signed contract between the
organization and the customer to specify the deadlines and budget.</p>
        <p>
          The functional domain of the assessed project, is classified as a “Controlling Data
System” based on the CHAR group method [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Case C</title>
        <p>Organization C works within the internet security domain. They develop products with
the purpose of securing information on the internet, securing websites and e-commerce
applications and personal computers. Org. C is an international company, doing
business over 100 countries, having 25 million end users, and over 7000 business partners.</p>
        <p>Case C is a digital advertisement sharing platform. It is in use and new versions of
the product are being deployed continuously. The purpose of the project is to ensure
the security of the advertisements and to deliver harmless and focused advertisements
to end users. The project includes 22 employees. There are three different development
teams and Scrum Masters for each of the teams. Overall, there are four testers, 13
developers and an architect. Additionally, each team has a program manager. Apart from
these members, there is a product owner residing in the US.</p>
        <p>Case C is built upon legacy code. Java, PhP and Python languages are being used
for different modules of the product. The project includes big data analyzes performed
using the tools Cassandra and Hadoop. Scrum is used for project management
activities. The product is built iteratively with each iteration lasting three weeks.
4.2</p>
      </sec>
      <sec id="sec-4-4">
        <title>Case Study Conduct</title>
        <p>We assessed the Agility of Case G and Case C by both interviewing with project team
members and observing of the outputs produced during the project life cycles. Prior to
the case study conduct, we developed a list of scripted questions related to the aspect
practices and agility practices of the Model. We followed a semi-structured interview
which included asking additional questions based on the project context and challenges.
Each interview session was recorded and transcribed. The assessor was one of the
authors of this paper who had four years of experience on agile software development at
that time.</p>
        <p>For Case G, the assessment was performed over a three-hour time period with the
technical leader of the infrastructure team who had worked formerly as a developer and
has knowledge about the project’s processes. For Case C, the assessment was
performed in a three-hours with the configuration manager and the quality assurance
manager who is also the scrum master of the project.</p>
        <p>After the assessments, we developed the agility assessment reports and shared these
reports with the case organizations. In addition, we presented the results to the
assessment teams. The presentations covered the assessment findings, the aspect levels and
the improvement suggestions. After or during each presentation, we discussed the
results with attendees. Thus, we ensured the validity of the case study results by
discussing our findings and observations with the interviewees and managers in the
organizations.</p>
        <p>We present the agility assessment results in Fig. 2 and Fig. 3 for Case G and Case C
respectively. These figures give the colored schema of the assessment ratings to provide
a visual high-level view of the findings. Each column refers to the practices of
AgilityMod (APx and GPx). The colors and the numbers in each cell refer to the achieved
levels of these practices. We used a-four-level rating scale to express the achievement
of the aspect attributes: “not achieved (0-red), partially achieved (1-yellow), largely
achieved (2-orange) and fully achieved (3-green) and not applicable (NA)”. For an
agility level to be reached, all the practices should be largely or fully achieved.</p>
        <p>The Case G achieved Level-3: Effective for all of the aspects. This essentially means
that Case G’s aspects are iteratively performed, lean, technically excellent and
continuously improving. Fast feedback is obtained and effectively communicated among
team members. On the other hand, the customers are located in a different building.
The communication between the customer and the team is not as effective as the
communication among team members. The ways to communicate with the customer needed
to be improved. It was found that retrospective studies to identify improvement areas
are not performed regularly. It is suggested to perform regular retrospective studies that
would provide much more value to the processes. Another recommendation provided
to teams was to establish a generic measurement framework to improve the decision
making.</p>
        <p>Similarly, Case C also showed very good results. All of the practices of exploration
and management aspects of Case C were rated as fully achieved. The Construction
aspect of Case C is at Level 3. The weakest aspect of Case C is the “Transition” aspect
which is at Level 2: Lean level. The major improvement areas for this project in terms
of the Agility are achieving continuous integration, continuous delivery and increasing
unit test coverage and automated test ratio, refactoring continuously and managing
technical debt better.</p>
        <p>In Fig. 4, we provide a comparative radar chart to display the differences between
the ideal case (blue line) (the case that the all practices were fully achieved) and the
current situation of Case G (orange line) and Case C (grey line). The data to draw the
current situation of the cases for each aspect was obtained by adding the rating values
in each cell along with the horizontal columns given on Fig. 2 and Fig. 3 (E:
Exploration, M: Management, T: Transition, C: Construction). This chart allows us to observe
the how far each case’s Aspect is from being fully agile according to AgilityMod.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Challenges Faced Agile Adaptation and Working Solutions</title>
      <p>In this section, we present two types of challenges: First, the challenges that Case C
and Case G teams overcame through implementing successful solutions (Resolved).
Second, the challenges that need further discussion (Unresolved). A summary of the
challenges and working solutions is provided in Table 1.
5.1</p>
      <sec id="sec-5-1">
        <title>Resolved Challenges</title>
        <p>Having no on-site customer: As specified in the Agile Manifesto, one of the critical
success factors in agile software development is the level of interaction between
software development teams with their customers.</p>
        <p>In Case G, the Product Owner (PO) lives in the United States, while the rest of the
team reside in Turkey. However, the product owner communicates with the program
managers regularly (3 to 5 times in a week) over teleconferencing despite the 8 hours
difference. The PO does not only communicate with the program managers but also
with the scrum masters and the developers when further clarification is required for the
backlog items.</p>
        <p>This case shows that “distance” is not an excuse for low levels of communication
with the customer. The commitment of the customer is a very significant part of
overcoming the no on-site customer challenge. In Case C, what we found was that having
customers on different continents has given Case C teams significant insight into the
importance of communication where they have focused on ways to strengthen their
interaction channels.</p>
        <p>
          Granularity level of requirements: In agile software development, user stories are
a widespread way of specifying software requirements. However, the identification of
optimum granularity levels for user stories still remains a challenge. Coarsely
granulated user stories are the source of difficulties and problems in the estimation process
[
          <xref ref-type="bibr" rid="ref29">29</xref>
          ].
        </p>
        <p>In Case C, a well working process has been implemented for this challenge. It was
stated that the business needs were transformed into software requirements through the
following stages: First, the product owner and/or program managers define the business
needs as “epics” in the product backlog in Atlassian’s Jira tool. Second, the program
managers and software development teams perform “backlog grooming meetings” once
a week where each epic were split-down into user stories.</p>
        <p>It is essential to mention here that these grooming meetings were performed
independent of the scope of the upcoming sprints. If the teams require further information
to clarify some issues, the PO was requested to involve in those meetings.</p>
        <p>The teams use two approaches to decide on the optimum granularity level for user
stories. The first one is the “story points (sp) estimation”. A user story is not included
in a sprint, if its size is above a threshold (for Case C, it was 20 sp.). A user story is
discussed, detailed and re-estimated until it reaches the pre-specified sp level. The
second one is the “acceptance criterion” which is essential for both of the development and
test teams. Definability of the acceptance criteria is an indicator of a well-defined user
story which was spilt-down into a sufficient level of detail.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Growth of product backlog at a constant pace: As specified by Rubin [38] and</title>
        <p>
          defined in AgilityMod [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ] as a generic agility practice; the balance between the
upcoming items and outgoing items in a software development process has a significant
effect on the work to be done without interruption. This flow has to be smooth so that
developers do not need to wait to receive new items to develop from business analysts;
and that testers are also not idle just because there is no current item to be tested.
        </p>
        <p>In Case C, there had been a stage when this flow had been interrupted. The product
backlog had not grown in a constant pace. Upon investigation, it was observed that the
issue arose due to communication problems among the PO in the US and the program
managers in Turkey. Once they sensed the reason for the problem, they established a
communication matrix that had to be updated whenever the PO and the program
managers communicated with each other. After a while, the problem became so obvious
that the frequency of the communication was once or twice in a month between some
of the program managers and the product owner. A communication matrix is not a
direct solution for this challenge, but it is a very effective tool to observe communication
problems.</p>
        <p>Since the effectiveness of communication is considered a critical success factor in
agile software development and the effect of the communication matrix observed by
the Case C team, they started using it to observe all the interactions within the project.</p>
        <p>Consequently, Case C established a correlation between the growth of the product
backlog and the numbers in the communication matrix.</p>
        <p>Another solution for the continuous product backlog growth in the Case C, is the
conduct of regular product backlog grooming (PBG) meetings. The program managers,
scrum masters, developers, testers and the product owner are the members of PBG
meetings. Teams spend almost two hours a week for elaboration activities. Since it is
regular, even a two-hour-time makes a big difference in solving such a significant
problem.</p>
        <p>
          Nonfunctional retrospective meetings: Retrospective meetings are one of the ways
to transform good teams to great teams [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ]. It is one of the easiest ways to turn the
challenges into successful practices in agile software development. However, they may
easily turn into useless meetings.
        </p>
        <p>When the Case C quality assurance manager observed that none of the improvement
suggestions proposed in the retrospective meetings were implemented, he decided two
things: The first one was to open action items for each of the issues and assign the items
to team members using the Jira tool. The second one was to specify a team quality
criterion based upon the percentage of closed retrospective issues in Jira. Both these
approaches allowed the Case C teams to perform effective retrospective meetings and
observe the results very quickly.</p>
        <p>Ineffective review meetings: Conventional review meetings might be a waste of
time for software development teams in some cases. Especially when lots of ideas are
discussed, without a decision being made. The solution found by the Case G team was
to provide a tool support for design and code reviews. They utilized the Confluence
tool to review class and sequence diagrams in software design and the Crucible tool for
design and code reviews. They specified the rule of everyone on the team can comment
on the code parts and all the comments are seen by other reviewers. After this initial
review, final remarks are decided with a meeting if necessary.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Motivation problems and software quality: There are various reasons for motiva</title>
        <p>tional problems in software development teams.</p>
        <p>The Case G team members had suffered from high personnel turnover in the testing
team and this was not the only problem. They were in a continuous “fire-fighting”
reactive state, because of the bugs found in released versions of the product G.</p>
        <p>In such a case, it might be very difficult to notice the sources of the problem and
easy to blame other people working in the team. Eventually the Case G team noticed
that the problem mentioned above was due to a decrease in the motivation level of the
testers. The managers in the company were hiring successful, experienced and talented
developers to establish a strong testing team. However, they were assigned mostly
black-box manual testing roles which do not require good development skills but
require domain knowledge.</p>
        <p>The managers of the Case G have made a radical decision to quit manual testing and
abolished the test team. All of the testers were assigned to different parts of the
development team where there is no distinction among team members. Then, they were asked
to code the automated unit tests. It was mentioned that this had been one of the breaking
points for the Case G team in terms of moving towards agility. They resolved this
challenge by collaborative work and adopting shared responsibility.</p>
        <p>Ability to manage technical debt: Technical debt is evitable in software
development, but it can be managed. In some cases, team needs to develop quick solutions or
hot fixes which may cause technical debt. On the other hand, it is very easy to overlook
the created technical debt in daily life turmoil, if there is no specific mechanism to
control it.</p>
        <p>The solution that was found by the Case G team for this challenge by assigning the
responsibility of recovery from technical debt to the person who created it and
following the progress of such recoveries via a tracking system such as Jira.</p>
        <p>Working Solutions
Take the commitment of the customer for frequent meetings
Decide the frequency of the meetings
Involve customer and product owner to team discussions
Break down the user stories until the size of each is below a
threshold level
Define acceptance criteria for each user story
Define action items in issue or item tracking system for each of
the improvement items and assign that items to a person
Review all the previously specified improvement action items
before the retrospective meeting
Use tool support to review design and code
Let everyone in the team comment on the code parts and all the
comments seen by other reviewers
Decide final remarks with a short meeting
Combine test teams and development teams
Abandon manual testing except for the exploratory testing
Support collaborative work and shared responsibility
Give the responsibility to manage the technical debt to the person
who created it</p>
        <p>Make sure you recorded the technical debt to not to overlook it
The following challenges were observed in the projects; however, satisfactory solutions
have not been found for them yet.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Identification of the dependencies among design elements for change manage</title>
        <p>ment: Knowing the relationship between design elements has a significant impact on
identification of changes within an existing software system. On the other hand, the
larger the system, the more difficult it is to specify the relations among modules or
lower level design parts. In addition, teams mostly overlook and rely on personal
experiences for change impact analyses until the system grows to an unmanageable size.</p>
        <p>This was what happened in both Cases. The impact of new requirements on modules
and lower level module components were evaluated based on personal experiences. To
date, they have not experienced significant issues due to not establishing traceability.
But, this is a valid concern for them as their systems grow rapidly.</p>
        <p>
          Brown, Nord and Ozkaya emphasize the importance of architectural agility in
achieving success [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]. They suggest dependency analysis among architectural
elements and high-level design capabilities. We suggested this approach to both teams at
the multiple case study reporting phase. Unfortunately, this approach did not find much
interest by agile software developers in our cases. They found it very difficult to
establish a relationship matrix manually and maintain it with every change. Therefore, this
challenge remains valid and we feel that effective and practical ways to establish design
relations needs to be identified.
        </p>
        <p>The efficiency of the code comments: Code comments are significant especially
for the living software systems where a policy of little documentation is applied.
Today’s source control systems do not allow developers to check-out code parts without
any comments. But the efficiency of the code comments is not evaluated. There is a
need to identify and evaluate efficiency of code comments to increase the clarity of the
code especially at maintenance phase of a software development life cycle.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>Agile software development methods are frequently adapted in recent years by the
software community as they are seen as well solutions for software development problems.
Upon the introduction of this new approach to traditional software development
environments, researchers and practitioners started to deal with agile adaptation challenges.</p>
      <p>As most of the agile software development models are not highly prescriptive in
terms of adoption processes, the experience reports published in this topic remains as
an important problem for practitioners in specific contexts.</p>
      <p>In this paper, we briefly described the Software Agility Assessment Reference
Model (AgilityMod) the purpose of which is to assist software organizations in
assessing projects’ agility levels, indicating the gaps that prevent fully obtaining the
benefits of agile software development and introducing roadmaps in adopting agile
principles/practices. Secondly, based on the multiple case study that we had assessed software
projects’ agility with AgilityMod, we selected most successful two cases among the
eight cases. We presented the challenges that these cases had faced during agile
adaptation and the best solutions that worked very well for them. The major contribution of
this study is the insights provided to readers about real life challenges faced and how
these challenges were overcame. We also discussed two unresolved challenges that will
require further research.</p>
      <p>Further studies need to be performed for the discovery of efficient solutions for such
problems. We believe that the software industry will benefit from experience reports
discussing challenges observed and lessons learnt in different domains.</p>
      <sec id="sec-6-1">
        <title>ACKNOWLEDGMENTS</title>
        <p>This study is partially supported by Turkish Scientific and Technological Research
Council of Turkey (TÜBİTAK), grant number 113E528. This research is also supported
in part by Science Foundation Ireland under a co-funding initiative by the Irish
Government and European Regional Development Fund),and by Lero - the Irish Software
Research Centre (http://www.lero.ie) grant 10/CE/I1855 &amp; 13/RC/20194</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>T.</given-names>
            <surname>Dingsøyr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dybå</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. Brede</given-names>
            <surname>Moe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dingsøyr</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Dybå</surname>
          </string-name>
          ,
          <article-title>"</article-title>
          <source>Agile Software Development," Agile Software Development: Current Research and Future Directions, ISBN 978-3- 642-12574-4</source>
          . Springer-Verlag Berlin Heidelberg,
          <year>2010</year>
          , vol.
          <volume>1</volume>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>S.</given-names>
            <surname>Nerur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mahapatra</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Mangalaraj</surname>
          </string-name>
          ,
          <article-title>"Challenges of migrating to agile methodologies,"</article-title>
          <source>Communications of the ACM</source>
          , vol.
          <volume>48</volume>
          , pp.
          <fpage>72</fpage>
          -
          <lpage>78</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>B.</given-names>
            <surname>Boehm</surname>
          </string-name>
          ,
          <article-title>"Get ready for agile methods, with care,"</article-title>
          <source>Computer</source>
          , vol.
          <volume>35</volume>
          pp.
          <fpage>64</fpage>
          -
          <lpage>69</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T.</given-names>
            <surname>Stober</surname>
          </string-name>
          and
          <string-name>
            <given-names>U.</given-names>
            <surname>Hansmann</surname>
          </string-name>
          ,
          <source>Agile Software Development: Best Practices for Large Software Development Projects</source>
          vol.
          <volume>3</volume>
          : Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>J.</given-names>
            <surname>Highsmith</surname>
          </string-name>
          ,
          <article-title>"What Is Agile Software Development?,"</article-title>
          <source>The Journal of Defense Software Engineering</source>
          , vol.
          <volume>15</volume>
          , pp.
          <fpage>4</fpage>
          -
          <lpage>9</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Stapleton</surname>
          </string-name>
          ,
          <source>DSDM Dynamic Systems Development Method: the method in practice:</source>
          Cambridge University Press,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schwaber</surname>
          </string-name>
          ,
          <article-title>"Scrum development process," in Business Object Design</article-title>
          and Implementation, ed: Springer,
          <year>1997</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>134</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Aoyama</surname>
          </string-name>
          ,
          <article-title>"Agile software process model,"</article-title>
          <source>in Computer Software and Applications Conference</source>
          ,
          <year>1997</year>
          . COMPSAC'
          <fpage>97</fpage>
          .
          <string-name>
            <surname>Proceedings</surname>
          </string-name>
          .,
          <string-name>
            <surname>The</surname>
          </string-name>
          Twenty-First Annual International,
          <year>1997</year>
          , pp.
          <fpage>454</fpage>
          -
          <lpage>459</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          ,
          <article-title>Crystal clear: a human-powered methodology for small teams: Addison-</article-title>
          <string-name>
            <surname>Wesley Professional</surname>
          </string-name>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          ,
          <article-title>Agile software development: the cooperative game (agile software development series</article-title>
          ):
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          ,
          <article-title>Surviving object-oriented projects: a manager's guide: Addison-Wesley Longman Publishing Co</article-title>
          ., Inc.,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cockburn</surname>
          </string-name>
          ,
          <article-title>"Writing effective use cases, The crystal collection for software professionals,"</article-title>
          <source>ed: Addison-Wesley Professional Reading</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>K.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <article-title>Extreme programming explained: embrace change: Addison-</article-title>
          <string-name>
            <surname>Wesley Professional</surname>
          </string-name>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>K.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <article-title>"Embracing change with extreme programming,"</article-title>
          <source>Computer</source>
          , vol.
          <volume>32</volume>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>77</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Cusumano</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. B.</given-names>
            <surname>Yoffie</surname>
          </string-name>
          ,
          <article-title>"Software development on Internet time,"</article-title>
          <source>Computer</source>
          , vol.
          <volume>32</volume>
          , pp.
          <fpage>60</fpage>
          -
          <lpage>69</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>R.</given-names>
            <surname>Baskerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Levine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pries-Heje</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ramesh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Slaughter</surname>
          </string-name>
          ,
          <article-title>"How Internet software companies negotiate quality,"</article-title>
          <source>Computer</source>
          , vol.
          <volume>34</volume>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>57</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>R.</given-names>
            <surname>Baskerville</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Pries-Heje</surname>
          </string-name>
          ,
          <article-title>"Racing the E-bomb: How the Internet is redefining information systems development methodology," in Realigning research and practice in information systems development</article-title>
          , ed: Springer,
          <year>2001</year>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Highsmith</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Orr</surname>
          </string-name>
          ,
          <article-title>Adaptive software development: a collaborative approach to managing complex systems: Dorset House Pub</article-title>
          .,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>A.</given-names>
            <surname>Hunt</surname>
          </string-name>
          ,
          <article-title>The pragmatic programmer: from journeyman to master: Addison-</article-title>
          <string-name>
            <surname>Wesley Professional</surname>
          </string-name>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Palmer</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Felsing</surname>
          </string-name>
          ,
          <article-title>A practical guide to feature-driven development:</article-title>
          <source>Pearson Education</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>S. W.</given-names>
            <surname>Ambler</surname>
          </string-name>
          , Agile modeling: Wiley,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>M.</given-names>
            <surname>Poppendieck</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Poppendieck</surname>
          </string-name>
          ,
          <article-title>Lean software development: An agile toolkit: Addison-</article-title>
          <string-name>
            <surname>Wesley Professional</surname>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>K.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <article-title>Test-driven development: by example: Addison-</article-title>
          <string-name>
            <surname>Wesley Professional</surname>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. (
          <year>2001</year>
          ). Agile Manifesto. Available: www.agilemanifesto.org
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. L. T. Heeager,
          <article-title>"How Can Agile and Documentation-Driven Methods be Meshed in Practice?," in Agile Processes in Software Engineering</article-title>
          and Extreme Programming, ed: Springer,
          <year>2014</year>
          , pp.
          <fpage>62</fpage>
          -
          <lpage>77</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>N.</given-names>
            <surname>Sekitoleko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Evbota</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Knauss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sandberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. H.</given-names>
            <surname>Olsson</surname>
          </string-name>
          ,
          <article-title>"Technical Dependency Challenges in Large-Scale Agile Software Development," in Agile Processes in Software Engineering</article-title>
          and Extreme Programming, ed: Springer,
          <year>2014</year>
          , pp.
          <fpage>46</fpage>
          -
          <lpage>61</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27. N.
          <string-name>
            <surname>Brown</surname>
            , R. Nord,
            <given-names>and I. Ozkaya</given-names>
          </string-name>
          ,
          <article-title>"Enabling Agility Through Architecture,"</article-title>
          <source>DTIC Document2010.</source>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>M. Kaisti</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Mujunen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Mäkilä</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Rantala</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Lehtonen</surname>
          </string-name>
          ,
          <article-title>"Agile principles in the embedded system development," in Agile Processes in Software Engineering</article-title>
          and Extreme Programming, ed: Springer,
          <year>2014</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>31</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>O.</given-names>
            <surname>Liskin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kiesling</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Schneider</surname>
          </string-name>
          ,
          <article-title>"Why we need a granularity concept for user stories," in Agile Processes in Software Engineering</article-title>
          and Extreme Programming, ed: Springer,
          <year>2014</year>
          , pp.
          <fpage>110</fpage>
          -
          <lpage>125</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>B.</given-names>
            <surname>Ramesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Cao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Baskerville</surname>
          </string-name>
          ,
          <article-title>"Agile requirements engineering practices and challenges: an empirical study,"</article-title>
          <source>Information Systems Journal</source>
          , vol.
          <volume>20</volume>
          , pp.
          <fpage>449</fpage>
          -
          <lpage>480</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>K.</given-names>
            <surname>Conboy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Coyle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Pikkarainen</surname>
          </string-name>
          ,
          <article-title>"People over process: key people challenges in agile development</article-title>
          ,"
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>"</surname>
            <given-names>ISO</given-names>
          </string-name>
          /IEC 15504-2:2003 Information technology --
          <string-name>
            <surname>Process</surname>
          </string-name>
          assessment -- Part 2:
          <string-name>
            <surname>Performing</surname>
            <given-names>an assessment</given-names>
          </string-name>
          ," ed,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>"</surname>
            <given-names>ISO</given-names>
          </string-name>
          /IEC 15504-5:2012 Information technology --
          <string-name>
            <surname>Process</surname>
          </string-name>
          assessment -
          <article-title>- Part 5: An exemplar software life cycle process assessment model,"</article-title>
          ed,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34. J. W. Creswell, Research design:
          <article-title>Qualitative, quantitative, and mixed methods approaches: Sage Publications</article-title>
          , Inc,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>R. K. Yin</surname>
          </string-name>
          ,
          <source>Case study research: Design and methods: Sage publications</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36. Ö.
          <string-name>
            <surname>Özcan-Top</surname>
            , and
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Demirors</surname>
          </string-name>
          ,
          <article-title>"Application of a software agility assessment model-AgilityMod in the field"</article-title>
          .
          <source>Computer Standards &amp; Interfaces</source>
          ,
          <volume>62</volume>
          ,
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37. SO/IEC, "IS 14143-5
          <string-name>
            <given-names>Information</given-names>
            <surname>Technology - Software Measurement - Functional Size</surname>
          </string-name>
          Measurement -
          <article-title>Part 5: Determination of Functional Domains for Use with Functional Size Measurement,"</article-title>
          ed,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>K. S. Rubin</surname>
          </string-name>
          , Essential Scrum:
          <article-title>A Practical Guide to the Most Popular Agile Process</article-title>
          :
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <surname>Ö. Özcan</surname>
            <given-names>Top</given-names>
          </string-name>
          ,
          <article-title>"AgilityMod: Software Agility Assessment Reference Model v3.0," Informatics Institute, METU/II-TR-</article-title>
          <year>2014</year>
          -392014.
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40. E.
          <string-name>
            <surname>Derby</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Larsen</surname>
            , and
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Schwaber</surname>
          </string-name>
          ,
          <article-title>Agile retrospectives: Making good teams great: Pragmatic Bookshelf Raleigh</article-title>
          ,
          <string-name>
            <surname>NC</surname>
          </string-name>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>