Professional Documents
Culture Documents
net/publication/266742256
CITATIONS READS
25 1,405
1 author:
Harleen Flora
GNA University
5 PUBLICATIONS 133 CITATIONS
SEE PROFILE
All content following this page was uploaded by Harleen Flora on 13 October 2014.
Abstract - Software engineering techniques have been time and sometimes failing to deliver on requirements due
employed for many years to create software products. The to the Big Design Up Front approach.
selections of appropriate software development methodologies 1.1 Agile Software Development
for a given project, and tailoring the methodologies to a Agile Development Model is based on iterative and
specific requirement have been a challenge since the
establishment of software development as a discipline. In the
incremental development approach in a highly collaborative
late 1990’s, the general trend in software development manner to produce high quality software in a cost effective
techniques has changed from traditional waterfall approaches and timely manner which allows the project to adapt the
to more iterative incremental development approaches with changes quickly. Agile methodologies stresses on
different combination of old concepts, new concepts, and delivering the smallest working piece of functionality as
metamorphosed old concepts. Nowadays, the aim of most early as possible and constantly improving it and adding
software companies is to produce software in short time additional functionality throughout the project lifecycle.
period with minimal costs, and within unstable, changing Agile helps in minimizing and mitigating the overall risk,
environments that inspired the birth of Agile. and allows the project to adapt to changes quickly and does
Agile software development practice have caught the attention
of software development teams and software engineering
not require a requirements freeze upfront unlike waterfall
researchers worldwide during the last decade but scientific model. Work is carried out in iterations, which typically last
research and published outcomes still remains quite scarce. one to six weeks. The industry mostly opts for agile
Every agile approach has its own development cycle that development process as it is highly result oriented. Agile
results in technological, managerial and environmental methods emphasize effective communication over written
changes in the software companies. This paper explains the documents. The Project requirements are well documented
values and principles of ten agile practices that are becoming upfront. Then, depending upon business priority, these
more and more dominant in the software development features are assigned to releases, which are tied to
industry. Agile processes are not always beneficial, they have iterations. Agile methods emphasize working software as
some limitations as well, and this paper also discusses the
advantages and disadvantages of Agile processes.
the primary measure of progress. The key characteristics of
the agile methodology are delivering frequently,
Keywords - Agile Software Development, Agile Methodologies, incremental and iterative approach, less defects, continuous
AUP, AM, AUP, DSDM, FDD, XP, Scrum, Lean, Kanban, testing and integration, collaborative approach and
Crystal. maximum ROI.
Although, there are many success stories of using Agile in
I. INTRODUCTION software development project in last decade but knowledge
The Waterfall Model is a sequential development approach, of implementing these practices in a particular project is
in which development flows downwards through the phases very scared. Therefore, this publication aims to
of requirements analysis, design, implementation, testing systematically review the existing literature on agile
and maintenance. software development techniques and to understand the
In waterfall model, project is divided into sequential features, benefits and challenges of using various agile
phases; emphasis is on planning, time schedules, target techniques. This paper also provides the benefits and
dates, budgets and implementation of an entire system at limitations of Agile Software Development and
one time. Tight control is maintained over the life of the recommends when to use them.
project via extensive written documentation, formal
reviews, and approval/signoff by the user and information 1.2 Agile Manifesto
technology management occurring at the end of most In recent years, with the rising competence of software
phases before beginning the next phase. market, researchers are seeking more flexible methods that
The waterfall methodology normally doesn’t allow can be used to adjust to dynamic situations where software
complete moving on the next stage unless the previous system requirements are changing over time. In 2001, the
stage is fully completed and verified however there are few Agile manifesto [1], established the approach now known
advantages and pitfalls in this methodology. The Waterfall as agile software development process created by 17
model is a traditional engineering approach applied to influential figures, a guiding force for Agile practitioners
software engineering. It has been widely blamed for several which details four core values for enabling high-
large-scale government projects running over budget, over performance, efficiency and outputs:
www.ijcsit.com 3626
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
1. Individuals and their interactions, over processes and 2.5 Adaptive Software Development (ASD)
tools. 2.6 Feature Driven Development (FDD)
2. Delivering working software, over comprehensive 2.7 Dynamic System Development Method (DSDM)
documentation. 2.8 Agile Modeling (AM)
3. Customer collaboration, over contract negotiation. 2.9 Crystal
4. Responding to change, over following a plan. 2.10 Agile Unified Process (AUP)
The items on the right have value, however, the items on
the left define the agile philosophy. Exploring each of these 2.1 EXTREME PROGRAMMING (XP)
values will aid in gaining knowledge of the agile process A. Background
philosophy while exposing how applying the philosophy to It was introduced in 1998 by Kent Beck, Ron Jeffries, Ward
defined methods will enhance software development Cunnigham based on experience from C3 project [3].
aligning it with today’s volatile markets. B. Philosophy and Scope
1.3 Agile Principles Extreme Programming (XP) is a well-known and a light
The Agile Alliance also documented the principles they weight discipline of software development that focuses on
follow that underlie their manifesto [2]. As such the agile engineering practices. XP aims at enabling successful
methods are principle-based, rather than rule-based. Rather software development despite unclear or constantly
than have predefined rules regarding the roles, changing software requirements. It is a system of practices
relationships, and activities, the team and manager are which is intended to improve software quality and quickly
guided by these principles: addresses the changing customer requirements to meet
1. Our highest priority is to satisfy the customer through business needs. It consists of gathering informal
early and continuous delivery of valuable software. requirements from on-site customers, organizing teams of
2. Welcome changing requirements, even late in pair programmers, developing simple designs, continuous
development. Agile processes harness change for the refactoring, continuous integration and testing; and
customer's competitive advantage. advocates frequent releases in short development cycles
3. Deliver working software frequently, from a couple of that improves productivity as well introduces checkpoints
weeks to a couple of months, with a preference to the where new customer requirements can be embraced [4,5,6].
shorter timescale. XP is best suited for projects that require collocated teams
4. Business people and developers must work together of small to medium size team. On the project side XP is
daily throughout the project. meant for projects where the requirements are unstable and
5. Build projects around motivated individuals. Give them unpredictable.
the environment and support they need, and trust them C. Features and Benefits
to get the job done. Team Size: 2 to 12 members and preferably co-located
6. The most efficient and effective method of conveying Iteration Length: Usually 1 to 3 weeks.
information to and within a development team is face- XP Phases: It has 6 phases: Exploration (write story for
to-face conversation. current iteration), Iteration Planning (Prioritize Stories,
7. Working software is the primary measure of progress. effort and resource estimates), Iteration to release
8. Agile processes promote sustainable development. The (Analysis, design, coding, testing), Production (Rigors
sponsors, developers, and users should be able to testing), Maintenance (Customer supports, release for
maintain a constant pace indefinitely. customer use), Death Phase (No more requirements).
9. Continuous attention to technical excellence and good XP Values: It is based on 4 values:
design enhances agility. a. Communication: It is definitely a key factor to the
10. Simplicity, the art of maximizing the amount of work success of any project as most projects fail because of
not done is essential. poor communication. It is accomplished by
11. The best architectures, requirements, and designs collaborative workspaces, co-location of development
emerge from self-organizing teams. and business space, paired development, frequently
12. At regular intervals, the team reflects on how to changing pair partners, frequently changing
become more effective, then tunes and adjusts its assignments, public status displays, short stand-up
behavior accordingly. meetings and unit tests, demos and oral
communication, not documentation.
II. AGILE METHODOLOGIES b. Simplicity: It means to develop the simplest product
Several Agile techniques have been proposed and used by that meets the customer’s needs. It encourages
researchers in difference domains. This section identifies delivering the simplest functionality that meets
some of the well-known existing agile software business needs, designing the simplest software that
development methods and their objectives. Following supports the needed functionality, building for today
various Agile methodologies share common principles, but and not for tomorrow and writing code that is easy to
differ in practices: read, understands, maintains and modify.
2.1 Extreme Programming (XP) c. Feedback: It means that developers must obtain and
2.2 Scrum value feedback from the customer, from the system,
2.3 Lean Software Development (LSD) and from each other. It is provided by aggressive
2.4 Kanban iterative and incremental releases, frequent releases to
www.ijcsit.com 3627
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
end users, co-location with end users, automated unit D. XP Roles and Responsibilities
tests, automated functional tests. XP Coach: Guides team to follow XP process.
d. Courage: It means to be prepared to make hard
decisions that support other principles and practices. XP Customer: Writes stories, functional tests and sets
Courage is required to do the right thing in the face of implementation priority.
opposition and do the practices required to succeed. XP Administrator: Setup programmer environment and act
as local admin.
XP Activities: Coding, Testing, Listening, Designing XP Programmer: Writes tests and code.
XP Practices: It is based on following 12 practices: XP Tracker: Tracks iterations such as program/ project
a. Planning Game: It is collaboration between a customer manager, and provides gives feedback on accuracy of
and the developers where planning for the upcoming estimates and traces progress of iterations.
iteration is done, user stories are provided by the XP Tester: Helps customer write functional tests and runs
customer, technical persons determine schedules, functional test and maintains testing tools.
estimates, costs, etc. XP Consultant: An external member who guides the team
b. Small Releases: It supports the planning game. Small to solve problems. Manager makes decisions.
releases are in terms of functionality and less E. Limitations
functionality means releases happen more frequently. XP is not suitable for large, difficult or complex
c. System Metaphor: XP teams develop a common vision projects.
of how the program works which is called metaphor. It It requires great amount of coordination between the
is the oral architecture of the system which describes programmers while doing pair programming and any
how the program works. small conflict may damage the objective of collective
d. Simple Design: Do as little as needed and provide code ownership and hence impact the iterations.
simplest possible design to get job done. The Development of ‘metaphor’ is required to be shared
requirements will change tomorrow, so only do what’s within team carefully to ensure the common
needed to meet today’s requirements. understanding of the terminology.
e. Test Driven Development: XP teams focus on Pair programming is a very important practice in XP.
validation of the software at all times. Programmers However, it cannot be applied to one-developer-
develop software by writing tests first, and then projects. Customer collaboration is not very strong.
software that fulfills the requirements reflected in the Testing and code development is done by the same
tests. Customers provide acceptance tests that enable person. All the possible problems may not be found
them to be certain that the features they need are because the developer tests from the same perception
provided. the product is built.
f. Refactoring: XP teams improve the design of the 2.2 SCRUM
system throughout the entire development. This is done A. Background
by refactoring out any duplicate code generated in a It was first described by Jeff Sutherland, Ken Schwaber,
coding session. Refactoring is simplified due to Mike Beedle in 1996 [7]. It focuses on Agile project
extensive use of automated test cases. management technique rather than development aspect of
g. Continuous Integration: New features and changes are projects. Scrum is more focused on managerial skills of
worked into the system immediately. XP teams focus both managers and developers. Thus, theoretically, scrum
on validation of software at all times. Programmers can be applied to any industry.
develop softwares by writing tests first, and then code
that fulfills the requirements reflected in the tests. And B. Philosophy and Scope
customers provide acceptance tests that enable them to Term ‘Scrum’ is taken from the game ‘Rugby’ where
be certain that features they need are provided. player passes the ball in steps to hit the goal, which is
h. Collective Code Ownership: It idea that all developers similar as moving project in iterations to meet the core
own all of the code and enables refactoring. objective. Scrum is iterative, incremental process to
i. Pair Programming: XP Programmers write all develop any project/product or managing any work. It is a
production in pairs, two programmers working together light weight software development process consisting of
at one machine. implementing a small number of customer requirements in
j. Coding Standards: All code should look the same, it two to four week sprint cycles. The continuous integration
should not possible to determine who coded what using small sprint reduces the risks and help gaining client
based on the code itself confidence. Daily stand-up meeting is very powerful
k. On site Customer: It acts to “steer” the project as approach to manage and drive the sprint and hence project
customer provides quick and continuous feedback to [8].
the development team. Teams should be small comprising about seven to ten
l. 40 Hour Week: The work week should be limited to 40 people. It can be scaled to larger numbers. The
hours. Regular overtime is a symptom of a problem methodology is aimed at project management in changing
and not a long term solution. environments.
www.ijcsit.com 3628
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
www.ijcsit.com 3629
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
maximum possible gain and it integrates well with the 2.5 ADAPTIVE SOFTWARE DEVELOPMENT (ASD)
concept of six sigma. A. Background
It was described by Jim Highsmith and Sam Bayer in 2000
D. Roles and Responsibilities [10]. ASD is part of rapid application development and
No specific mention of roles and responsibilities except that focuses on rapid creation and evolution of software
LD is aimed at CEOs before it can be implemented in systems.
the organization. B. Philosophy and Scope
E. Limitations ASD is a method for creating and developing software
The project is highly dependent on cohesiveness and systems. It offers solutions for the development of large and
the individual commitments of the team members complex systems by incremental and iterative development,
therefore team building is critical factor. with constant prototyping. It involves product initiation,
A missing or inappropriate involvement from adaptive cycle planning, concurrent feature development,
appropriate business analyst could result in scope quality review, and final quality assurance and release. It
creep. relies on team members’ work at peer level. Usually
2.4 KANBAN customer doesn’t have all the requirements in the beginning
A. Background and act as a member with the concept of progressive
The Kanban method as formulated by David J. Anderson. It elaboration.
focuses on continuous flow of work instead of sprinting; It is essentially a management philosophy for agile projects
starting and stopping the delivery of work every 2 to 4 and therefore limited to project management activities. The
weeks. limits of this methodology when it comes to team sizes
B. Philosophy and Scope depends on the size of the project, but like any other agile
Kanban is taken from Japanese term which means methodology the level of agility decreases as the team gets
‘signboard’. Kanban is a visual process management system larger. The methodologies of communication determine the
that tells what to produce, when to produce it, and how rigor in a project and the support for distributed
much to produce. It is a method for managing the creation development.
of products with an emphasis on continual delivery while C. Features and Benefits
not overburdening the development team. Phases: Speculate (initiation and planning), Collaborate
Like Scrum, Kanban is a process designed to help teams (concurrent feature development) and Learn (quality
work together more effectively. It uses the concept of review).
‘signboard’ using workflow status (such as TBD, WIP,
Done) that provides a comprehensive view of the project Lifecycle Characteristics: Mission focused, Time boxed,
and promotes the concept of ‘wide communication’. It Risk driven, iterative, Change tolerant, Feature based.
advises to reduce the stock level with an objective to reduce D. Roles and Responsibilities
the overhead cost and believes in JIT. Executive Sponsor: Person with overall responsibility for
C. Features and Benefits the product.
Kanban Principles: The 6 principles of Kanban are Participants: in joint application development sessions
Visualize the work flow, Limit WIP (Work in Progress), Developer: programmer.
Manage the work flow, Make processes/policies explicit, Customer: User
Implement feedback loops, Improve collaboratively. 2.6 FEATURE DRIVEN DEVELOPMENT (FDD)
A. Background
Kanban Practices: Start with what you do now, Agree to It arose in the late 1999 from collaboration between Jeff
pursue incremental, evolutionary change, Respect the DeLuca and Peter Coad and was later described by Palmer
current processes, roles, responsibilities & job titles, and and Felsing in 2002 [11, 12]. It focuses on the domain
Encourage acts of leadership at all levels. model, there are five activities: Develop an overall model,
D. Roles and Responsibilities Build a list of features, Plan by feature, Design by feature
Kanban does not prescribe any roles. It depends on and Build by feature.
company and team to decide. Kanban recommends B. Philosophy and Scope
minimizing the cycle time, so if adding a role helps FDD focuses on the design and building phases,
minimize the cycle time, the role can be added and if it emphasizes quality aspects throughout the process and
makes the process slower, then the role should not be there. includes frequent and tangible deliveries, along with
Also, if the cost of the role is higher than the value of accurate monitoring of the progress of the project. It is
improved cycle time, then it’s unnecessary overhead. simple to understand but powerful approach to build the
E. Limitations product or solutions [13].
A small breakdown in Kanban system’s process can FDD is limited to small to medium sized teams (4 - 20
result in entire line shutting down and recovery people). The methodology deals with uncertain
requires an additional effort. requirements and center on Object Oriented modeling.
The throughput of the Kanban system is not managed C. Features and Benefits
instead it comes as a result of controlled WIP and Team size: Team size varies depending on the complexity
known cycle time. of the feature at hand. DeLuca stresses the importance of
premium people, especially modeling experts.
www.ijcsit.com 3630
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
www.ijcsit.com 3631
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
www.ijcsit.com 3632
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
www.ijcsit.com 3633
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
d. Focus on high-value activities. The focus is on the small features releases are delivered quickly and
activities which actually count not every possible thing frequently on a fixed schedule iterations of 1-4 weeks
that could happen to you on a project. each, with a high level of predictability. Project plans,
e. Tool independence. You can use any toolset that you requirements, design, code and tests are created
want with the Agile UP. The recommendation is that initially and updated incrementally as required to adapt
you use the tools which are best suited for the job, to project changes. This helps in checking and
which are often simple tools. monitoring the software functionality progress
f. You'll want to tailor the AUP to meet your own needs. frequently rather than at end of long milestones.
2. Increased performance: Daily stand-up meetings
AUP Phases provide an opportunity to exchange valuable
The overall development cycle consists of four phases: information and to fine tune improvements
Phase 1: Inception: The goal is to identify the initial scope continuously. The ability to discuss complex projects
of the project, a potential architecture for your system, and through simple stories and simple design encourages
to obtain initial project funding and stakeholder acceptance. teamwork. Frequent and better communication leads to
Phase 2: Elaboration: The goal is to prove the architecture increased knowledge sharing and trust among team
of the system. members which increases the team productivity and
Phase 3: Construction: The goal is to build working generates better performance in terms of good Return
software on a regular, incremental basis which meets the on Investment.
highest-priority needs of your project stakeholders. 3. Flexibility of design: Flexibility is based on the
Phase 4: Transition: The goal is to validate and deploy development process used for the project and is defined
your system into your production environment. as ability to change directions quickly. The main
Each phase can be further broken down into Iterations. feature of Agile approach is to adapt to changing
Iteration is a complete development loop resulting in a requirements quickly which enables the design to be
release of an executable increment to the system. made flexible that can handle changes easily.
4. Adaptive to the changing environment: Using agile
AUP Releases software development approach, software is developed
The Agile Unified Process distinguishes between two types over several iterations. Each iteration is characterized
of iterations: A development release iteration results in a by analysis, design, coding and testing. The working
deployment to the quality-assurance and/or demo area and a software is delivered to the customer and end user for
production release iteration results in a deployment to the their use and feedback after every iteration. Agile
production area. This is a significant refinement to the approach encourages and implements any change
Rational Unified Process. requirement from the customer at any stage of
development to upgrade the software.
D. Limitations 5. Reduces risks of development: As the incremented
Tackling model inconsistency is not explicitly mini software is delivered to the customers after every
addressed. short development cycle and feedbacks are taken from
Modeling may risk agility if limits are not strictly the customers, it warns developers about the upcoming
observed; the list of AUP’s models that are produced as problems which may occur at the later stages of
the absolute minimum is actually quite long. development. It also helps to discover errors quickly
The AUP isn't for everyone. XP users will likely find and they are fixed immediately.
the AUP fairly heavy, and "traditional RUP" users may 6. Working software: Agile development’s commitment
find that it's too streamlined. If you want something to the delivery of working, tested software at recurrent
lighter, then XP is highly suggested. If detailed, well- intervals ensures a much greater reliability and
defined software process is required, then it is highly opportunity to incorporate the user and technology-
suggested to consider RUP. Management seems to driven feedback. Agile practices focus on working
prefer RUP than developers due to the large number of software that provides greater feedback which makes
artifacts and has a lot to offer, and can be cut down to agile projects easier to manage and customer gets the
something quite useful. The AUP lands between the best product as learning is incorporated.
two, adopting many of the agile techniques of XP and
other agile processes yet retaining some of the
formality of the RUP. 7. Ensures customer satisfaction: Agile methodology
encourages active customer involvement throughout
III. ADVANTAGES OF AGILE SOFTWRE DEVELOPMENT the software development lifecycle. The deliverables
The key benefits of adopting agile methodology [24, 25] in developed after each iteration is given to the user for
software development processes explained in detail as use and improvement is done based on the customer
follows: feedback only. So at the end what we get as the final
1. Rapid, iterative and incremental delivery: Project product is of high quality and ensures the customer
delivery is divided into small functional releases to satisfaction as the entire software is developed based
check functionality, to manage risk and to get early on the requirements taken from customer.
feedback from customer and end users. These new and
www.ijcsit.com 3634
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
8. Avoids over production: The traditional system well to larger projects, as numerous iterations are
requirement document is still built where many needed to complete the desired functionality. On a
features are not wanted or required. These “low” or large scale project, opportunity cost to employ agile
“no” value features are at the bottom of the backlog but methods may be too high for a foregone production on
they still get built in Waterfall. On contrary, Agile more profitable and lean projects.
approach builds the best product by building it for now 2. Customer interaction: Agile requires active user
and not later. involvement and close collaboration with the project
9. Improvement in quality: Breaking down the project team throughout the software development cycle. This
into manageable units or sprits allows the project team practice of Agile is very rewarding and ensures
to focus on high quality development, testing, and delivery of the right product. However, in practice,
collaboration. Quality is also improved by producing these principles are very demanding on the user
frequent builds and conducting continuous testing and representative’s time and require a big commitment for
customer feedback during each iteration. Test-driven the duration of the project.
development and refactoring is often used in finding 3. Insufficient and unclear requirements: Agile
and fixing defects quickly and identifying expectation requirements are usually insufficient and unclear which
mismatches early that leads to higher code reuse and eliminates wasted effort on deliverables that don’t last
better quality. which controls budget and schedule. The requirements
10. Least documentation: The documentation in agile are clarified and specified during the development
methodology is short and to the point as internal design phase just in time and documented in much less detail
of the software is usually not documented. The main due to the timeliness of conversations. However, this
content in the documentation are product features list, provides limited information to new starters in the team
duration for each iteration and date which saves the about product features and how they should work.
development time and deliver the project in least Agile methodology is based on customer involvement
possible time. because the entire project is developed according to the
11. Fault detection: Organizational processes demand requirements given by the customers. So if the
high quality bug free software. A continuous testing customer representative is not clear about the product
and integration characteristic of agile methodologies features and final outcome, the development process
such as XP enforces the delivery of high quality bug and project can easily get taken off track.
free software. As testing is performed during each 4. Changing requirements: Requirements emerge and
iteration, error and faults are identified earlier and are evolve throughout the development lifecycle which
fixed instantaneously before it increases in severity. means flexibility to makes change as needed to ensure
Automated tests find regression defects earlier, delivery of the right product. However, this principle of
continuous integration finds defects earlier, pair Agile creates the risk of never ending projects and
Programming finds defects much sooner earlier. Also, there is much less predictability during of the project
continuous testing allows continuous testing feedback, lifecycle final product delivery requirement. Without
which further improves code developed in future the maturity of a strong and clear vision, and the
iterations. discipline of fixing schedule, budget and scope is
12. Best practices: Incorporating some well-known Agile harder. Agile is time consuming and can cause wastage
practices can help the teams employ highly competent, of resources because of constant change of
well-tested applications across the required spectrum of requirements. If the customers are not satisfied by the
platforms and devices. Agile forces “architecture partial software developed by certain iteration and they
killers” to the start of the project. Better to fail early, change their requirements then that incremented part is
not late - when all the money has been spent, most of no use. So it is the total wastage of time, effort and
changes have low cost of change. resources required to develop that increment.
5. Difficulty in integration testing: Testing is integrated
Agile software development approach not only provides throughout the product development lifecycle which
benefits to the development team, but also provides number ensures the quality throughout the project without the
of business benefits to the client. Agile addresses many of need for an extensive test phase at the end of the
the most common project drawbacks, such as budget project. This practice of Agile demands testers
control, schedule predictability and scope creep. throughout the project which increases the cost of
resources on the project. The cost of a long and
IV. DISADVANTAGES OF AGILE SOFTWARE DEVELOPMENT unpredictable test phase can cause huge unexpected
Besides many advantages of using agile software costs when a project over-runs. It does have the effect
development method and like traditional methods, the agile of reducing some very significant risks that have
methods also have some limitations and have also been proven through research to cause many projects to fail.
criticized by some practitioners and researchers, mainly Also, there is an additional cost to the project to adopt
focusing on following aspects [6, 10, 11, 20, 21, 23, 24, continuous testing throughout.
25]: 6. Frequent delivery: Adopting an Agile method
1. Not suitable for large projects: An agile development promotes frequent delivery of product, followed by
method is suitable for small teams, but does not scale User Acceptance Testing (UAT) for which the product
www.ijcsit.com 3635
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
owner needs to be available for prompt testing of the sometimes challenging. Agile is also not suitable for
features as they are delivered and throughout the entire maintenance due to less documentation for the systems.
duration of the project. This exercise can be quite time 12. Unfamiliarity with Agile: To get the advantages of
consuming but helps drastically to ensure a quality applying agile methodologies in the development, there
product that meets user expectations. The feedback is is a set of assumptions that are assumed to be true. To
that agile practice is rather intense for developers as mention some are: cooperation and face to face relation
they are required to complete each feature 100% within between the customers and the development team;
each iteration, and the endlessness of iterations can be evolving and changing requirements of the project;
mentally tiring, so it’s important to find a sustainable developers having good individual skills and
pace for the team. experiences. If these assumptions do not apply to a
7. Lack of documentation: Though the least software development project, then it is better to look
documentation saves lot of development time as an for other methodologies to apply for the development
advantage of Agile method but it is a big disadvantage process, in order to get better results.
for the developer. Since internal design changes
frequently based upon users changing requirements V. CONCLUSION
after every iteration, it is not possible to maintain the Traditional software development approaches have a
detail documentation of design and implementation potential to provide straightforward, systematic, and
because of project deadline. Therefore, due to limited organized process in the software development. However,
available information, it is very difficult for the new the traditional approaches have limitations, which include
developers who join the development team at the later slow adaptation to rapidly changing business requirements,
stage to understand the actual method followed to a tendency to be over budget and behind schedule, a lack of
develop the software. dramatic improvements in productivity, reliability, and
8. More helpful for management than developer: The simplicity.
agile methodology helps management to take decisions Agile development methodology is a conceptual framework
about the software development, set goals for for undertaking any software engineering project. In general
developers and fix the deadline for them. But it is very agile approach can provide a shorter development cycle,
difficult for the baseline developers to cope up with the higher customer satisfaction, and quicker adaptation to
ever changing environment, changing design and code rapidly changing business requirements. It also attempts to
based on just in time requirements. Management minimize risk and maximize productivity by delivering
overhead is also increases as successful application of working software in short iterations that increases the
an agile methodology requires strong teamwork and the internal and external practices of the software development.
project manager should always be involved in the A selection and implementation of appropriate process is
dynamics of the team. crucial as it ensures the organization to maximize their
9. Culture and co-located teams: Many times chance to deliver their software successfully with long term
application development teams are located in different implications.
parts of the globe, making in person face to face
communication almost impossible. To overcome this REFERENCES
problem, most developers use video conferencing tool [1] Agile Alliance. “Principles behind Agile Manifesto”.
www.agilemanifesto.org/principles.html, 2006.
to deliver high quality product. [2] Beck, Kent, "Manifesto for Agile Software Development". Agile
10. Experienced resources: Agile approach allows only Alliance, http://agilemanifesto.org, 2001.
senior programmers to take decisions required during [3] Beck, K. and C. Andres, “Extreme Programming Explained” (2nd
the development process and does not allow novice Edition), Addison-Wesley Professional, 2004.
[4] Beck, Kent, “Extreme Programming Explained: Embrace Change”,
developers to make decisions unless combined with Addison-Wesley, ISBN 0-201-61641-6, 2000.
experienced resources. Another limitation is that agile [5] Beck, Kent, “Extreme Programming Explained: Embrace Change”,
methodologies concentrate work quality on the skills second ed., Addison-Wesley, ISBN 978-0321278654, 2004.
and behaviours of the developers, as the design of the [6] D. Cohen, M. Lindvall, P. Costa, “An introduction to agile methods,
in: M.V. Zelkowitz (Ed.)”, Advances in Computers, Advances in
modules and sub-modules are created mainly by single Software Engineering, vol. 62, Elsevier, Amsterdam, 2004.
developer. Agile methodologies will not provide the [7] Schwaber, K. and M. Beedle, “Agile Software Development with
best solution, when developing reusable software as it Scrum”, Prentice Hall PTR, 2001.
focuses in building a system to solve specific problems, [8] K. Schwaber, M. Beedle, “Agile Software Development with
Scrum”, Prentice Hall, Upper Saddle River, 2001.
and not the general ones. So, Agile works best for [9] M. Poppendieck, T. Poppendieck, “Lean Software Development: An
relatively small team’s members as compared to large Agile Toolkit for Software Development Managers”, Addison-
teams. Wesley, Boston, ISBN 0-321-15078-3, 2003.
11. Traditional waterfall development mind set: [10] Highsmith, J., “Adaptive software development: a collaborative
approach to managing complex systems”, Dorset House Publishing
Organizations steeped in waterfall development mind Co., Inc, 2000.
set are reluctant to adopt agile methodologies. In Agile [11] Coad, P., J. deLuca, et al., “Java Modeling Color with Uml:
software development method, the main emphasis is on Enterprise Components and Process with CDROM”, Prentice Hall
development rather than design. It basically focuses on PTR, 1999.
[12] Palmer, S. R. and M. Felsing, “A Practical Guide to Feature-Driven
processes for getting requirements and developing code Development”, Pearson Education, 2001.
and does not focus on product design which can be
www.ijcsit.com 3636
Harleen K. Flora et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3) , 2014, 3626-3637
www.ijcsit.com 3637