ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
BOOK CHAPTER │ Requirement Enginering in the Cloud
dx.doi.org/10.22624/AIMS/REBK2022-P7
Agile Software Development Methodologies
in Cloud Computing
Justin Onyarin Ogala & Mughele Ese Sophia
Department of Computer Science
Faculty of Computing,
University of Delta,
Agbor, Nigeria
E-mails: justin.ogala@unidel.edu.com; s.mughele@unidel.edu.ng
ABSTRACT
In the software sector, agile development approaches have a lot of promise. Agile
development methodologies are highly realistic in their awareness of the fact that
business requirements change all the time. By executing software releases
iteratively and collecting user feedback more often, agile development approaches
maximize the benefits of cloud computing. This study is a cloud computing and
Agile Methods analysis. This article examines Agile management and development
approaches, as well as their benefits when used in conjunction with cloud
computing. By executing software releases iteratively and obtaining user feedback
very often, agile development practices maximize the benefits of cloud computing.
The basic proposition of this study is that Small and medium enterprises should
use a framework that guides their migration to cloud computing to reduce all the
issues that come with cloud computing infrastructures
Keywords: Agile Methodologies, Cloud Computing, Software Development,
Integration
67
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Introduction
Agile methodology is a project management approach that is commonly used in
software development. It uses incremental, iterative work cadences known as
sprints to help teams respond to the unpredictability of software development.
Agile approaches were developed in response to older methods' incapacity to
embrace change in a fast-paced corporate environment that requires software to
satisfy its requirements rapidly [2].
Agile approaches are software strategies that are low in weight. The agile
development technique aims to give several chances to evaluate a project's
direction throughout its development lifespan. Agile development methodologies
are being used in businesses by highly creative people who have recognized the
flaws in traditional software management procedures [1]. Many firms all around the
globe are experimenting with the many agile development methodologies that are
available.objective of improving the teaching and learning process and enhancing
the quality of education. (www.google.com). It focuses on the implementation of
tools and media that enhance communication of knowledge, its development and
knowledge exchange. It produces unique effect in the educational sector by
creating a student- centered learning environment.
Agile Development with Cloud Computing:
Agile development approaches and cloud computing are quite complementary.
Cloud Services are proud of their ability to quickly respond to customer needs,
offering applications whenever and to whatever degree they are required. In the
identification of requirements, agile methodologies place a high value on user
collaboration. The agile software development methodology tries to break down
project requirements into small, manageable chunks. This method ensures that
users are provided with feedback on all project tasks. Individual segments may be
designed, created, and tested to ensure high-quality standards and few
bottlenecks. Every component's development becomes a single "iteration"
procedure as a result.
68
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Furthermore, the development of a collaborative relationship between application
developers and end-users is emphasized heavily in lean agile software methods [2,
4]. The end-user can see the entire development process. At all phases of
development, feedback is solicited, and modifications are made as a result. A highly
dynamic and collaborative environment is created by combining lean agile
development and cloud computing. When developers finish a product, they may
publish it as a cloud service, allowing users to evaluate it immediately and provide
useful feedback. As a result, a lengthy feedback loop can be avoided, lowering the
chances of requirements being misstated or misinterpreted [4]. This saves the
software development company a lot of time and works while also enhancing enduser satisfaction.
End-user demands are merged more coherently and efficiently with software
delivery, thanks to the agile methodology of demand-driven production (as a cloud
service). In cloud computing, this strategy encourages more innovation as well as
requirement discovery and validation. Cap Gemini, in collaboration with HP,
researched in 2010 to assess industry trends linked to the use of agile
methodologies using cloud computing deployment model technologies. Around
30,000 cloud professionals, IT managers, engineers, and quality assurance
managers from top companies spanning Asia, Europe, and North America were
polled for the study [4]. As cloud services grow more ubiquitous, organizations
are focusing on implementing lean-agile approaches to streamline operations,
according to the survey.
Around 60% of the companies that participated in the survey expect to employ
lean agile methodologies as part of their operations for prospective cloud projects
and services [4]. This technique will also help firms produce timely user input and
check quality standards at each stage of development. As a result, deploying lean
agile software development in conjunction with the cloud computing paradigm has
several major advantages, including the ability to improve an organization's IT
portfolio for better service delivery while cutting costs.
69
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Technical Overview
The development approach chosen is dependent on the project's and client's
accuracy. This can range from traditional 'waterfall' approaches (in-depth definition
phase, build phase, testing phase, and then delivery) to more agile strategies that
include frequent releases, continuous integration, continuous delivery, ongoing
client involvement, iterative functional deliveries, and regular requirement reviews.
A. Why Agile Development?
During the development lifecycle, the agile development technique tries to give
several opportunities to analyze the course of a project. This is accomplished by
teams presenting a shippable piece of work after regular work cadences known as
sprints or iterations. The agile approach may be described as "iterative" and
"incremental" since it focuses on the repetition of smaller work cycles as well as
the functional output they produce. Development teams only have one shot to get
each part of a project right in the waterfall. Every element of requirements,
development, design, and so on is examined repeatedly throughout the lifecycle
under an agile paradigm [5].
Figure 1: Agile Development Methodology Lifecycle
70
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
B.
Agile Methodologies Fundamental Values
a) Individuals are more essential over processes and tools,
b) It's more vital to have working software than it is to have extensive
documentation.
c) Collaboration with customers is more vital than contract negotiations [4].
d) It's more vital to respond to change than to stick to a plan.
These fundamental values are referred to as the Agile Manifesto [6] and are made
up of four core ideals and supporting principles that guide the Agile software
development process. The four principles are used differently in each agile
approach, but they all rely on them to drive the creation and delivery of highquality, functioning software. There is no one-size-fits-all approach to agile
development. Crystal Methods; SCRUM; Dynamic Systems Development Method
(DSDM); Extreme Programming (XP); Feature Driven Development (FDD); and
Adaptive Software Development (ASD) are a few examples of agile methodologies
that share many of these key concepts (Highsmith 2001, Sutherland 2001) [6].
Benefits of Cloud Computing in Business
Cloud computing, often known as the "public cloud" paradigm, is the process of
executing workloads remotely via the internet in a commercial provider's data
center. Amazon Web Services (AWS), Salesforce's CRM system, and Microsoft
Azure are all examples of popular public cloud products. Cloud computing is the
use of a computer network to provide computational resources on demand. It
allows duties to be delegated to software and service arrangements through a
network. The cloud is a collection of servers.
C.
71
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Figure 2: Cloud Computing Architecture
Cloud computing is a new type of IT infrastructure that allows companies to
execute their programs on a shared data center. Unlike conventionally licensed
software, cloud technology improves efficiency by eliminating inefficient software
development, testing, deployment, and outage processes [7].
72
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
The following are some of the major advantages of cloud computing:
a) It allows you to save a lot of money because it doesn't require any actual
hardware.
b) With cloud computing, you can instantly launch your service with fewer
clicks.
c) It is easy to achieve backup and recovery with automatic software
integration.
d) The cloud provides nearly infinite storage space.
e) There is low-cost software as well as full internet security.
f) It allows for a pay-per-use model to be implemented.
g) Provides Resilient Computing Services
Cloud computing has progressively become a fad among businesses all over the
world as a result of these benefits. Gartner predicts that by 2015, cloud
computing will be the dominant method of application delivery. As a result, the
majority of CIOs are preparing their IT infrastructure to support the cloud.
Integrating Cloud Computing With Agile Development
Cloud computing provides the ideal environment for agile projects. It enables you
to swiftly deliver valuable functionality to your consumers, collect real-time
feedback, and make quick adjustments in response to that input.
73
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Figure 3: Agile development process at salesforce.com. [15]
Because of the high cost of distribution, this quick development cycle, which is an
intrinsic feature of cloud computing, is hard to accomplish in a traditional
development approach. If the experience of salesforce.com has taught us anything,
it's that cloud computing is the best setting for agile development. It enables you
to swiftly deliver valuable functionality to your clients, gathers immediate feedback,
and make rapid modifications in response to that input. Because of the high cost of
distribution, these rapid development cycles, which are an inherent advantage of
cloud computing, are hard to accomplish in the traditional development paradigm.
74
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
The team recognized critical aspects for success and identified adjustments that
would have made the transition easier while integrating agile development to
salesforce.com: Salesforce.com will continue to expand its use to every team
inside the firm with agile development in place. Beyond its four walls,
salesforce.com's message is one of synergy: the Force.com platform and agile
development work together to create something more than the sum of its parts.
D.
Benefits of Cloud Computing with Agile Development:
a) 75 percent reduction in development cycle time.
b) Workloads are more consistent.
c) Increased workload utilization
d) Implementing large-scale software systems with a set number of
developers.
e) Higher quality as a result of earlier consumer feedback.
f) Management and development strategies are more adaptable to change.
g) Reduce the cost of transferring data between users.
h) Physically bring people closer together.
i) Reduce the amount of time that passes between making a decision and
witnessing the results of that decision.
j) Replace paperwork with face-to-face conversations and whiteboards.
How Cloud Computing with Agile Development secures your
business
Cloud vendors update security measures regularly to prevent consumers from
cyber-attacks. As a result, one of the most significant benefits of cloud computing
is security.
E.
Consider the cloud to be a bank. Your money is safer in a bank account than in
your kitchen cookie jar. Similarly, data stored on a cloud service provider is safer
than data stored on an insecure network at home or work. Because of the
security benefits, several of the world's top corporations have transferred their
operations to the cloud using after thoroughly testing its performance and
security.
75
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
F. Issues in Adopting Cloud Computing for Agile Application
Cloud technology adoption and migration must be managed with development
tools. Agile methodologies can be handled using certain open source tools,
regardless of whether cloud deployment is adopted (public, private, or hybrid). By
implementing software releases iteratively and gathering user feedback, agile
development activities use the potential offered by cloud computing, making it
easier for businesses to review the quality segment of the improvement[16]. Table
1 summarizes how cloud computing improves the productivity of agile software
development considering the issues in adoption.
76
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Table 1: How Cloud Computing Improves The Productivity Of Agile
Software Development
Cloud computing and Agile The agile method's goal is to eliminate latency in
developments are both
software development phases. However, cloud
going on at the same time.
computing automates multiple activities by allowing
software development teams to be more effectively
utilized.
Cloud Computing research The team can generate faster products with manual
leads to innovation.
testing and develops models for innovation by
integrating agile software development and cloud
computing.
In cloud computing,
The testing phase of the software development
iterative development with cycle is an iterative process in which the team must
continuous integration is
fix any bugs discovered during testing. The agile
the way to go.
team has a large number of virtual machines, which
helps to reduce cycle times. As a result, the
virtualization of the cloud optimizes integration
over time.
Using Cloud Computing to Many cloud-based Software as a Service (SaaS)
increase continuous
options are available, and Agile development may
delivery platforms in agile
make use of these services in conjunction with
development
virtualization.
Facilitating code branching
Development takes longer than a release in agile
with Cloud computing
approaches. The usage of code refactoring will be
I
expanded and deployed in production. The cost of
renting servers for such uses may be minimized
using Cloud computing.
Using Cloud Computing to The software development teams in an agile
environment can leverage cloud computing
provide the essential
virtualization to access an unlimited number of
servers for agile
servers. The use of cloud computing services
development.
decreases reliance on physical servers. Teams will
be limited to only one server per development if
they do not use the cloud's
77
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
Recommendation For Future Work
Software applications are now distributed using cloud computing to increase
processing and improve the production of cloud services. By executing software
releases iteratively and gathering user feedback more regularly, agile development
approaches maximize the perspective of cloud computing in software
development. When formulating a cloud computing strategy, software
development companies must take into account the lean agile development
approach.
A conceptual framework is presented in this research; however, it must be
empirically demonstrated through future inquiry. The basic proposition of this
study is that Small and medium enterprises should use a framework that guides
their migration to cloud computing to reduce all the issues that come with cloud
computing infrastructures.
Conclusion
Agile methodologies are software approaches that are light in weight. Cloud
computing makes a significant difference in this aspect. Cloud computing eliminates
the time-consuming distribution constraints that hamper agile development in
many cases. There are no fixes to install, and there are no reinstallations required.
New releases are deployed on hosted servers and made available to users
immediately with cloud services. Agile development methodologies are being used
in businesses by highly creative people who have recognized the flaws in
traditional software management procedures. Many firms all around the globe are
experimenting with the many agile development methodologies that are available.
By executing software releases iteratively and obtaining user feedback very often,
agile development practices maximize the benefits of cloud computing.
78
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
References
[1] Agile Alliance. (2001, February). History: The Agile Manifesto. Retrieved Sept
22, 2004, from the World Wide Web: http://agilemanifesto.org/history.html
[2] Amber, Scott. (2002). When and when aren‟t you Agile Modeling? Retrieved
Sept
22,
2004,
from
the
World
Wide
Web:
http://www.agilemodeling.com/essays/whenAreYouAgileModeling.html
[3] Aoyama, Mikio. (1998, November). IEEE Software: Web-based Agile
Software Development. Retrieved Sept 22, 2004, from the World Wide
Web: http://rockfishcs.cs.unc.edu/COMP290-S02/Aoyama-98.pdf
[4] Lean-Agile Methodologies Accentuate Benefits of Cloud Computing. Web:
www.thetechnologygurus.com/.../LACC_white_paper_ed_v5. 320180428.
[5] Chromatic. (2001, May). O‟Reilly Open Source Convention: An
Introduction to Extreme Programming. Retrieved Sept 22, 2004, from the
World
Wide
Web:
http://linux.oreilly.net.com/pub/a/linux/2001/05/04/xp_intro.h Html
[6] Cockburn, Alisair., Highsmith, Jim. (2001, September). Agile Software
Development: The People Factor. Retrieved Sept 22, 2004, from the
WorldWideWeb: http://www.adaptivesd.com/Articles/IEEEArticle2Final.pdf
[7] Cockburn, Alistair. (2001, October). Philosophy of crystal Methodologies.
Retrieved Sept 22, 2004, from the World Wide Web:
http://crystalmethodologies.org/philosophy.html
[8] Control Chaos. (2001). SCRUM Software Development Process. Retrieved
Sept
22,
2004,
from
the
World
Wide
Web:
http://www.controlchaos.com/scrumwp.htm
[9] Control Chaos. (2002). What is Scrum? Retrieved Sept 22, 2004, from the
WorldWideWeb:http://www.controlchaos.com/scrumo.htm
[10] Disaster. (2001, July). Recipes for Disaster. Retrieved Sept 22, 2004, from
the
World
Wide
Web:http://www.cio.com/archive/070101/secret_sidebar_2_content.html
[11] DSDM. (2001). Overview: Why is DSDM different. Retrieved Sept 22,
2004,
from
the
World
Wide
Web:http://www.dsdm.org/en/about/overview.asp
79
ACity-IEEE- SMART--CRACC-ICTU-Foundations Series
Requirement Engineering Edited Book Chapters
[12] Fowler, M. (2000, December). Put your process on a diet software
development. Retrieved Sept 22, 2004, from the World Wide
Web:http://www.sdmagazine.com/articles/2000/0012/0012a/0012a.htm
[13] "Agile Software Development, Principles, Patterns, and Practices," by Robert
C. Martin, Prentice-Hall.
[14] "Agile Software Development with SCRUM," Ken Schwaber, Mike Beedle,
Prentice-Hall.
[15] Salesforcecom. (2013). Agile Development Meets Cloud Computing for
Extraordinary Results at salesforce com. Retrieved 3 February 2022, from
http://www.developerforce.com/media/ForcedotcomBookLibrary/WP_Agile_
112608.pdf
[16] Jain, N., & Dubey, S. (2014). Agile Development Methodology with cloud
computing (Vol. 3). International Journal of Engineering and Computer
Science.
80