Agile Software Development: An Overview & Methodologies: Hitik Patel Vishv Patel Arpit Rabadiya

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Agile Software Development: An Overview &

Methodologies
Hitik Patel Vishv Patel Arpit Rabadiya
Department CSE Department CSE Department CSE
Institute of Technology Institute of Technology Institute of Technology
Nirma University Nirma University Nirma University
Ahmedabad, India Ahmedabad, India Ahmedabad, India
[email protected] [email protected] [email protected]

Abstract—Agile techniques enable a team or organization to quickly, and requirements are ”changing at rates that swamp
implement a particular set of policies and procedures based traditional methods” (Highsmith et al., 2000). In order to
on the kinds of systems they develop and the company’s or adjust to the impending change, some experts created their
group’s values and culture. More precisely, each team or business
employs a variant of the agile methodology that is specially own procedures and methodologies. The values and ideals
designed to meet the demands of the group or company. There of agile methodologies are shared. Many apply the iterative
is disagreement over the ”goodness” of a particular strategy, or improvement that was first described in 1975 [Basili and
how much it helps an organization accomplish its goals. Many Turner, 1975].
of the agile assessment techniques now in use either concentrate Based on Cockburn and Highsmith (2001a), the major-
on comparative analysis or have a narrow scope and application.
In this paper, we suggest an all-encompassing, methodical, and ity of Agile approaches are outdated. Agile approaches are
organized approach to evaluating the ’quality’ of agile techniques. differentiated from conventional approaches by their focus
Three criteria are used to evaluate an agile approach: (1) and values. Agile requires an analysis of earlier approaches.
appropriateness; (2) the organization’s capacity to maintain the Enhancing the software process draws on previous failures and
ideals and processes outlined in the method; and (3) technique accomplishments.
effectiveness. It is advised that we use the Objectives, Principles,
and Practices (OPP) Framework as a guide for our review. The Beck thinks that Royce (1970) first utilized the Waterfall
agile philosophy’s goals, guiding principles that support the goals, Model to evaluate and design for user needs. A thorough user
practices that exemplify the principles, connections between the requirements study was the first step. Engineers would list all
goals, guiding principles, and practices, and metrics for assessing of the features, functional requirements, and non-functional
how much an organization supports the application and efficacy requirements following months of interaction with users and
of that practice are all identified within the Framework. In this
study, we report our method for solving the problem along with customers. With the help of this well-documented expertise,
some preliminary results and future directions. engineers work with database and data structure specialists to
create the ideal system design. Perfected system is tested and
I. I NTRODUCTION released after programmers implement the well-documented
Let’s start by taking a look at the beginnings of agile design [Beck, 1999a].
software development, its evolution throughout the years, Not every aspect of the system is defined by spiral
as well as its accomplishments in the world of computer models. Spiral approaches requirement prioritization by risk,
technology before we move on to defining agile software whereas iterative development constructs the system based
development and figuring out exactly what agile software on functionality. Although Waterfall was less flexible than
development is. spiral and iterative development, some practitioners felt that
these methods were still too slow to adapt to shifting business
needs. Compared to today, iterative projects were less Agile
A. History due to protracted planning and analysis phases and a focus on
According to Beck et al. (2001), agile methodologies aim to documentation.
provide a substitute for documentation-intensive, heavyweight The development industry was evolving, and although
software development processes. In traditional approaches, conventional approaches were still widely used, it was clear
needs are first elicited and documented, followed by high- that they were not always effective in all circumstances. It
level design, development, and inspection for architecture was acknowledged by practitioners that in order to effectively
and other projects. The mid-1990s saw some practitioners handle evolving requirements, new techniques were required.
consider these early growth periods to be unachievable or Furthermore, according to Cockburn and Highsmith (2001a),
extremely arduous [Highsmith, 2002a]. Consumers are unable these new practices need to be flexible and people-oriented,
to express their needs clearly up front while expecting more providing ”generative rules” as opposed to ”inclusive rules,”
from software, industry and technology are evolving too which easily disintegrate in a dynamic setting. Cockburn and
Highsmith enumerate the contemporary difficulties that the
conventional approaches face:
• Following the original plan has not been as important as
ensuring the customer is satisfied.
• Change is inevitable; the focus should be on improving
coping mechanisms and lowering the cost of change
during the development process rather than trying to
prevent it.
• ”Business failure, or being insensitive to business condi- Fig. 1. Process of software development
tions, is the result of eliminating change early.”
• ”The market expects and demands cutting-edge, superior
software that fulfills its needs—and soon.” C. Traditional development methods
B. Background And Progress
The software crisis has helped software engineering
Software engineering acts as the framework for computer mature in some ways. Software development started using a
science engineering methodologies by providing the proce- repetitive process with documentation in the 1990s, based on
dures and standards that must be followed when developing the philosophy of software engineering. A few classic models
software[1]. were released at that time. As the exemplar of conventional
Based on the ideas of software engineering, a software software project management, the waterfall model had a
development process is a framework that is applied to the significant place.
creation of software products[2].Software Development Kits, As per Figure 2, the waterfall model is a software
or SDKs, are another name for software development proce- development model that was created for the purpose of
dures.With the aid of software, people use a wide variety of creating software. The reason for its name is that the model
programs. progresses methodically, resembling a waterfall, from one
Software development approaches aim to address the need phase to the next. The software development cycle seen in
for faster, more agile, and lighter software development pro- Figure 2 is highlighted by the waterfall model. And every
cesses that have been expressed by the hungry corporate step’s cycle stage should be planned, and each step should
community [3]. thoughtfully employ associated technologies and invest time,
In the field of project management, the phrase ”agile labor, and resources. Every phase should conclude with a
software development” first appeared. But what is project review of the findings. The following phase might begin once
management really? What does the term ”project manage- the consumer is happy with the outcomes. Users with fixed
ment” actually mean? The definition of project management, needs or predictable outputs are better suited for the waterfall
as stated by William R. Duncanillam[4] in his book ”A Guide method.
To The Project Management Body Of Knowledge,” is as
follows: ”Project management is the application of knowledge,
skills, tools, and techniques to project activities in order to
meet or exceed customer’s requirements and expectations from
a project.” In order to convert their resources into project
outputs, people will invest in a project. Every project aims to
create and deliver products or services that meet the client’s
needs along the way.
Around the middle of the 1960s, computers with enor-
mous capacity and fast speeds made it possible for computer
applications to proliferate quickly. During this time, soft-
ware development also increased significantly in quantity. The
evolution of operating systems and high-level programming
languages brought about major changes in the methodology
used to construct computer applications. The first database
management systems were developed in response to the need
to process large volumes of data. The challenges of preserv-
ing the dependability of the software systems also became
more noticeable as they became larger and more complex.
The program’s development process must be changed since
the original personal design and approach cannot meet the
requirements. An epidemic of the ”software crisis” occurred
[5]. Fig. 2. Waterfall Model
Since 2001, the Agile Manifesto has included references to features with each new release. Testing is essential to make
agile development. Agile development was quite successful sure these improvements and new features are functional and
later on. Agile development is becoming more and more fulfill the required quality standards.
popular, and more people are planning to adopt it to finish 4) Developers and business professionals need to
their own projects. These days, there are many other varieties collaborate every day during the project to: Data distortion
of agile development, including lean software development, would unavoidably occur throughout the transmission
adaptive software development, extreme programming, and procedure. When company people convey client expectations
more. to developers, they might not fully understand the business.
Therefore, in order to identify issues as soon as feasible
II. WHAT IS EXACTLY AGILE SOFTWARE during the project’s development, business and developers
DEVELOPMENT? would need to communicate more regularly and meaningfully.
The agile team first presented the idea of agile development The project team collaborates daily, even though they are in
to the general public in 2001. Since then, the idea has different locations at different hours, to make it easier for
been recognized and adopted by numerous additional software engineers and business to communicate.
development teams and companies, and as a result, it has 5) Assemble projects around motivated individuals.Give
progressively become commonplace in a range of projects. them the resources and support they need, and have faith in
The Agile Software Development[6] group simultaneously their ability to complete the task. Each team member’s full
published the Agile Manifesto, which is shown in figure II, potential can only be achieved with this level of support,
in support of the idea that software development has entered encouragement, and trust.
a new era. This was done to get ready for the next phase of 6) Face-to-face communication is the most effective and
software development, which has already started. beneficial way to share information with a development team:
Information sharing and communication amongst members
By undertaking software development ourselves and assisting of a large team is more socially acceptable. This allows
others, we are discovering more efficient ways to do it. As a
result of our work, we now value: him to learn and learn at the same time. However, drafting
Individuals and their interactions with processes and tools documents for communication will take a lot of time in an
Working software instead of extensive documentation agile team, which typically consists of only seven or ten
Client cooperation in contrast to contract negotiation
Responding to change over following a plan
members. Team members could exchange information more
quickly and effectively if they spoke face-to-face.
TABLE I
M ANIFESTO FOR AGILE S OFTWARE D EVELOPMENT
7) The main indicator of development is functional
software: Each iteration in agile development aims to produce
a functional piece of software, therefore the number of
software that passes testing, satisfies release standards, and
A. 12 principles behind the Agile Manifesto functions is now used to gauge progress rather than the
1) Delivering valuable software on time and consistently quantity of code written or test cases executed.
is our top focus in order to satisfy our customers: The 8) The use of agile methods encourages sustainable
iterative process of agile development results in software that growth. It should be possible for the developers, sponsors,
is useful in small steps. Constant delivery, which emulates and users to keep up a steady pace indefinitely: Working
the continuous iteration process of agile development. By overtime is a regular occurrence in software organizations.
giving our clients helpful tools ahead of time, we are able Agile development, on the other hand, opposes working
to promptly hear their recommendations.that does not stray overtime to finish iterative tasks. Team members will grow
from understanding the users’ requirements. The earlier the weary and bored over time, making it harder to maintain
issue was identified, the less expensive the deviation repair productivity.
was. Customers can fully understand the efficacy, concern, 9) Agility is enhanced by constant focus on technical
and satisfaction of a software company by using this notion. excellence and good design. Agile development requires
2) Embrace evolving needs, even when they occur toward positive change adaptation and interpersonal communication.
the end of development: Agile development is also open to As people pay more attention to these areas, their ability to
making the necessary adjustments in response to requirements, be agile will improve.
even at a later stage of development. Software is useful when 10) It’s crucial to practice simplicity, or the art of
it truly satisfies user and market needs. Agile development can maximizing the amount of effort not done: It is very
reduce expenses associated with requirements modifications reasonable for anyone to anticipate accurate requirements
because it has allowed for flexibility in system design. modifications. Agile teams believe that rather than focusing
3) Deliver usable software frequently, ideally in a shorter on developing potentially necessary future software features,
amount of time—a few weeks to a few months: The project everyone should focus on finding the simplest solution to
team will collaborate with clients more closely if iterations the challenges at hand. Using complicated technology to
are done quickly. Building on the work done in the previous implement software is not supported by agile development.
release, the project team will improve the program or add new 11) The most effective designs, specifications, and
architectures come from self-organizing teams: A self- Agile accepts changes even in late software development.
organizing team can effectively communicate with one Its system designers and builders can quickly adjust to
another to establish a shared culture and work ethic.Because consumer demand changes. It ensures the last iteration satisfies
they don’t require comprehensive instructions, team members client requests and market changes. Agile development follows
can be more confident. the plan, unlike waterfall. Agile development starts projects
12) The group tunes and modifies its behavior in response with a rudimentary plan to allow for adjustments.
to periodic reflections on how to increase effectiveness: In Second, without real users participating in requirements
addition to the requirements changing as the project advances, definition, the specification may not meet end-user work
there are a number of other unknown variables, such as shifts habits. Even if the requirements are specified and shown to
in the team composition, Adhering to a predetermined work the end user to confirm, demand may alter. Everything is
plan makes achieving agility challenging. It calls for the imaginary until the user runs the system because they don’t
team to evaluate their work at specific intervals and make understand programming and can’t perceive illogical things.
necessary improvements. Let’s imagine the user attentively participated in requirments
confirmation and identified most of them, however non-
functional needs like performance, smooth operation, etc.
B. Differences between the agile development and traditional cannot be shown to the user. If someone gives you an iPhone
development manual and an Android phone manual, you can decide which
Therefore, what does it mean precisely to speak about is superior. Besides its stunning design and user interface,
”agile software development,” and how does this approach iPhone’s great benefits that attract so many young people
to software development differ and differentiate from more are hard to imagine. Until you grip it and feel the iPhone’s
traditional methods?With the aid of the Agile Manifesto, we seamless operation. On iPhone, you can feel the difference.
first undertake an analysis of the distinctions between agile and Agile will have many subprojects, each with a tiny
traditional software development approaches. Subsequently, milestone. Visualize actionable phased achievements instead
the definition will be presented.It is not at all difficult to sum- of detailed documentation. Allow clients to understand the
marize and state that two components are given special atten- development process and give more accurate software advise
tion in agile software development [?].Change-accountability in the next step. Agile development delivers meaningful
is the first, and effective teamwork is the second. product to customers quickly to satisfy them and continues
to provide runable software. The delivery time should be
Model Adaptability Teamwork
Traditional An excessive dependence Insufficient communica-
minimal.
on documentation. Design tion. Process is taken over
and implementation are by the manager. 2) Teamwork: Traditional process management seeks to
distinct.
Agile Changes can be made Changes can be made
guarantee that the organization’s processes operate as planned
to the documentation, de- to the documentation, de- and that the established procedures are closely followed.
sign, and demand while sign, and demand while People’s responsibilities in document-centric processes are
implementing implementing
often defined as dependable, interchangeable machine parts.
TABLE II Instead of being process-centric, the agile development
D IFFERENCES BETWEEN THE AGILE DEVELOPMENT AND TRADITIONAL
D EVELOPMENT
process is people-centric.They consider people and the inter-
actions between them to be more significant than systems and
equipment. The lifeblood of methodology is practice[9]. Agile
1) Adaptability: Agile development emphasizes adaptability development places a strong emphasis on letting individuals
over predictability. Traditional developers always plan for adopt a method rather than imposing one on them. The
extensive and complete documentation when starting a project. authority to decide on all technological matters must belong to
They will examine the complete development process and developers. Process should be kept to a minimum because it
each sub-process, such as how many times or people will be is the second point. Building a project team with motivated
invested in, and write the results in the document. Most crucial employees is the core of agile development. Provide them
is that the document cannot be changed once detected. The with the right atmosphere and encouragement so they may
document must be followed by all project developers.Changes work with complete confidence. In-person interactions are the
to the document or schedule are prohibited. This development most beneficial and efficient form of communication within
approach has advantages when demand remains constant. the project team. It is the epitome of human-centered design.
People uncovered several problems over time. When opposed to document-centric communication, oral
A thorough design document requires all project elements communication facilitates information transmission and prob-
to be implemented, which takes time. This approach, creating lem solving more quickly and effectively. Additionally, it
documentation is easy, but development efficiency is poor. mandates that developers and business professionals work
Most modern projects assume the demand doesn’t change together continuously throughout the project’s development.
throughout the phase, but too many incentives will modify This represents an agile development project by emphasizing
requirements. communication among team members. For business folks,
conducting research does not end with writing a requirement 18) Domain: The domain in this instance is ambiguous and
analysis and sending it to developers. but should interact with maybe exploratory in nature.
developers more skillfully to make sure they fully grasp the 19) Front-end Planning: Agile development reduces front-
business. end planning, which boosts efficiency.
The definition of agile development follows once we have 20) Return on Investment: When using agile development
a thorough understanding of the concept and how it differs methodologies, the early return on investment is the
from traditional development. Agile software development main priority.
focuses on delivering high-quality software quickly while also 21) Quality Control: In agile development, meticulous re-
achieving customer satisfaction. It is able to quickly adapt to quirements, first-rate designs and solutions, and contin-
changing software requirements[9]. uous testing satisfy the art form of quality control.
22) Restart expenses are negligible while employing this
C. Properties of Agile Software Development Methodologies type of Agile methodology.
1) Deadline Emphasis: Agile methodologies give deadlines 23) Planning and Control: Internalized plans and quality
a lot of weight. control are essential to the success of this system.
2) Methodology: An adaptable approach to software devel- 24) Refactoring: The Agile methodology’s affordability is
opment is the agile development methodology. one of its key advantages.
3) Point of view on change: Agile development welcomes 25) Risk Impact: Agile development has a substantial risk
change adaptability and enables better results. because it involves an unknown risk.
4) User requirement: The demands of users in agile devel- 26) Testing is the main component of quality because it is
opment are extremely emergent, dynamic, and partici- carried out at every stage of the project.
patory. 27) Proper Project Scale: Low to medium sized projects that
5) Quick results are the main objective of agile software use the agile software development process are suitable.
development methodologies. 28) Organizational culture: This style strongly emphasizes
6) Development life cycle: Using evolutionary and iterative leadership and collaboration skills.
techniques, the Agile development life cycle is based on 29) Short-term schedule: Excellent and successful short-term
quick model delivery. schedules are produced by agile development.
7) Style of development: The Agile methodology uses an 30) Functionality: Dynamic functionality is used in agile
adaptable approach to development. development.
8) Architecture: Agile is distinct in that it was developed 31) Control over resources: Agile software development
with consideration for the demands of the current con- methodologies do not grant any authority over resources.
text.
9) Documentation: The development has very little doc- III. T HE STATE OF KNOWLEDGE
umentation now that face-to-face encounters and tacit There are four key values in agile software development
understanding have taken their place. that need to be adhered to at all times. These principles,
10) Software development process: After contextual de- which form the basis of the Agile Manifesto, were discovered
mands are recognized, a flexible approach is used, which in 2001 by a group of 17 experts who convened to talk about
speeds up development. ideas that might facilitate the software development process.
11) Basic Assumptions: Small teams are ready to develop
adaptive software by applying the ideas of continuous The Agile Manifesto[7,8] outlines the following four
design, testing, and improvement depending on input essential values:
and change. Their efforts have produced the excellent - ”People drive the development process and are the
software. ones who respond to the business needs” is a principle that
12) Developers: Developers are intelligent people who re- explains why ”individual interactions are more important
spect collaboration. They are typically senior technical than processes and tools.” Because individuals can adjust
staff members. to the dynamic nature of development far more quickly
13) Team Size: Agile development teams are small, flexible than technologies and processes can, people should be given
groups that respond to the demands of the project. priority over these things.
14) Management: Agile development places a strong empha- - ”A concentration on functional software instead of
sis on people-centric management and leadership traits. comprehensive documentation” - this value explains that in
15) The very specific goal of this development is to yield the past, there were extended delays because programmers
better outcomes, perhaps by means of exploratory or had to devote all of their attention to documenting their
adaptive methods. code, leaving little time for actually implementing their
16) Change: You can implement this lightweight develop- requirements. Though shorter and typically presented as user
ment methodology strategy at any stage of the project. stories, documentation is still crucial when using Agile. The
17) Cycle: In order to finish a project using the agile devel- developers can devote a significant amount of time to the
opment approach, it must go through several cycles. actual development as a result of the decreased delays.
- ”Collaboration instead of contract negotiations” is a These days, the primary distinction between agile software
value that emphasizes the need for constant communication development and traditional, plan-based software development
between the project manager and the customer so that both methodologies is the ability to react to change and produce
may fully grasp each other’s demands and talents. This high-quality products using straightforward work procedures.
method of working is highly advantageous since it allows The core tenets of traditional agile techniques are as fol-
for a greater understanding of the client’s needs, which lows: project cycle, development model, ideal organizational
means that the finished product will live up to the customer’s structure, role assignment, knowledge management, control
expectations.If there was just negotiation at the beginning methodology, management style, and role of the client.
of the project, the customer might not have known how the
software might be developed, which could lead to a lack of IV. AGILE METHODOLOGIES
communication and an unhappy end product. Researchers in several fields have proposed and employed
- ”A focus on responding to change” is the guiding a number of Agile approaches. The goals of several popular
concept of the Agile method, which states that change is agile software development methodologies are listed in this
always welcomed since it is considered an opportunity to section. Agile techniques that follow different approaches have
enhance the project and provide value. The Agile cycle’s similar concepts but different practices:
brief iterations allow developers to determine what works • Extreme Programming (XP)
and what doesn’t, then make adjustments appropriately. This • Scrum
adaptability enables the group to adjust the procedure to best • Lean Software Development (LSD)
suit their requirements. • Kanban
• Adaptive Software Development (ASD)
A few myths exist around the Agile methodology, some of • Feature Driven Development (FDD)
which are as follows: • Dynamic System Development Method (DSDM)
- ”It’s unpredictable” -¿ True, but Agile welcomes this • Agile Modeling (AM)
unpredictability, makes use of it to its advantage, and yields • Crystal
better results, thus it’s no longer always a bad thing. • Agile Unified Process (AUP)
- ”Agile is more focused on the short term” -¿ well,
really, Agile helps programmers make better decisions A. Extreme Programming (XP)
indirectly toward the long run by allowing testing to begin A simple software development process is called Extreme
sooner in the development process. Programming.A practice that is also a summarization of
practice, extreme programming’s primary characteristic is
“Software development is an empirical or nonlinear pro- its ability to adjust to shifting conditions and demands
cess, where short feedback- loops are necessary to achieve while allowing developers’ arbitrary initiative to run wild.
a desirable and predictable outcome,” assert Williams and Extreme programming dedication to lower software project
Cockburn in their research, supporting the idea that agile risk, enhance responsiveness to business changes, boost
software development is all about feedback and continuous productivity during development, and lighten the enjoyment
change. The procedures involved in agile development are of the software development process should be enough to
crucial because they promote quick responses to shifting user draw in all users, in my opinion.
needs and surroundings by defining the agility that eliminates Beginning with the introduction of the four
the majority of traditional software development approaches. variables—cost, time, quality, and scope—extreme
Conboy maintains in his article[9] that agile software devel- programming allows us to better analyze the progress
opment techniques support one or more of the following: of a project by examining how these factors interact with
• the process of bringing about change;
one another.Extreme Programming contains twelve principles
• advocating for change beforehand;
and four values that must be followed in order to be properly
• responding to change;
implemented. A lot of information exists in the Extreme
• taking lessons from it.
Programming corpus, and every piece of it merits further
study.
Agile software development techniques should also enhance
rather than take away from:
Kent Beck first suggested extreme programming in 1996.
• perceived economy; This particular development process is appropriate for small
• perceived quality; to medium-sized teams and adapts quickly to changing re-
• perceived simplicity. quirements. Extreme Programming’s objective is to produce
Thus, agile software development has been defined differ- software that can adapt to the changing needs of its customers.
ently from plan-based or traditional development techniques, In spiral development, the development process is broken
particularly in terms of its emphasis on producing high-quality down into a very simple cycle, which is comparable to
products through straightforward workflows and adapting to extreme programming. Developers and clients can gain a clear
change. understanding of the status of software development, identify
Fig. 3. Life Cycle of the XP proces

