Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Challenges of Agile Software Development
1. Running head: CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 1
Challenges of Agile Software Development
Wei Li
The George Washington University
2. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 2
Challenges of Agile Software Development
Introduction
Agile Software Development(ASD) is a collection of methods evolved primarily to satisfy
dynamic and volatile development environments. The Agile Manifesto indicates spirits of ASD,
“Individuals and interaction over processes and tools; working software over comprehensive
documentation; customer collaboration over contract negotiation; responding to changes over
following a plan” (Beck et al, 2001). Based on the proclamation, practitioners created several
agile approaches, Extreme Programming(XP), Scrum, Dynamic System Development(DSDM),
and Lean Software Development(LD). All mentioned methods can be called ASD. According to
Bustard, Wilkie, and Greer (2013), ASD has become the “mainstream” from around 2010. Their
study shows that most organizations have benefited from ASD, especially small companies.
Nonetheless, practitioners still know little about the role of ASD in complex and flexible
environments (Inayat, Salim, Marczak, Daneva, & Shamshirband, 2014). Therefore, the aim of
the present paper is to identify challenges and limitations of ASD to provide a comprehensive
understanding for researchers and practitioners. This literature review will map out experimental
and empirical findings in published works, to provide inspirations and directions for further
research.
A generalized agile development process involves two sides, customers and software
producers; this paper narrows the scope and concentrates on the last side. This article will focus
on employment challenges of ASD about practitioners. In other words, this literature review
mainly discusses challenges of intrinsic principles and applicabilities of ASD, and not includes
customer side problems, such as customer unavailability and contractual issues. Moreover, this
3. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 3
paper doesn’t address general development problems during agile development processes, such
as budget and schedule estimation, inappropriate architecture and management issues.
Discussion
With the increasing employment of ASD, constraints and restrictions of ASD become
more and more striking. Bustard et al. (2013) complained that ASD need a clearer definition to
lead complicated and volatile demands. Large proportions of corporations combine various agile
methods or even modify and formulate their particular efficient methodology in practice due to
the overarching and abstract agile principles. Thus, further elaboration of principles and
approaches is essential.
In fact, Williams (2012) collected comments from 326 practitioners to try to revise the
original principles. He ranked supports to six levels and updated nine of twelve principles. In the
first level, remove principle three since it has the highest correlations with principle one. The
deletion makes Agile Principles emphasize the supreme priority in development, deliver valuable
software. In the second level, supplement “removing obstacles” to principle five to make the
meaning comprehensive and clear. Also, embody the phrase “working software” and use
iterations to detail the whole process in principle seven. Furthermore, add content about feedback
and emphasize sharing successful experience in principle 12. In the third level, principle nine
remains original content. In the fourth level, emphasize changing requirements in the start stage
of iteration to avoid effort wasting. In the fifth level, utilize the whole team instead of developers
when communicating with customers in principle four. Moreover, use synchronous
communication to substitute face-to-face communication and auxiliary appropriate
documentation in principle six. Add “dedicated time” to standard process in principle eight. In
the sixth level, add the condition “by a vision” in principle 11, to provide final goals for
4. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 4
iterations. As a result, most respondents accepted this revision. However, the industry has little
experience on verifying and approving the revised principles.
Besides unrevised principles, Turk, France, and Rumpe (2014) reviewed six principal
limitations based on analyzing published works. First, ASD cannot operate well in distributed
development environments. Multinational organizations require team members working in
separated locations, even different countries, which makes face-to-face communication
inconvenience and inevitably affects rapid iterations of software. Second, ASD is not suitable for
subcontracting. Outsourcing of software always grounded in contracts with definite
requirements. Stiff terms restrict flexibilities of ASD and result in delay deliveries or lapses.
Third, ASD has limited support for developing reusable artifacts. Reusable software emphasizes
quality control and provides essential foundations for other applications. Even small issues in
iterative software will exert exponential impacts on programs grounded in the framework or tool.
Fourth, ASD is devised for small teams thus exist inherent limitations for large projects. Fifth,
ASD has exceptionally high risks in developing safety-critical software. Sixth, large and
complex software needs to have stable and well-designed architecture. Developers will pay
enormous prices if they refactor codes regarding the underlying structure. Additionally, authors
suggest a possible solution for the last four limitations, employing both ASD and traditional
software development (TSD) in the same project. From their perspective, developers should find
the balance between ASD and TSD; ASD should practice for multiple environments to varying
degrees. Turk et al. (2014) claimed that purely agile process cannot adapt to diverse situations on
account of rigid constraints in executing approaches.
On top of limitations, for distributed development, Ramesh, Cao, Monan, and Xu (2006)
studied empirical practices of ASD in three geographically distributed organizations, Telco,
5. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 5
Manco, and Consult. They discovered five available findings for distributed environments. Those
resolutions haven't followed the strict original agile method but tailored to adopt particular
situations. The most critical focus is that all the adjustments follow lightweight spirits of ASD,
which provide valuable references to improve original agile principles. First, schedule iterations
purposely to finalize requirements and document requirements to different degrees. Planned
iterations can contribute to a stable frame for further development. Lightweight documentation
between formal documentation and informal communication offer more effects on distributed
development. Second, supplement means to share knowledge, such as building a platform to
report and share product or process issues. Also, developers can focus on well-understood and
precise requirements instead of abstract and critical conditions. Third, facilitate communication.
For instance, managers schedule separate meetings for coastal and overseas groups in regular
time every day, supplement official teams to coordinate communication in different locations.
Practitioners can also utilize SMS or online chat service to keep constant communication.
Fourth, establish trust between customers and developers, create solid team culture, and make
connections with senior managers and the development team. Trust among all participants can
promote the efficient and effectiveness of ASD. Fifth, ensure quality between teams in different
locations. QA team should examine projects quality before delivering between coastal and
foreign groups to enhance comprehensive agile cooperation. In fact, the successful experience of
those three organizations is not based on pure ASD, but tailored ASD. It seems this study
provides solutions for the employment of ASD in distributed development environment.
However, in this study, three organizations even have distinct approaches to solving particular
problems. How to summarize and explore those experience to general guidance approaches? It’s
another significant challenge of ASD.
6. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 6
Inayat et al. (2014) conducted a systematic review of works of literature between 2002
and 2013. The primary challenge they found is the documentation issue. One of twelve principles
is, “The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation” (Beck et al., 2001). That is, ASD doesn’t
recommend documentation and advocate direct communication. However, this principle will
restrict the employment in some situations. When requirements of a complex project have
changed, but, client representative is unavailable. When teams distributed in different locations
and verbal communication has low efficiency. When work group is large enough that developers
cannot work in the same office. Comparatively, according to the practical experience in Telco,
minimal documentation was more helpful than simply informal communication (Ramesh et al.,
2006). Nevertheless, the original intention of ASD is to focus on working software and avoid
comprehensive documentation (Beck et al., 2001). Therefore, the degree to use documentation is
another challenge of ASD.
To look out practical issues from industry, Gregory, Barroca, Taylor, Salah, and Sharp
(2015) developed a "Challenge Wall" online and collected 193 comments from practitioners
between 2013 and 2014. They use a thematic analysis method to divide those challenges into
seven themes and 27 sub-themes. Moreover, they compare those challenges to academic research
interests in publication works. There are four observations. First, some challenges have persisted
for many years and are hard to resolve successfully, such as measuring the agile value, which
need more detailed research studies. Second, some challenges have shifted but practitioners
concern little, and researchers should adjust their focus to appropriate areas. Third, some
challenges have not been extensively investigated, such as failure study, business engagement
and transformation, the impact of claims and limitations. Fourth, some challenges in the
7. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 7
academic area already have mature solutions, but practitioners did not aware. Thus, the issue
cannot be neglected is that existing a huge break between the academic circle and industry.
Conclusion
This paper aims to classify various challenges and issues that restrict ASD. This literature
review includes seven papers published from 2006 till 2015. This article identified three
challenges of ASD and several practices to solve them. Those challenges include vague
definition and principles, less support in complex environments, and the gap between academic
area and the industry.
Besides findings, this literature has two limitations. First, since most of the studies are
based on interviews and feedbacks from practitioners, the result can be affected according to
communication skills and knowledge levels of interviewers. However, results still have realistic
meaning practitioners and researchers. Second, two papers collect and analyze challenges from
direct feedbacks and haven't explored the underlying causes of those challenges. This kind of
overlook may affect the accuracy of this study.
Finally, this review provides several implications for further study. First, further revise
agile principles. Original principles are antiquated and not fit for the present software industry.
Even though Williams (2012) offered a revised version of Agile Principles, further studies still
need to verify and improve those principles. Second, ASD needs to tailor to adapt multiple
situations. ASD can work well in small groups, but practitioners still have little experience about
employment in large-scale projects, distributed development, reusable software and security-
concerned application. Further study should focus on revising detailed approaches for multiple
conditions. On the other hand, researchers should summarize and analyze methods from Ramesh
et al. (2006), and try to find out a set of generalized methods for distributed development. Third,
8. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 8
researchers should seriously consider suggestions from Turk et al. (2014), hybridization of ASD
and TSD, this is a brand-new issue for the academic area. Fourth, Gregory et al. (2015) identifies
the gap between industry and academic circle. Research studies should pay more attention to
making up this interval and resolving authentic issues.
9. CHALLENGES OF AGILE SOFTWARE DEVELOPMENT 9
References
Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., ... &
Thomas, D. (2001). The agile manifesto.
Bustard, D., Wilkie, G., & Greer, D. (2013, April). The maturation of agile software
development principles and practice: observations on successive industrial studies in
2010 and 2012. In Engineering of Computer Based Systems (ECBS), 2013 20th IEEE
International Conference and Workshops on the (pp. 139-146). IEEE.
Gregory, P., Barroca, L., Taylor, K., Salah, D., & Sharp, H. (2015). Agile challenges in practice:
a thematic analysis. In Agile Processes, in Software Engineering, and Extreme
Programming (pp. 64-80). Springer International Publishing.
Inayat, I., Salim, S. S., Marczak, S., Daneva, M., & Shamshirband, S. (2014). A systematic
literature review on agile requirements engineering practices and challenges. Computers
in human behavior.
Ramesh, B., Cao, L., Mohan, K., & Xu, P. (2006). Can distributed software development be
agile?. Communications of the ACM, 49(10), 41-46.
Turk, D., France, R., & Rumpe, B. (2014). Limitations of agile software processes. arXiv
preprint arXiv:1409.6600.
Williams, L. (2012). What agile teams think of agile principles. Communications of the
ACM, 55(4), 71-76.