Agile Software Development Model Methods Advantages and Disadvantages
Agile Software Development Model Methods Advantages and Disadvantages
1.
Amel DŽANIĆ, 1.Amel TOROMAN, 2.Alma DŽANIĆ
University of Bihać, Faculty of Economics, Ulica Pape Ivana Pavla II/2, 77000 Bihać, BOSNIA & HERZEGOVINA
2.
Abstract: The only constant in today's world is a change and therefore the changes are an unavoidable factor also from the aspect of software production. Poor reaction to
changes in traditional software development methods has led to the emergence of a new agile philosophy, which has embraced change and put it in its focus. The agile
approach essentially implements the set of values and principles given in the agile manifesto. This paper presents an agile model that can be recognized in any agile method.
Furthermore, the paper presents the several agile methods that are often used today. The advantages and disadvantages of these methods are stated, and software
development through each of these methods is described. The result of the paper is the discussion on the use of these methods, as well as the main problems and the possible
directions of development of these methods is addressed.
Keywords: Agile software, development, advantages and disadvantages
95 | F a s c i c u l e 4
ACTA TECHNICA CORVINIENSIS – Bulletin of Engineering
Tome XV [2022] | Fascicule 4 [October – December]
≡ Project initiation – is a second phase where a working low–risk approach to software development that has the
architecture of the system is created, which is discussed ability to manage unclear or rapidly changing requirements.
by all stakeholders with the necessary deadlines and The XP method emphasizes teamwork, therefore managers,
working frameworks. developers and clients are part of the team. Team size is one
≡ Construction of iterations – is third phase of this model in of the limitations of extreme programming, as this method is
which iterations are made, i.e., this phase consists of considered to be suitable for small and medium–sized
planning and building the iterations. In other words, teams, reportedly anywhere from 2 to 12 team members,
there is a successive incremental process that results in although projects with 30 members have been reported
software that meets the evolution of user requirements. successful [5][6].
This is a consequence of the close collaboration of all The life cycle of XP method has six phases and they are as
stakeholders, and in this way the quality of the software is follows [6]:
most effectively ensured. Also, each iteration of the ≡ The research phase deals with requirements modelling
software needs to be tested. and system architecture. In this phase, user requirements,
≡ Product release – is the final phase of this model. In this tools and technology are defined. A schedule of system
phase, the final software testing takes place, as well as versions is created, i.e. software releases are planned.
work on necessary corrections and software Based on the schedule, plans are made for each
documentation. Then product is realised, and end user individual iteration. The user writes user stories that
training begins. Also, the working team may stay to represent the software specification [7]. For each user
maintain and improve the project as well as user support. story, it is necessary to create at least one test that will
confirm the correctness of the user story [5]. According to
Project selection Construction of
and approval
Project initiation
iterations
Product release the assessment, the user story should be implemented
within 3 weeks, and if it takes longer, it should be divided
into several stories.
Iteration 1 Design, programming , testing
≡ In the Planning Phase, priorities for the implementation
Iteration 2 Design, programming , testing of user stories are set, and the content of the first small
Iteration 3 Design, programming , testing release of the software is agreed upon. The developer
makes an estimate of how much effort and time each
Figure 1. Agile model – general form of the agile development [4] user story requires, and then an implementation
The advantages of this model are [4]: schedule is agreed upon. The first small release of the
≡ Fast response to the user, the first deliveries are in weeks software should be completed within two months. If the
and not in months. A project always has demonstrable research phase is done well, then the planning phase
results – the final version of each iteration is usable should last a few days. The basic goal of planning a
software. software release is to find software functions, and to
≡ Great flexibility, very often combined with other existing make a schedule for delivering these functions [8]. During
models. the planning phase, the team size, schedule, and who
≡ Due to the use of feedback loop and small realises, a owns the code and working hours are determined [9].
high–quality product is created with a high degree of ≡ The iterations to release phase includes basic
client satisfaction. development activities such as: coding, testing and
≡ Developers are more motivated – they prefer to produce integration [9]. This is an iterative phase where each
usable solutions, and they don't like to compile iteration can last from one to four weeks. In the first
documentation. iteration, the stories that make up the structure of the
The disadvantages of this model are [4]: entire software architecture were chosen [7]. After
≡ They are problematic for larger projects. There are coding, functional testing is performed, and if it is
discussions about their applicability to larger projects. successful, then the code is integrated. If it happens that
≡ The documentation is questionable. Since the the code does not fulfil the request, then the so–called
documentation is on the back burner, the question arises refactoring. Quick meetings are used to review
as to whether the necessary documentation will be development progress or to resolve any issues should
compiled at all. This is a big problem, since they arise. After the final iteration of the code, the
documentation is an integral part of what developers production phase begins.
produce. ≡ Production phase – software is delivered in small
AGILE METHODS releases. A small piece of planned software is released
Extreme programming – XP that implements some business need or function.
The extreme programming method – XP is an agile software Frequent releases allow XP to build the desired system
development method developed by Kent Beck in 1996. The incrementally. The duration for one release is from one to
XP method represents a lightweight, flexible, disciplined, four weeks, and it can contain a certain number of
96 | F a s c i c u l e 4
ACTA TECHNICA CORVINIENSIS – Bulletin of Engineering
Tome XIV [2022] | Fascicule 4 [October – December]
iterations. In order to check whether the software is ready ≡ The initial phase is the outline planning phase in which
for the production phase, tests must be performed [8]. the general goals of the system being designed and
≡ Maintenance phase – the software continues to evolve developed are stated. The project team, necessary tools
for some time. In the maintenance phase, certain new and resources are also defined. A PBL (product backlog) is
functionalities are created, while the old ones continue to generated, which is used to document requirements in
work [7]. It can also lead to the introduction of a new the form of user stories and functionality. The requests
software architecture, but then the team must be much are then analysed and given specific priorities, and the
more attentive to the software in use [9]. assessment of the work required for each request is
≡ Death phase – there are two possible situations in which carried out by the product owner, who is also responsible
the software reaches this phase. The first reason is that all for maintaining a visible and transparent PBL [10]. The
software functionalities that users need have been PBL is subject to continuous updating since user requests
developed, and users are satisfied, and there are no more are implemented incrementally, and also during software
user stories to implement [9]. Then it is time to carry out development there may be a change in the priority of
the final release of the software, and approach the user requests. It is important to note that the
creation of software documentation. Another reason is documentation is never complete and is supplemented
that the system does not provide the desired outputs, or during the process itself in the so–called Sprint Backlogs.
if it becomes too expensive for further development, ≡ Sprint phase is a time period of one month or less (most
then it is better to stop the software development, which often two weeks) in which one increment of the iterative
is called entropy death of the system. process is made [10]. The advantage of this way of
The main advantages of the XP method can be summarized working is that it is possible to deliver part of the software
in the following few points [2]: product to the client at the end of the sprint and to
≡ Incremental development is supported through small adapt part of the product to new requirements in the
and frequent software releases. next cycle based on his suggestions. In this way, it is
≡ Improving productivity through a feedback mechanism. possible to learn in the course of the work, and not at the
≡ Maintaining simplicity through constant refactoring. end, based on experience and introduce changes and
≡ Improving quality through the creation of automated improvements that give a better end result, that is, a
tests before installing functionality. good software product with which the client will be
On the other hand, the method also has its disadvantages, satisfied. Sprint contains the following activities, which
namely [2]: can be said that correspond to the traditional stages of
≡ Reduced capability for distributed teams as it focuses on the life cycle [10]:
community and co–location. Sprint Planning – represents a meeting that lasts a
≡ This approach to software development requires maximum one day and very often shorter at which
additional training for newly joined team members. tasks from the so–called Product Backlog are ordered
≡ XP depends on informal documentation such as user by priority from the highest to the lowest. The so–
stories, code, etc. called Product Backlog represents the place where
the functionalities are defined by the product owner.
≡ The practice of user involvement is effective, but on the
In this activity not all stakeholders are involved, and it
other hand, it is also very stressful as well as quite
is estimated what needs to be done for these tasks
expensive because it can keep the customer away from
and how many of them can be done during the
his real work for a long time.
engineering work.
SCRUM method
Sprint – is a time–limited period, from 2 to 4 weeks,
Scrum represents an agile method of software development
in which tasks taken from the Sprint Backlog are
that focuses on the management of the iterative process,
executed. In short, these tasks are coded, tested,
instead of individual technical approaches. The Scrum
integrated and documented. The goal of this agile
method was developed to manage the system
methodology is that at the end of each sprint,
development process. The basis of this method is an
functionalities have been developed that can go into
empirical approach that applies the ideas of industrial
production.
process management theory to system development,
Daily Sprint Meeting – is held every working day at
resulting in an approach that reintroduces the ideas of
the same time and lasts a maximum 15 minutes. Any
flexibility, adaptability and productivity. This approach does
deficiencies or obstacles in the system development
not define any specific software development techniques for
process or engineering practices are sought,
software implementation. Scrum concentrates on how team
identified and removed to improve the process.
members should function to produce a system flexibly in a
Sprint Review – the Scrum development team and
constantly changing environment [10].
the Scrum Master present the results of the sprint, i.e.
The lifecycle of SCRUM method has three phases as follows
the work product increment presents to the product
[2]:
97 | F a s c i c u l e 4
ACTA TECHNICA CORVINIENSIS – Bulletin of Engineering
Tome XV [2022] | Fascicule 4 [October – December]
owner, customers and users. Participants evaluate can generate many models, which are then reviewed and
the product increment and decide on the next the optimal model is selected based on the
activities. The preview can even change the direction requirements.
of the system being built. ≡ Creation of a list of characteristics: based on the model
Sprint Retrospective Meeting – is a meeting where and the required documentation an overall list of
the team and the Scrum Master answer the characteristics is created, i.e. a specification for the
questions: What was good in the last sprint? What software. A list of characteristics is created, which is
was not good in the last sprint? What to do to work grouped into sets by subject areas.
better? After that, the new cycle starts again with a ≡ Planning by characteristics: a high–level plan is created
new sprint planning. based on a previously approved list of characteristics. The
≡ The project closure phase occurs when the user plan is created as an order based on the client's priorities
requirements are met and the required software goals and depending on the characteristics. The master
are achieved based on the dialogue between the developer assigns characteristics to a specific developer
product owner and the team. The latest version of the called the class owner.
product is ready for "release" and distribution, and the ≡ Design by characteristics: is an iterative step where each
user documentation is being completed [2] [10]. iteration can last up to two weeks. The master developer
The advantages of the SCRUM method are as follows [2]: and the class owner create a package project for each
≡ The software product is divided into a smaller set of class with sequence diagrams. Package design and
manageable and understandable components shared by diagrams are reviewed before approval.
teams resulting in increased communication and shared ≡ Build by Features: Designs are implemented, after which
knowledge. the code will be reviewed and tested. This is also an
≡ Transparency – the development team has visibility into iterative step like design by features. After all the
everything, including communication and feedback from iterations are done, the developed features will be
product owners through the various meetings held published in the main version, then a new set of features
throughout the development process. is launched, and so on.
≡ Self–organization – all teams share responsibilities. The FDD model has certain advantages which can be
≡ Self–retrospective – provides a tool to self–assess goals summarized as [9]:
achieved against those needed after each iteration or ≡ FDD is a highly adaptable method that can take into
sprint, increasing productivity through continuous account late changes in client requirements.
testing. ≡ Delivers high quality results after each stage.
≡ Simple process. ≡ The results of each iteration can be delivered within one
≡ Ignoring any change in sprint duration by prohibiting the to four weeks which helps as we can have quick
addition of any functionality to the sprint, allowing the feedback from clients.
team to finish their current in–progress functionality. However, there are certain limitations and disadvantages
The disadvantages of the Scrum method are as follows [2]: when using the FDD model, such as [9]:
≡ Violation of responsibility may occur, since there are no ≡ There are no guidelines on requirements gathering,
precisely defined responsibilities for each team member. analysis and risk management.
≡ SCRUM does not prescribe any specific practices, work ≡ The FDD model requires an expert team with a high level
methods or any guidelines on engineering practices. of design and modelling skills.
Feature driven development (FDD) method ≡ The FDD model does not take into account issues of
This method manages short incremental iterations that lead project criticality.
to functional software. The basis of the FDD method is the OVERVIEW OF AGILE METHODS AND DISCUSSION
management of software development based on a list of Agile methods are essentially iteratively incremental
required characteristics of business needs. The FDD method methods. Iterative nature is achieved by using user feedback
is a highly adaptive software development method that can with which a certain functionality is “polished” until the
account for late changes in software requirements. The main moment it meets user requirements. Small software releases
focus of the FDD method is the delivery of high–quality are given always which is also iterative nature. The first
outputs during all phases of the development process [2] [9]. release of software is essentially software with a minimum
The life cycle of the FDD method contains five sequential number of functionalities that it can work with. In this way, a
processes that are performed incrementally and iteratively, quick response to the customer is offered, the first deliveries
and in this way the final software is delivered. The listed are in weeks, not in months.
steps are [9] [11]: The project always has demonstrative results – the final
≡ Development of the overall model: In this step all team version of each iteration is usable software, i.e. each
members and experts define the required context and subsequent release adds some new functionality to the
scope of the overall project. Different teams and experts software. Due to its approach where users together with the
98 | F a s c i c u l e 4
ACTA TECHNICA CORVINIENSIS – Bulletin of Engineering
Tome XIV [2022] | Fascicule 4 [October – December]
development team choose which functionalities have members of this team leave, then the knowledge about
higher priority, and incremental and iterative nature, this the system is also lost. New members who come to the
approach is adaptive and customer–oriented, not the team can have great difficulties while understanding this
development process–oriented. The agile methods that knowledge of the system. In addition, programmers
have been processed are suitable for small to medium–sized prefer to develop new software rather than maintain
projects because agile methods also prefer small to existing ones. Therefore, even when the intention is to
medium–sized teams of highly trained professionals [5]. Due keep the development team together, people leave if
to its informal nature, documentation is weak and often not they are assigned maintenance tasks.
even created. Due to adaptability, there are no long–term As mentioned before, agile methods are not very suitable for
plans. It can be said that there are only short–term plans. In building large systems. That is why it is necessary to perform
agile teams there are so–called self–organizing teams that, the so–called scaling agile methods. The fundamental
through cooperation, communication and leadership, purpose of scaling agile methods is their integration with a
achieve set goals as opposed to the command and control planning approach. To solve these problems, most large
which could be found in the traditional approach [11]. “agile” software development projects combine practices
For large, long–life systems developed by a software from plan–driven and agile approaches [12].
company for an external client, using an agile approach Recently, with the arrival of internet of things – IoT, a wide
presents a number of problems. The informality of agile range of devices are integrated into software systems, large
development is incompatible with the legal approach to amounts of data become available for analysis, virtual reality
defining contracts that is commonly used in large systems are developed, and therefore there are increasing
companies. When a system user uses an external expectations of intelligent solutions. These new
organization for system development, a software technologies have completely renewed interest and
development contract is concluded between them. A revealed new possibilities in exploring the full potential of
software requirements document is usually part of that both artificial intelligence and user interface. Because of this,
contract between the customer and the vendor. Because a strong role of agile software development in the
requirements and code development are intertwined, emergence of new technologies is predicted [13].
fundamental to agile methods, there is no definitive CONCLUSIONS
requirements document that can be included in the Certainly, agile methods represent an unstoppable trend in
contract. software development. As stated, they are very successful in
Agile methods are best suited for new software the realization of small to medium software projects, with
development, not software maintenance. However, most small teams. They have successfully responded to the
software costs in large companies come from maintaining changes that and have enabled software engineers to
their existing software systems. If maintenance involves deliver quality software that meets user requirements.
adapting and changing systems in response to new Agile methods follow the presented agile model. The agile
business requirements, there is no clear consensus on the model is valid for all agile methods that are iteratively
suitability of agile methods for software maintenance. Three incremental by its nature. This very nature ensures success of
types of problems can occur, especially with maintenance agile methods in the fight against changes in requirements
[12]: and the release of better software versions.
≡ Lack of product documentation – agile methods in most There is great discussion about their performance on large
cases do not care so much about documentation. The projects in terms of documentation, consistency of the team
collection of requests is conducted informally and as well as the size of the team itself. Furthermore, teams
gradually. Shorter meetings and face–to–face must primarily be in the same locations due to the informal
communication are also preferred. Therefore, there is no nature of the agile process, which leads to problems with
coherent document of requirements, unlike traditional distributed teams. Of course, large systems are also long–
methods. This further leads to the problem of how to lived, so they must have maintenance as well as upgrades.
subsequently maintain and upgrade the system. Maintenance and upgrading are processes that require the
However, this is a big problem if the continuity of the existence of documentation. Agile methods do not really
development team cannot be ensured. focus on formal documentation, even proponents of agile
≡ Keeping customers involved – initially the customer's methods say that documentation is unnecessary, because
representatives in the development team will be fully documentation is often not updated and is therefore
engaged. But as time goes on, their interest is lost. Thus, worthless. If there is no continuity of the team, and if there is
there will have to be adjustments and changes to try to no documentation, the big question is how such software
get interest back. systems could be maintained and upgraded. Because of
≡ Development team continuity – a fundamental aspect of these problems, agile methods are scaled, i.e. there is a
agile methods is that team members know the system process when the practices of planning and agile methods
without having to consult the documentation. If the are combined to a certain extent.
99 | F a s c i c u l e 4
ACTA TECHNICA CORVINIENSIS – Bulletin of Engineering
Tome XV [2022] | Fascicule 4 [October – December]
ISSN: 2067–3809
copyright © University POLITEHNICA Timisoara,
Faculty of Engineering Hunedoara,
5, Revolutiei, 331128, Hunedoara, ROMANIA
http://acta.fih.upt.ro
100 | F a s c i c u l e 4
Copyright of Acta Technica Corviniensis - Bulletin of Engineering is the property of
University Politehnica Timisoara, Faculty of Engineering Hunedoara and its content may not
be copied or emailed to multiple sites or posted to a listserv without the copyright holder's
express written permission. However, users may print, download, or email articles for
individual use.