changes, identify problems that need to be solved and their


possible challenges, and modify the development process in
real time by using constructive feedback, constructive com-
munication, and a variety of other techniques.
As opposed to the conventional approach to project de- Fig. 4. Components of Extreme Programming
velopment, Extreme Programming places emphasis on what
works best by listing techniques and concepts; other Extreme
Programming approaches are either categorically rejected or and business space, frequent changes in pair partners and
not supported at all. Instead of causing delays in the project’s assignments, short stand-up meetings, unit tests, demos,
advancement, a rigorous use of the Extreme Programming and oral communication rather than paperwork.
methodology should have a quick and effective development • Simplicity: The idea behind it is to create the simplest

process that can complete a week’s work in 40 hours. product possible while yet meeting customer needs. It
1) Background encourages creating software with the least amount of
Based on their experiences with the C3 project, Ron Jeffries, complexity possible while still supporting essential func-
Ward Cunningham, and Kent Beck presented it in 1998 [10]. tionality, producing code that is easy to read, understand,
2) Philosophy and Scope maintain, and modify, and focusing on the here and now
The well-known and simple software development rather than the future.
methodology known as Extreme Programming (XP) focuses • Feedback: It implies that developers need to get input

on engineering techniques. The goal of XP is to make from users, the system, and one another, and they should
software development feasible even in the face of ambiguous appreciate it. It is delivered through aggressive iterative
or dynamic program requirements. It’s a set of procedures and incremental releases, regular end-user releases, end-
meant to raise the caliber of software while promptly user co-location, automated functional tests, and auto-
adapting to the shifting needs of clients in order to satisfy mated unit tests.
organizational objectives. In order to improve productivity, • Courage: It denotes being ready to make difficult choices

it involves obtaining informal requirements from customers that uphold other values and standards. To follow the
who are present on-site, setting up pair programming teams, necessary procedures and act honorably in the face of
creating simple designs, continuous refactoring, continuous adversity, one must possess courage.
integration, and testing. It also promotes frequent releases 4) Extreme Programming Activities
within brief development cycles and establishes checkpoints The four basic steps of traditional software development are
where new customer requirements can be accepted [4,5, requirements, design, coding, and testing. Although they share
6]. Projects requiring small to medium-sized teams to work the same name, the four Extreme Programming tasks are
together in a collocation setting are best suited for XP. From fundamentally distinct from one another. The four Extreme
a project management perspective, XP is best suited for tasks Programming activities are briefly described as follows[11].
when needs are erratic and uncertain. • Listening: Given that most projects fail due to inadequate
communication, it is unquestionably essential to their suc-
3) Extreme Programming Values cess. It is achieved through open status displays, paired
A worldwide, values-driven development process perspective development, co-location of development and business
is offered by Extreme Programming. Four values are necessary space, frequent changes in pair partners and assignments,
for the team to have in order to accomplish a high iterative short stand-up meetings, unit tests, demos, and oral
process: [11]. communication rather than paperwork.
• Communication: Given that most projects fail due to • Designing: A somewhat unique viewpoint is presented
inadequate communication, it is unquestionably essential by Extreme Programming, which develops projects by
to their success. It is achieved through open status dis- following the design. The process of design is now
plays, paired development, co-location of development dynamic rather than static, like a project phase. The
developer’s job is no longer to do this. requirements from clients differ from conventional meth-
• Coding: Many techniques used in Extreme Programming, ods. When using Extreme Programming, clients receive
like pair programming, code refactoring, and test-driven story cards from developers, which they fill up with all of
development, are centered around programming to pro- their specifications. Developers estimate how long it will
duce high-quality programs. Instead of encrypted text take to complete each card, and then Developers would
that is difficult to read, Extreme Programming developers choose which tasks in the first iteration should be finished
thought of code as intriguing text. In order for the other based on user priorities and expected time. The outcome
team members to comprehend the logic, algorithms, and will be compared to the original story card following the
procedures, the code must have a high readability level first iteration. The user can edit the user card prior to the
and an evident meaning. next iteration commencing, after which it will begin.
• Testing: Tests are one of the more difficult tasks in • Simple design: According to Extreme Programming, code
Extreme Programming.A quality software product is should be written to fulfill the needs of the present
ensured by conducting thorough tests. Throughout the function as simply as feasible. The top-down approach of
entire development process, the Extreme Programming traditional software development emphasizes the design
test is conducted. Since most software bugs should be first; a flawless model must exist before any code is writ-
fixed quickly rather than waiting until a later stage, the ten. On the other hand, Extreme Programming requires
code could be checked right away. The quality of the developers to put in a lot of effort in order to find the
generated software is ensured, and development expenses simplest design given the current needs.
are decreased in this way. • Small releases: The idea behind Extreme Programming
5) Extreme Programming Principles is to provide the user with an iterative version of the
Software development is guided by five essential principles, distribution system every three weeks. Additionally, it
which are based on the principles of Extreme Programming: increases the chances for clients to interact with devel-
quality work, incremental change, rapid feedback, presume opers. Customers will give input based on this limited
simplicity, and embrace change[11]. version, letting developers know where issues exist. This
will enable developers to make the necessary changes in
• Auality Work: The term ”auality work” refers to the prod-
time for the next release.
uct’s quality, which cannot be disregarded. Developers are
• Metaphor: A highly clear project outline is provided to
unable to compromise on software quality as development
all developers via the system description, which serves
moves forward.
as a system metaphor that explains the fundamental
• Incremental Change: To fix a problem, developers should
components of the system and how they relate to one
make a number of little adjustments. This idea ought to be
another. Customers do not comprehend the business’s
applied throughout the planning, development, and design
terminology because developers do not.phrase used in
phases.
software development. These metaphors are intended to
• Rapid Feedback: Developers rapidly assess whether the
improve communication and prevent misunderstandings
present product satisfies client requirements by doing
between developers and clients.
brief iterative cycles to get feedback.
• Pair Programming: Each small group has two developers,
• Assume Simplicity: try to find the simplest solution to
one of whom serves as the driver and the other as the
every problem. This implies that the issue need only be
navigator. During programming, they can switch roles
taken into account by developers for the current itera-
with each other. Though it may appear inefficient, using
tion. In order to satisfy the requirements of the current
two programmers to complete ”a programmer’s work”
iteration, design should be as simple as possible.
really has the opposite effect. It allowed for knowledge
• Embracing change: When tackling urgent issues, use
sharing within the team in addition to producing better
a patient approach. It is imperative for developers to
code and testing. Everyone has the ability to gain new
acknowledge that as client needs evolve continuously,
information from one another. You’ll start enjoying your
so too do the features and functionalities of priority
work.
needs. Developers must find solutions to urgent issues and
• Coding standards: For the purpose of facilitating com-
frequently adapt appropriately to requirements changes in
munication amongst developers, code must conform to
order to embrace change.
a widely recognized standard. In extreme programming,
6) Extreme Programming Practices the emphasis should be primarily on developing a deeper
The creator of extreme programming condensed 12 extreme understanding of the code, rather than producing a large
programming approaches into a concise list that accurately amount of documentation.
captures the ideas of extreme programming[11]. • Collective ownership: No part of the code may be owned
• Planning game: The Planning Game is meant to direct exclusively by one person. You may now access every
the product during delivery [12]. You must ascertain the single line of code in the upgraded repository. The code
demands of the user throughout the project planning can be altered by anyone, and doing so does not require
phase. The methods used by Extreme Programming to get consent from another person.
• Continuous integration: It implies that the entire set of the team is necessary to guarantee that everyone is using
modules should be continually assembled. The goal is the same vocabulary.
to get continuing client input and identify issues early • In XP, pair programming is a crucial technique. It cannot,
on. The way the traditional method operates is as fol- however, be used for projects with a single developer.
lows: when all code has been written, execute big-bang The level of customer collaboration is low. The same
integration, and then take a long time to fix the issue. individual writes both the code and does the testing.
It goes without saying that continuous integration helps Because developers test from the same perspective from
identify issues early on. Several times a day should be which the product is produced, it’s probable that all
spent integrating. potential issues will go unnoticed.
• Refactoring: This is a process that has already been used
B. Scrum
to make the code better. It optimizes the internal structure
of the code in the unlikely event that the program’s In an effort to give object-oriented development full play,
external behavior remains unchanged. Its objective is to Ken Schwaber and Jeff Sutherland introduced Scrum, which
improve the software’s maintainability as well as the is an advancement over the iterative object-oriented method.
design and code quality. Scrum is derived from rugby, where players strive to achieve a
• Testing: The requirement to write tests prior to starting common goal—victory—by cooperating to uphold the court’s
the coding process is heavily emphasized in Extreme rulings overall. Scrum, which was initially implemented in
Programming. Two main forms of testing are conducted: Easel (1993), works well for software development because
unit testing and functional testing. its needs are unpredictable. The Scrum Master, Scrum Team,
• On-site customer: For extreme programming, at least backlog, sprint, and meeting have all been adopted by PLOP
one client representative must be involved throughout as the standard for Organizational and Process Patterns.
the whole development cycle. This representative’s duties The fundamental tenet of scrum is this: You cannot estab-
include verifying requirements, responding to inquiries, lish the final product specs up front when developing software,
and creating functional tests. Based on past experiences, just like you cannot design new products. Since processes
having a client present can enhance the precision and necessitate investigation, ingenuity, trial and error, no process
effectiveness of the development process. can ensure a project’s fixed success. Scrum is familiar with
• 40 hours a week: Extreme programming mandates that the best sample model and technology that are required for
developers work no more than eight hours a day, forty the development process, and it has a defined end objective.
hours a week, and no overtime for longer than two with a high degree of independence and adaptability, closer
weeks in order to maintain productivity. A seamless coordination, and teamwork to overcome obstacles. Make sure
development approach guarantees that programmers can there is a distinct increment for each level each day. Scrum is
keep working on the task and the team can keep releasing therefore perfect for initiatives involving product development.
new software to its clients. Working extended hours will
reduce productivity and cause developers to make more
mistakes.
7) XP Roles and Responsibilities XP Coach: helps the
team follow to the XP approach. XP Customer: establishes
implementation priorities, creates stories, and runs functional
tests. XP Administrator: Set up the local administrator and
programming environment. XP Programmer: writes code and
tests. XP Tracker: monitors iterations using tools such the
program/project manager, reports on the progress of iterations,
and offers comments on the accuracy of estimations. XP
Tester: Assists client in creating functional tests, executes
functional tests, and looks after testing equipment. XP Con-
sultant: a third party who helps the group address challenges.
Fig. 5. Scrum process
Decisions are made by managers.
8) Limitations
Figure 5 illustrates the iteration cycle of 2-4 weeks
• XP is not appropriate for complicated, large-scale that is typical for the Scrum development process. A new
projects. product begins with a client demand, and each iteration cycle
• When pair programming, it takes a lot of cooperation be- is referred to as a sprint. The development team needs to work
tween the programmers, and even a minor disagreement hard to provide outcomes at every cycle. The team meets for
might undermine the goal of shared code ownership and fifteen minutes every day to discuss each member’s plans and
thus affect iterations. progress, recognize challenges, and decide how to divide up
• Carefully sharing the development of ”metaphor” within the work for the next day.
1) Background • Release backlog: Requirements extracted from the prod-
Its design was inspired by Bob Charette’s Lean develop- uct backlog that have been categorized and ranked in
ment in the 1980s and the Toyota Production System’s Lean order of importance for a forthcoming release. The re-
manufacturing methodology. According to Poppendieck & lease backlog provides further information regarding the
Poppendieck (2003), lean software development [9]. It is requirements, along with a low-level estimate that is often
ideal for integrating with other agile approaches, like XP, estimated by the team that is responsible for carrying out
which concentrate more on the technical parts of software the work.
development. It emphasizes the project management aspects
The Scrum framework works effectively for tackling
of a project and does not prescribe any technical practices.
smaller projects. There has been some progress made in terms
2) Philosophy and Scope
of the creation of work releases, and requirements can now be
The word ”scrum” comes from the game ”Rugby,” in which
prioritized in an organized fashion.
players pass the ball in steps to score goals. This is comparable
to advancing a project via iterations until the main aim is 4) Roles
met. Scrum is an incremental, iterative process for managing A Scrum project may have many distinct responsibilities, but
any task or developing any project or product. It’s a simple there are three essential jobs that must always be filled. The
software development approach that consists of sprint cycles of product owner, the scrum master, and the scrum team are the
two to four weeks, during which a limited number of customer three key roles that are involved in scrum.
requirements are implemented. Small sprints for continuous • Product Owner: This particular person is in charge of
integration lower risks and aid in winning over clients. The managing the work backlog as well as arranging the
daily stand-up meeting is a very effective tool for managing sprints and releases in addition to other responsibilities.
and advancing the sprint, and by extension, the project [8]. They function in this capacity as the project manager
Teams should be small, with seven to ten members. It is for the Scrum team, despite the fact that the majority
scalable to higher values. The approach is designed to handle of people in the agile community do not refer to them
projects in dynamic contexts. as project managers. The product owner is responsible
3) Features and Benefits for acting as a spokesperson for the client and ensuring
Team size: Scrum team is usually 5 to 7 members that the needs of the end user are taken into account
Iteration length: sprint length is 2-4 weeks at every stage of the product development process. This
Scrum comprises three phases: Pre-Game (creating a prod- responsibility falls within the purview of the product
uct backlog list, evaluating effort, and designing the high level manager. The product manager is responsible for fulfilling
architecture); Development (doing sprints, analyzing, design- this commitment as part of their job responsibilities.
ing, and delivering the work); and Post-Game (conducting sys- According to the official Scrum Guide, the primary
tem testing, integration testing, and releasing documentation). responsibility of the product owner is to maintain a record
Values: Scrum is a strong advocate for the following of the inventory of items that are still in a state that can
values: Courage, Openness, Respect, Commitment, and Focus. be described as ”work in progress.” In order to achieve
Methods: Burn down charts, Scrum meetings, project di- this goal, the work needs to be structured and prioritized,
vision, team formation, and backlog creation. the relevance of the task needs to be determined, and the
Four sessions are held: daily scrum, sprint planning, sprint upcoming responsibilities need to be conveyed to each
review, and sprint retrospective. and every member of the team to ensure that they are all
Artifacts that are a part of the Scrum framework include: on the same page.
• The product backlog: which is a comprehensive list of • Scrum Master: Supporting the team in adhering to the
requirements that are not yet included in the product Scrum process is the primary responsibility of this func-
release. These requirements can include things like en- tion, which focuses mostly on the process. They provide
hancement requests, problem fixes, and usability and the team with guidance throughout the project by drawing
performance improvements. on their experience and knowledge, but they do not
• Sprint backlog: This is the list of backlog items that have participate in decision-making.
been assigned to a sprint but have not yet been completed Their involvement in agile release planning is not
in common practice; no item on the sprint backlog should always the same as that of traditional project managers.
take more than two days to finish. The team is able to It’s what the Scrum team and the product owner do. A
more accurately estimate the amount of work that will be Scrum team is designed to be self-organizing, therefore a
necessary to finish a sprint thanks to the sprint backlog. Scrum Master does not function as a kind of psuedo-
• Burn down chart: This chart displays the work that needs project manager. Since they facilitate the daily Scrum
to be completed inside the sprint, and it is updated every meeting—one of the Scrum ceremonies we go over in
day. The burn down chart is used to track the progress of greater detail here—but do not participate in it them-
the sprint as well as to determine when items on the sprint selves, the Scrum Master serves as the project’s glue.
backlog need to be deleted and moved to the backlog for Together with organizing retrospectives, sprint reviews,
the following sprint. and agile sprint planning meetings, Scrum Masters sup-
port the team in maintaining its burndown chart. parties, including customers, members of the executive
• Scrum Team: A typical Scrum team, referred to as a de- team, and a variety of other interested parties. It is
velopment team in the Scrum 2020 edition, comprises five anticipated that each of these occupations will, at some
to nine members and typically encompasses the typical point in time, contribute to the completion of this process
functional roles needed to finish the project, according to in some capacity, shape, or form. This is something that
the Scrum Alliance. Architects, testers, developers, and will occur over the course of this process.
designers are typically included in software development, 5) Sprint
but other specialists in security, performance, hardware, Sprint typically has a period of 30 days. People develop
and other areas may also be included. and test during a sprint. A sprint ends, and another one
The product owner’s priority list guides the team’s begins afterward, continuing until all of the tasks have been
decision-making as they collaborate to identify the best completed; this process is known as iteration. Be able to
course of action for achieving their objectives. The Scrum present a functioning product at the conclusion of each sprint.
method, which is overseen by the Scrum Master, serves as In order to discuss unfinished work in the upcoming Sprint
their guidance. The Scrum Master provides the team with Planning Meeting, it is recommended that unfinished work be
the necessary support to enable them to handle everything written back to the Product Backlog. The product owner will
else. For instance, a team member may select a user story assist in selecting certain items from the product backlog to
from the product backlog that has been prioritized and be added to the sprint backlog if the sprint task is finished
then determine how best to carry out that task on their ahead of schedule.
own. There will be two sections to the sprint planning meeting.
Scrum’s foundation is this degree of autonomy. It The Scrum Master, Scrum Team, Product Owner, and Man-
promotes close relationships amongst team members and agement discuss what and how the tasks will be developed in
contributes to the development of a productive workplace. the upcoming Sprint in the first section. The second section is
Although the concept of a team is present in waterfall only for the Scrum master and the Scrum team. Participants
projects as well, the team is not self-managed but rather break down the chosen work into multiple manageable steps
functions under the project manager’s direction. before creating the Sprint Backlog.
• Other Roles: They are assisted in their work by a Retrospective meetings follow review meetings. Recap the
wide variety of other specialists working in positions Sprint is the goal. What worked well in the last sprint and what
such as testers, test automation engineers, cybersecurity may be improved for the next sprint are the two questions that
experts, user experience designers, business analysts, each participant should respond to.
functional experts, and performance/load engineers. All 6) Scrum advantages and limitations
of these individuals have focused their full attention and The consensus among all of the members of the project team
dedication on the scrum project. These individuals have is that the implementation of Scrum resulted in a significant
each provided the scrum project with their undivided number of advantageous shifts over the course of the project.
attention and commitment to see it through to completion. These benefits include the ability to rapidly respond to changes
in requirements and release the product on time, as well as
the ability to boost productivity while simultaneously lowering
risk and enhancing product quality. In addition, these improve-
ments include the ability to release the product on time.
Where exactly does this Scrum go wrong, and what exactly
are its limits and bounds? There are two different aspects
that need to be taken into consideration. It does not pro-
vide sufficient support for large and complicated applications,
and its support for distributed development environments is
not very good. Neither of these shortcomings is particularly
exceptional. Neither one of these deficiencies is particularly
noteworthy.
C. Lean Software Development (LSD)
The word LSD stands for ”Lean Software Development,”
Fig. 6. Roles in Agile Scrum and this methodology considers the application of resources to-
ward the accomplishment of any goal to be a sort of production
Additionally, there are a number of ancillary responsi- practice.The amount of money a consumer is willing to spend
bilities that are not required to be a part of the Scrum on a good or service is the best indicator of its value. The
project team; yet, they are very vital to the successful natural environment serves as the primary inspiration for LSD,
completion of the project nonetheless. This category of which allows the substance to retain its value while requiring
stakeholders is comprised of a wide range of interested significantly less effort to produce. The elimination of waste,
the production of excellent goods, the creation of knowledge, primary audience in mind during development. Because LD is
the timely delivery of software, the respect of people, and the less of a methodology and more of a management philosophy
optimization of the whole and dissimilar commitment are the for the creation of software, there are no standards that must
seven guiding principles that LSD adheres to [13, 14]. This be fulfilled that pertain to the size of the team.
idea is demonstrated in Figure 7. 3) Features and Benefits
Iteration length and team size: The Lean Software Devel-
opment approach does not specifically address team size or
iteration durations because it is more of a management concept
than a development process.
There are seven distinct Lean principles that Lean Software
Development follows and advocates. The Lean methodology
is based on these guiding principles, which are meant to be
reinforced by all of its other components. The seven guiding
concepts are as follows:
• Eliminate All Kinds of Waste: Eliminate anything that
does not offer value to the client experience.
• Build Quality In: Validate and re-validate all assumptions
at several points along the process in order to ”build
quality in.” Throw out a metric or practice if you find
that it is no longer useful.
• Make Knowledge: Make use of short iteration cycles to
deliver immediate and constant feedback in order to make
sure that attention is being paid to the appropriate items.
• Delay Commitment: You need to have a firm grasp of the
issue and the trade-offs of different solutions in order to
make a decision, therefore wait until enough information
is available.
• Deliver Quickly: Reduce the amount of time it takes to
Fig. 7. Lean Software Development determine an issue with the business and then deliver a
system or product that solves that problem.
1) Background • Respect People: Respect other people and provide the
In the 1980s, Bob Charette’s Lean development and Toy- team the tools it needs to be successful.
ota’s Lean manufacturing systems were the inspiration for • Optimize the Whole: Collaborate with members of other
this adaptation. A book titled ”Lean Software Development” functional areas to ensure that you do not miss any vital
was published in 2003 by James Poppendieck and John S. or possibly mission-critical aspects of either the issue at
Poppendieck [9]. It does not impose any technical methods, hand or the solution that is being formulated in order to
instead emphasizing the administrative aspects of a project; it address it.
works well with other agile approaches, like XP, which con-
centrate more emphasis on the technically complex software Typically, only the customer will give the team with
development processes. the business requirement, although they nevertheless play an
2) Philosophy and Scope important role. The primary goal is to get rid of waste and
The term ”Lean Software Development” (LSD) refers to improve the entire process so that we can make the most
an iterative method that places an emphasis on eliminating feasible benefit, and this works really well with the six sigma
waste and improving efficiency throughout the entirety of methodology.
the software development process in order to realize the 4) Principles
greatest possible gain. The acronym LSD can alternatively The following management techniques are emphasized
be abbreviated as ”Lean Development.” Lean has a long and throughout the 12 principles of Lean Development [Highsmith,
illustrious history in the manufacturing industry, and in the 2002a]:
software development industry, in more recent years, it has • It is of the utmost importance to ensure that the needs of
become increasingly popular. Both industries are examples of the consumer are met.
industries that have benefited from its implementation. When • Always offer the best price for the quality you deliver.
used in conjunction with the six sigma method, it generates • Participation from paying customers is essential to a
results that are quite satisfying [9]. business’s success.
Any project that requires significant changes to be made, • Every initiative that LD undertakes is a group effort.
but particularly one that involves the creation of software. • Everything is subject to alteration.
Designed with the company’s top executives serving as the • Solutions for the domain, not individual points
• Finish, rather than build up or construct 1) Background
• A solution that is 80 percent complete now rather than a The Kanban method’s initial conception, which was devel-
solution that is 100 percent complete tomorrow oped by David J. Anderson. Unlike sprinting, which includes
• The practice of minimalism is crucial. beginning and stopping the delivery of work every two to four
• Technology is based on requirements. weeks, this strategy focuses an emphasis on a continuous flow
• The growth of a product is measured in terms of its of work rather than starting and stopping the supply of work
features, not its size. at regular intervals.
• Never attempt to push LD over its capabilities. 2) Philosophy and Scope
5) Roles and Responsibilities The term’signboard’ is where the Japanese word ’kanban’ gets
There is no specific reference of tasks and obligations in any its start. Kanban is a visual process management technique that
way, with the sole exception of the notion that LD must first gives information regarding what should be produced, when
be directed toward CEOs in order for it to be implemented in that production should occur, and how much production should
the company. occur. Kanban was developed by Toyota. It is a method for
6) Advantages and limitations controlling the production of goods with the primary focus
Advantages: being on continuous delivery, while at the same time keeping
the development team from becoming overworked.
• By taking a more streamlined approach, more function- Kanban is a method that, in a manner very similar to that
ality may be supplied in a shorter amount of time. of Scrum, seeks to improve the efficiency with which teams
• Reduces costs by doing away with activities that aren’t collaborate with one another. Kanban was initially conceived
necessary and, as a result, saves money upon and developed by the Japanese. It promotes the idea
• Provides the development team with the authority to make of ’broad communication’ by using the workflow state (such
decisions, which has been shown to improve morale. as TBD, WIP, and Done) as a’signboard’ that offers an all-
Disadvantages: encompassing image of the project. This helps to ensure that
• Creating a cohesive team and individual contributions everyone involved in the project is aware of its status at all
from each member are critical to the project’s success, times. There is widespread support for the Just-In-Time (JIT)
so building a strong team is imperative. methodology, and it is recommended that the stock level be
• If the wrong business analyst is not involved, or if their dropped in order to reduce the amount of money spent on
participation is inappropriate, scope creep may happen. overhead.
3) Features and Benefits
D. Kanban The following is a list of the four core principles that form
the foundation of Kanban:
Kanban is not an inventory control system; rather, it is a
• Start with the existing process: A change management
method for regulating the chain itself, which is of a logistical
method that begins with the process that is already in
nature. This distinction is important to make clear when
place, this approach begins with the process that is
discussing production. Kanban was developed as a tool with
already in place. Modifications to the system are imple-
the dual purpose of enhancing the system while also ensuring
mented in a manner that is iterative and evolutionary.
an adequate level of production. It is amazing that Kanban has
Kanban does not have a clearly defined process or set of
proven itself to be a way for driving improvement in addition
roles, in contrast to Scrum.
to becoming a well-known and valuable instrument for
• Agree to continue evolutionary and incremental changes:
assisting in the operation of a production system as a whole.
After beginning with the process that is currently in
[7] Kanban became a well-known and useful instrument for
place, the group will need to come to an agreement on
assisting in the operation of a production system as a whole.
continual, evolutionary, and incremental modifications.
This idea is illustrated by the figure number 8.
The adjustments ought to be moderate and carried out
step by step. Alterations that are both rapid and extensive
have the potential to be successful, but the team will
likely put up a greater fight against them.
• Admire current roles, processes, responsibilities & ti-
tles: Despite the fact that Kanban recommends making
continual, incremental changes in the process, it pays
attention to the roles, responsibilities, and job titles that
are currently in place. Having this support as they begin
their journey with Kanban is beneficial to the team’s
confidence.
• Leadership at all levels: Kanban does not mandate that
leaders originate from a specific group; rather, it actively
Fig. 8. Kanban System promotes leadership actions to be taken at every level of
an organization. This is in contrast to other management of it [10]. ASD, which focuses on the quick design and devel-
approaches, such as the waterfall approach, which antic- opment of software systems, is a subset of rapid application
ipates that only a fraction of the workforce will provide development.
leadership. 2) Philosophy and Scope
Practices of Kanban: Begin with what you are doing right now, The process of designing and building software systems is
Respect the existing procedures, duties, responsibilities, and called ASD. It provides methods for developing big, compli-
job titles, and encourage acts of leadership at all levels of the cated systems incrementally, iteratively, and through contin-
organization. Agree to pursue gradual, evolutionary change. uous prototyping. Product start-up, planning for an adaptive
Agree to pursue incremental change. cycle, concurrent feature development, quality assessment, and
4) Roles and Responsibilities ultimate quality control and release are all involved. It de-
Kanban does not impose any roles on its users. The decision pends on the peer-to-peer work of team members. Customers
will be made by the company and the team. It is recommended typically operate as members with the idea of progressive
by Kanban to keep the cycle time as short as possible; hence, elaboration and don’t have all the criteria at first.
if adding a role would assist keep the cycle time as short as It is confined to project management tasks because it is
possible, then the role can be included; however, if it will fundamentally an agile project management mindset. The scale
make the process slower, then the role should not be present. of the project determines the boundaries of this methodol-
Additionally, if the value of the improved cycle time is less ogy with regard to team sizes, although as with other agile
than the cost of the role, then it is unnecessary overhead. methodologies, the level of agility declines with team size.
5) Limitation The communication methods used in a project define its level
of rigor and support for distributed development.
• Even a minor glitch in the Kanban system’s operation 3) Features and Benefits
might cause the entire line to stop functioning, and getting Phases: Collaborate (concurrent feature creation), Learn (qual-
it back up and running again involves additional work. ity evaluation), and Speculate (initiation and planning).
• The throughput of the Kanban system is not managed; Life Cycle Qualities: Iterative, risk-driven, feature-based,
rather, it is the result of controlled work-in-process and mission-focused, time-boxed, and change-tolerant.
a cycle time that is known in advance. 4) Roles and Responsibilities
Executive Sponsor: Person with overall responsibility for the
E. Adaptive Software Development (ASD)
product.
ASD (Adaptive Software Development) suggests that e- Participants: in joint application development sessions
business project needs may be unclear at the start. Project Developer: programmer.
mission handling, requirements, objectives, time frame, feature Customer: User
set requirements, estimations, scope, and resource availability
are determined through guesswork. Total project size and F. Feature Driven Development (FDD)
uncertainty level determine iteration length. A time box is FDD (Feature Driven Development) emphasizes the build-
assigned to the iteration after that. Team members create ob- ing and design phases of software development, rather than
jective statements for each iteration. In the last iteration, users the entire life cycle. Build involves a feature list phase
and developers contribute features. Trustful and courteous when the team identifies and groups features into sets, then
collaboration is essential for teamwork. Team must collaborate systematically organizes primary feature sets. The feature list
on quick decision-making, requirements, and issues. Real is prioritized by phase and a development strategy is created
comprehension can be enhanced through learning. The focus to determine the order of feature set implementation. During
on groups includes feedback, technical evaluations, and post- the design-based and feature-based fourth build phases, the
mortems [6]. Fig-9 shows this. team divides into feature teams and executes design, testing,
and feature development within two weeks. This phase is done
until no features remain [15,16,17]. As depicted in Fig-10.
1) Background
It emerged from Jeff DeLuca and Peter Coad’s work in late
1999, and Palmer and Felsing later defined it in 2002 [11, 12].
There are five activities that center around the domain model:
Construct a feature list, Create an overall model, Consider each
step of the process: plan, design, and build.
2) Philosophy and Scope
FDD stresses quality throughout the process, concentrates
Fig. 9. ASD Life Cycle on the design and construction phases, and includes regular,
observable delivery in addition to precise tracking of the
1) Background project’s advancement. It is a method to building products or
In 2000, Jim Highsmith and Sam Bayer provided a description solutions that is easy to understand and powerful [13].
must have. Clients, users, and different analysts fall under
this category; they are all those with business-related
expertise who may have an effect on the system.
• Tester: In charge of confirming that every feature operates
as intended.
• Deploy Manager: Manages the definition and/or transla-
tion of data between different formats in addition to the
actual deployment of code to different environments.
• The technical writer is in charge of producing and or-
ganizing all of the printed and web documentation that
Fig. 10. Feature Driven Development Process
users will require for the finished product.
5) Limitation
• Project criticality is not expressly addressed in the FDD
Only small to medium-sized teams (four to twenty members) prescription.
can use FDD. The approach is based on object-oriented
modeling and addresses requirements that are not quite clear. G. Dynamic System Development Method (DSDM)
3) Features and Benefits In agile project development, the Dynamic Software De-
Team Size: The size of the team varies based on how sophisti- velopment Method, or DSDM, is a framework that looks
cated the feature in question is. DeLuca emphasizes the value both forward and backward. DSDM prioritizes prompt prod-
of elite individuals, particularly modeling professionals. uct delivery in addition to a guiding technique for process
Duration of iteration: Possibly two weeks. control. The Moscow rule, which is applied when prioritizing
Phases: The five stages consist of Build the feature, plan by requirements, assigns bases on Should have, Must have, Could
feature, design by feature, and build by feature are the steps have, and Want to have but won’t have this time. When a
in developing the entire model. project is developed in conjunction with DSDM, the business
Practices: Inspections, Configuration Management, Regular and feasibility studies need to be completed in order. These
Builds, Individual Class (Code) Ownership, Feature Teams, two stages determine the foundation for the remainder of
Domain Object Modeling, Developing by Feature, and Visi- the project. The latter three stages are both incremental and
bility of progress and outcomes repetitive. In reality, the project is developed during these
Develop the overall model, create a feature list, plan, design, stages [6,8, 18]. This can be seen in Fig. 11.
and build features, as well as milestones.
Values: To scale to larger projects, a system for building
systems is required. The finest processes are straightforward
and well-defined. The steps in the process should make sense
and be immediately apparent to all members of the team.
The genuine work may be prevented by process pride. Good
procedures fade into the background, allowing team members
to concentrate on outcomes. The ideal life cycle is brief,
feature-driven, and iterative.
4) Roles and Responsibilities
• Project manager: in charge of overseeing all project
administration, including reporting and financial matters.
Chief Architect: In charge of overseeing all design meet-
ings, code reviews, and technology selections. Responsi- Fig. 11. DSDM Process Diagram
ble for the overall system design.
• Development Manager: Responsible for overseeing the 1) Background
day-to-day development tasks. managing resource con- In 1995, Stapleton provided a description of it [14]. In an effort
cerns and coordinating the work of the development team. to improve Rapid Application Development (RAD) quality,
• Chief Programmer: A senior developer designated to a significant number of project practitioners collaborated to
oversee one or more Feature Sets and engaged in ongoing create DSDM in 1994. It emphasizes the early delivery of
design and development operations. significant business benefits.
• Class Owner: A developer who designs, codes, tests, and 2) Philosophy and Scope
documents features as they are implemented, working The project and product management life cycles are combined
under the supervision of a Chief Programmer. into one optimal process using the iterative and incremen-
• Domain Expert: Any stakeholder with a business connec- tal DSDM approach. It was created to close some of the
tion who is able to specify the features that the system holes in the RAD methodology by offering a framework that
considers the whole process of development. It is a tried- user community.
and-true paradigm for agile project management and delivery • The Technical Coordinator is in charge of creating the
that focuses on strategic goals and the gradual delivery of system architecture and overseeing the project’s technical
genuine business advantages while maintaining control over excellence.
time, money, risk, and quality. This helps to deliver results • Team Leader: Guides and guarantees the smooth opera-
fast and effectively. tion of the team as a whole.
DSDM isn’t appropriate for every project. DSDM is par- • Solution Developer: Comprehend the needs of the system,
ticularly ill-suited for usage in real-time, safety-critical, or model it, create deliverable codes, and construct proto-
well-defined system needs. DSDM works particularly well for types.
projects whose requirements change over time. The ability to • Solution testers: Test the system to verify its technical
prioritize these criteria is essential. correctness, report errors when they arise, and retest once
3) Features and Benefits they have been corrected. The tester must provide some
Team Size and Length of Iterations: DSDM is more of a frame- documentation and remarks.
work than a technique. The structure of DSDM means that • Scribe: In charge of compiling and documenting the
team size and precise iteration durations are not particularly specifications, agreements, and choices reached at each
addressed. Teams can consist of two to six members, although workshop. The facilitator is in charge of overseeing the
a project may contain multiple teams. workshop’s progress and serves as a catalyst for planning
Stages: Pre-project, Feasibility Study, Business Study, Func- and interaction. Specialist Positions: System Integrator,
tional Model Iteration, Design and Build Iteration, Imple- Quality Manager, Business Architect, and so on.
mentation, and Post-project are the six stages of the DSDM 5) Limitation
lifecycle. • It is predicated on user participation, which isn’t feasible
Fundamentals: The nine principles of DSDM are as follows: for every project.
active user involvement; teams must be empowered to make • The fundamental issue with DSDM is that, in comparison
decisions on their own; frequent release cycles are more to other agile development software approaches.
important than maximizing quality; meeting business needs • It can be restricted and challenging to work with due to
is the primary criterion for deliverables; iterative development its strictness and eight principles.
is necessary to arrive at an accurate solution; changes made
during development can be undone; high-level requirements H. Agile Modeling (AM)
should be set in stone; testing should take place at every stage A practice-based method for software development called
of the project’s lifecycle; and all stakeholders must collaborate Agile Modeling (AM) is used to provide a structured project
and communicate. management procedure that allows for frequent adjustments.
Methods: Workshop, Modeling, MoSCoW, Prototyping, Test- Agile serves as the conceptual foundation for many soft-
ing, and Time Boxing. A well-known prioritization method ware engineering endeavors.Software development short time
is MoSCoW, which ranks characteristics according to ”Must boxes, also called iterations because of their integration with
have,” ”Should have,” ”Could have,” and ”Would nice to have.” the duration, lower risks. Agile development is a catch-all
Compared to XP and Scrum, this is heavier. It offers a method term that includes several different methodologies. The Agile
that is independent of technique and adaptable to changing Manifesto included the XP, Crystal, Scrum, DSDM, and FDD
requirements. Both in terms of money and time, it is effective. methodologies in 2001. That’s what Fig. 12 shows.
4) Roles and Responsibilities
• Executive Sponsor: A significant position from the user
organization with the authority and duty to allocate funds
and resources as needed. This position has the final say
in decisions.
• Visionary: The person in charge of starting the project by
making sure that all necessary needs are identified at the
outset. The visionary perceives the project’s and system’s
commercial objectives the most accurately. Overseeing Fig. 12. Agile Modeling
and guiding the development process is another respon-
sibility. 1) Background
• Friend: Individual adds the user community’s expertise to Scott Ambler first suggested agile modeling (AM) in 2002
the project and makes ensuring the developers get enough [15]. It only addresses modeling and documentation. Since
user input while they are working on it. it isn’t a comprehensive approach, it can be applied to any
• Advisor: A user can be any anyone who contributes software development process.
everyday project knowledge and a significant point of 2) Philosophy and Scope
view. The person in charge of overseeing the project AM modeling is new. Agile principles are used to adjust
overall may be an IT staff member or a member of the modeling approaches. This practice-based method models and
documents software-based systems. It is a collection of best and Crystal Sapphire are the division of colors in the Crystal
practices and ideals, concepts, and techniques for modeling family. These methodologies can be used for small projects
software that may be implemented to a software development or for critical projects that may be dangerous for human life.
project efficiently and lightly. It supplements Scrum, XP, and This can be seen in Fig. 13.
RUP and is specifically included in the Disciplined Agile
Delivery (DAD) paradigm [16, 17]. The goal is to minimize
models and documentation. Communication and teamwork are
shown to address cultural difficulties.
The methodology targets small teams but does not specify one.
AMDD works with all non-modeling agile methods.
3) Features and Benefits
The team size, precise duration of iterations, distribution, and
system criticality of AM rely on the development process Fig. 13. Crystal Methodology
being employed. This is because AM is not a stand-alone
software process development method and should be used in 1) Background
conjunction with other development methods. In 2001, Alistair Cockburn developed it. It places greater
Values: incorporate the XP principles of courage, communi- emphasis on people than on procedures.
cation, simplicity, and feedback in addition to humility. 2) Philosophy and Scope
Objectives: Applied Modeling (AM) aims to clarify and A collection of agile methods called ”Crystal methods” are
demonstrate how to implement a set of values, principles, and chosen based on project complexity and team size, and the
practices that result in lightweight and effective modeling. It best way is customized for each unique project. More co-
also addresses the question of how to apply modeling tech- ordination and more sophisticated techniques are probably
niques on Agile software development processes and how to required for larger projects than for smaller ones. Four colors
apply effective modeling techniques regardless of the software are used to illustrate it: Red for extremely huge scale, Orange
process that is being used. for large size, Yellow for medium size, and Clear, which
4) Roles and Responsibilities emphasizes communication in small teams creating non-life-
It is anticipated that developers and project stakeholders will critical software. Frequent delivery, reflective improvement,
comprise AMDD teams. Developers that are self-motivated close communication, attention, personal safety, ease of access
and diligent should make up teams. Everyone has to work in to knowledgeable users, and a technical environment featuring
teams to complete the modeling. automated testing, configuration management, and frequent
5) Limitation integration are all components of the crystal methods [17].
Applying agile modeling disciplines might be challenging. Projects are categorized based on team sizes using the Crystal
• in big teams (more than 30) without sufficient tooling family of techniques, which is essentially a project manage-
assistance. ment philosophy. Because the approach serves as a foundation
• when it is impossible for team members to communicate for choosing and fine-tuning other techniques, it is somewhat
and work together on models (which would make Agile challenging to define the scope of Crystal.
Software Development challenging in general). 3) Features and Benefits
• when one’s modeling abilities are poor or absent. Team size: Cockburn values premium individuals, but the
Crystal Family can fit any size team. The team size in Crystal
I. Crystal Clear can reach six developers. The number of developers on
Alistair Cockburn created Crystal Methods. Crystal Clear the Crystal Orange team ranges from ten to forty. Systems that
is used in non-risky projects, whereas Crystal Sapphire is are vital to life are not suited for crystal methods.
used in riskier ones to indicate the level of risk to human Length of iteration: Up to four months for big, important
life. Interaction, people, communication, community, talents, projects.
and skills on Crystal focus are the six fundamental aspects Qualities: Regular supply, enhanced reflection, osmotic com-
of nature. Process is the Crystal method’s secondary consid- munication, personal security, concentration, and simple ac-
eration. Crystal’s reflective improvement, frequent delivery, cess to knowledgeable users Technical setting featuring con-
osmotic communication, and ease of access to experienced figuration management, automated testing, and regular inte-
users are characteristics that point to a greater likelihood of gration
success. The methods are flexible and non-rigid due to their Techniques: Investigative 360°, Prompt triumph, Strolling
human-powered or people-centric focus. The Crystal family skeleton, Gradual reconstruction, Radiators of information
of techniques uses color to indicate the ”weight” of which Methods: Delphi estimation using expertise ranking, Blitz
methodology to apply. Crystal Sapphire or Crystal Diamond planning, Reflection workshop, Methodology shaping, stand-
are the division of colors in the Crystal family. Methodologies up meetings every day, crucial interaction design, side-by-side
like Crystal Clear, Crystal Yellow, Crystal Orange, or Crystal programming, and process miniature Burn diagrams
Orange Web, Crystal Red, Crystal Maroon, Crystal Diamond, 4) Roles and Responsibilities
• Sponsor: Provides funding for the endeavor and issues 2) Philosophy and Scope
the mission statement. The AUP outlines a clear-cut, uncomplicated method for
• Senior Designer: upholds team hierarchy, applies tech- creating business application software that adheres to the
niques, and creates system designs. RUP while utilizing agile approaches and concepts. The AUP
• Screen drafts, design sketches and notes, source code, was replaced by Disciplined Agile Delivery in 2012. On the
packaged systems, migration code, and test cases are all evolution of AUP, no work has been done since.
produced by designers and programmers. To increase efficiency, the AUP uses agile practices like
• User: Assists with screen and use case drafting. database refactoring, agile change management, test driven
• Business Expert: Could originate from senior designer, development (TDD), and agile modeling.
sponsor, or user. 3) Features and Benefits
• Coordinator, Examiner, Composer: Could originate from Disciplines: There are seven work areas or disciplines that
the designers. The following jobs are also organized into are completed in each iteration. Iterative disciplines define the
teams at Crystal Orange: external test teams, architecture, tasks that members of the development team carry out in order
technology, functions, infrastructure, system planning, to create, test, and deploy software that is functional and satis-
project mentoring, and architecture. fies the needs of the stakeholders. These seven fields of study
5) Limitation are: Model, Implementation, Test, Deployment, Configuration
• Four fundamental criticalities are supported by crystal:
Management, Project Management, Environment.
the loss of life, essential money, discretionary money, and AUP Philosophies: Your staff knows what they’re doing,
comfort due to failure. Simplicity, Agility, Focus on high-value activities, Tool inde-
pendence.
J. Agile Unified Process (AUP) AUP Phases
The overall development cycle consists of four phases:
Agile Unified Process (AUP) is a simplified version of
Inception, Elaboration, Construction, Transition.
Rational Unified Process (RUP) for real-time and web-based
AUP Releases
development. AUP combines RUP with AM (Agile Method).
Two types of iterations are distinguished by the Agile
DAD (Disciplined Agile Delivery) pressed AUP in 2012. AUP
Unified Process: a production release iteration leads to a
utilizes TDD, AM, agile change management, and database
deployment to the production area, and a development release
refactoring approaches to enhance productivity. AUP iteration
iteration results in a deployment to the quality-assurance
involves seven disciplines: model, implementation, testing,
and/or demo area. This improves the Rational Unified Process
deployment, configuration management, project management,
significantly.
and environment. Within each discipline, Agile Unified Pro-
4) Limitations
cess defines work product sets, roles, duties, and activities
for development team members.AUP consists of four phases: • The issue of model inconsistency is not specifically

Inception, Elaboration, Construction, and Transition. A refine- discussed.


ment to the Rational Unified Process highlights two types • If limitations are not properly adhered to, modeling may

of iterations: development, resulting in quality assurance and jeopardize agility; in fact, there is a lengthy list of AUP
demo area deployment, and production, resulting in production models that are produced as the absolute minimum.
area deployment.
V. A DVANTAGES AND L IMITATION OF AGILE M ODEL
A. Advantages:
• Performance improvement: Knowledge sharing and im-
provement occur in daily stand-ups. Discussion of tough
projects with simple story and design improves team-
work. Better and more frequent communication improves
team trust and productivity, increasing ROI.
• Design flexibility: The ability to change routes quickly
during project development. Agile design is flexible be-
cause it adapts quickly to changing requirements.
Fig. 14. Agile Unified Process Phases • Flexible: Agile software development iterates. Every iter-
ation requires analysis, design, development, and testing.
1) Background Customers and end users receive working software for
The IBM Rational Unified Process (RUP), created by Scott feedback after each iteration. Agile strategy incorporates
Ambler, has been condensed into the Agile Unified Process client modifications during software development to im-
(AUP). Originally presented in 2005 and updated in 2006 [18]. prove it.
The primary improvements concentrate on web-based and real- • Reduces development risks: Delivering updated little soft-
time development. ware to users after each short development cycle and
collecting user response alerts developers to potential • Helps management more than developers: Agile helps
flaws. It swiftly detects and addresses errors. management set software development goals, deadlines,
• functional software: Agile development delivers tested, and decisions.
functional software for reliability and user and technology • Culture and co-located teams: Global application devel-
input. Agile methods leverage working software that pro- opment teams make face-to-face contact impossible. Most
vides more feedback, making projects easier to manage engineers use video conferencing to deliver high-quality
and offering clients the best product through learning. products.
• Satisfies customers: Agile software development involves • Experienced resources: Only senior programmers can
customers. User receives deliverables after each iteration make agile development decisions, frequently with ex-
for use and enhancement based on customer feedback perienced resources.
only. The program is high-quality and satisfying because
R EFERENCES
it is developed to customer needs.
• Avoids overproduction: Traditional system requirements [1] D. N. M. S. V. TAPASKAR, “Enacted software development process
based on agile and agent methodologies,” International Journal of
incorporate unnecessary functionality. Despite being low Engineering Science and Technology, vol. 3, no. 11, 2007.
on the backlog, Waterfall builds low-value features. Agile [2] D. D. Jamwal, “Analysis of software development models,” IJCST, vol.
builds the best product now. 1, no. 2, 2010.
[3] J. R. J. W. Pekka Abrahamsson, Outi Salo, “Agile software development
• Limited software internal design documentation: Ag- methods - review and analysis,” VTT Elektroniikka, 2002.
ile approach rarely documents software internal design. [4] W. R. Duncanillam, A Guide To The Project Management Body Of
Product features, iteration duration, and date are key doc- Knowledge, 1996.
[5] W. Royce, Software Project Management:A Unified Framework, 1998.
uments, saving development time and speeding project [6] K. B. Marten Folwer, James A.Highsmith, Manifesto for Aigle Software
delivery. Development, http://agilemanifesto.org/, 11 2011.
• Fault detection: Business processes need bug-free soft- [7] ”Agile Software Development,” [Online]. Available:
https://searchsoftwarequality.techtarget.com/definition/agile-software-
ware. Continuous testing and integration with agile meth- development
ods like XP create bug-free software. Each fourth iter- [8] P. M. Institute, Agile Practice Guide, Agile Alliance, 2017, pp. 8-9.
ation checks for and repairs faults before they escalate. [9] K. Conboy, Agility From First Principles: Reconstructing the Concept
of Agility in Information Systems Development, Information Systems
Continuous integration, pair programming, and automated Research, 2009, pp. 329-354.
tests find regression problems earlier. Continuous testing [10] Beck, K. and C. Andres, “Extreme Programming Explained” (2nd
helps improve future code. Edition), Addison-Wesley Professional, 2004.
[11] J. Highsmith, Agile Software Development Ecosystems. Addison Wes-
• Best practises: Teams may employ competent, well- ley, 2002.
tested applications across platforms and devices by in- [12] M. G. M. Frank, ”Introducing agile methods: Three years of experience,”
corporating Agile methodology. Agile commences with IEEE, pp. 334-341, 2004.
[13] R. P. Pawar, “A Comparative study of Agile Software Development
“architecture killers”. Failure early is better than late Methodology and traditional waterfall model”, Innovation in engineering
because most changes are cheap after spending money. science and technology, pp. 1-8, 2015.
[14] U. Kumari and A. Upadhyaya, “Comparative Study of Agile Methods
Agile software development benefits both the client and the and Their Comparison with Heavyweight Methods in Indian Organi-
development team. Agile handles common project issues like zations”, International Journal of Recent Research and Review,Vol.6 ,
budget management, schedule predictability, and scope creep. 2013.
[15] Shelly, “Comparative Analysis of Different Agile Methodologies”, In-
ternational Journal of Computer Science and Information Technology
B. Disadvantages: Research, Vol. 3, Issue 1, pp. 199-203, 2015.
[16] Manvender Singh Rathore and Deepa V. Jose, “Oriental Journal of
• Dealing with customers: Users and project teams must Computer Science & Technology”, (2017), Vol. 10 (2), pp. 352-358.
[17] U. Kumari and A. Upadhyaya, “Comparative Study of Agile Methods
collaborate in agile software development. Agile pays off and Their Comparison with Heavyweight Methods in Indian Organi-
and ensures quality. The user representative must work zations”, International Journal of Recent Research and Review,Vol.6 ,
hard on these concepts throughout the project. 2013.
• Integration testing difficulty: To ensure quality without a
lengthy test process, testing is incorporated throughout
product development. Agile projects require testers, rais-
ing resource expenses. When a project overruns, a long,
unpredictable test period can be costly.
• rapid delivery: Agile supports rapid product delivery,
followed by User Acceptance Testing (UAT), which de-
mands the product owner to be ready to test features
quickly as they are supplied and throughout the project.
• Poor documentation: Agile saves time but damages
engineers. Project deadlines prevent extensive design
and implementation documentation since internal design
changes with every iteration based on users’ expectations.

You might also like