Agile Methodology PDF
Agile Methodology PDF
Agile Methodology
Assignment 1
Hussain Azmee
19012
Contents
List of Figures ................................................................................................................................. 1
Abstract ........................................................................................................................................... 1
Background ..................................................................................................................................... 2
Introduction..................................................................................................................................... 3
Difference between Traditional Software Development and Agile Software Development ........... 3
Scrum......................................................................................................................................... 10
Conclusion .................................................................................................................................... 15
Reference....................................................................................................................................... 16
List of Figures
Figure 1 : Traditional Waterfall System Development Life Cycle ................................................. 2
Figure 2 : Agile System Development Life Cycle ........................................................................... 6
Figure 3 : Feature Driven Development ........................................................................................ 8
Figure 4 : Scrum ........................................................................................................................... 10
Figure 5 : Extreme Programming................................................................................................. 12
List of Tables
Table 1 : Difference between Traditional and Agile Development ................................................ 4
Table 2 : Some of other Agile Methods ......................................................................................... 14
Abstract
The agile software methods and development is practices based on approach empowered with
values, principles and practices which make the software development process easier and in
faster time. Agile method which includes methods like Extreme programming, Feature Driven
Development, Scrum, etc. are more coming into the software development world. There has been
a remarkable importance in the field of agile software development approaches in the recent past.
This is because of the fastness that agile approaches bring in the life cycle of software
development. This interest in the field shows that there are benefits and non-benefits to obtain
through successful implementation of agile methods. This paper has been carried with the
distinct objectives of examine and gain insights into the current agile methods and practices,
understanding how each of phases in each agile methods works and how agile system
development life cycle works. And in this paper it has been highlighted some of difference
between Traditional Development and Agile Development.
Background
Particularly in 1990s, some developers reacted against traditional “heavyweight” software
development processes. And these developers has developed new software development methods
and tested. These new software are called agile software development methods. Some of agile
developments which were created are: Extreme programming, SCRUM, Feature-driven
development and these methods were generally termed as “lightweight” processes.
“Representatives” from several of these methods got together in Utah in 2001 Settled on term
“Agile” as a way to describe these methods and called themselves the “Agile Alliance”. They
developed a “manifesto” and a statement of “principles” which focuses on common themes in
these alternative methodologies. (Agile Development Methods: Philosophy and Practice, 2010)
Traditional SDLC can also be including waterfall method. This waterfall method is classically
linear and sequential approach to software design and systems development, each waterfall stage
is assigned to a separate team to ensure greater project and deadline control, important for on-
time project delivery (WATERFALL vs. AGILE METHODOLOGY, 2008). Traditional System
life cycle includes Requirements, Design, implementation, verification and Maintenance.
Traditional System Life Cycle works on sequential pattern after finishing each phase another
phase can be started.
Introduction
Agile methodology is an alternative method for traditional project management, typically used in
software development. It helps teams respond to unpredictability through incremental, iterative
work cadences, known as sprints. Agile methodologies are an alternative to waterfall, or
traditional sequential development. (Agile Methodology, 2008)
Basically there are 12 principles of agile methodology, which are mentioned below:
a. Iteration-1: Select the Project - In this phase when selecting a project a potential project
is identified and potential project is prioritized. Then the initial vision of potential project
is developed and feasibility of the project is checked and if the project is feasible it is
considered. (Ambler, 2012)
b. Iteration 0/Warm Up: Initiate the Project- In this phase it includes active stakeholder
participation and also it includes obtaining funds and support. This phase also includes
team building and predicting the initial requirements and initial architecture need for the
project and setting up the working environment. (Ambler, 2012)
c. Construction Iteration - this phase is about delivering of a working system which meets
the changing needs of stakeholders. This phase also includes active stakeholder
participation, collaborative development, model storming, Test Driven Design (TDD),
confirmatory testing and evolve documentation. In this phase software is deploy
internally. (Ambler, 2012)
d. Release Iteration(s) The “End Game”- This phase is about releasing the deployed
software into production. This phase also includes participation of active stakeholder,
final system testing and acceptance testing, finalizing the documentation, releasing the
pilot test, training the end users and production staffs. After completing the things above
the software or system is deployed into production. (Ambler, 2012)
e. Production- In this phase software/system is operated and supported. This phase also
identifies the defects in the system/software and the enhancements needed for the
system/software. (Ambler, 2012)
f. Retirement- this phase is about removing the system completely from the production. In
this phase it removes the final version of system data conversion, migrate users and
enterprise models are updated. (Ambler, 2012)
Feature Driven Development is an agile and adaptive approach for developing system. This
approach does not cover the entire software development process, but this approach rather
focuses on the designing and building phases. However FDD is been design to work with the
other activities of software development project and does not require any specific process model.
The FDD approach expresses iterative development with the best practices found to be effective
in industry and it also emphases quality aspects throughout the process and include frequent and
tangible deliveries, along with accurate monitoring of the progress of the project. (Abrahamsson,
Salo, Ronkainen, & Warsta, 2002)
FDD consists of five sequential processes and provides the methods, techniques and guidelines
needed by the project stakeholders to deliver the system.
a. Develop an overall model: - when the development of an overall model begins, the
domain experts must be aware of the scope and the requirements of the system are
built and required documents such as use cases or functional specifications are likely
to be existed. The overall domain is further divided into different domain areas and a
more detailed walkthrough is held for each of them by domain members. After each
walkthrough a development team works in small groups in order to produce object
model. And then development team discusses and decides an appropriate object
model for each domain. (Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
b. Build a Feature list: - in the list the development team presents each of the client
valued functions included in the system. The functions are presented for each of the
domain areas and these function group consist of so-called major feature sets. These
feature sets represents different activities within specific domain areas and is
reviewed by the users and sponsors of the systems for their validity and completeness.
(Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
c. Plan by Feature: - this includes the creation of the high-level plan in which the
feature sets are sequenced according to their priority and dependencies assigned.
(Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
d. Design by Feature and Build by Feature: - the design by feature and build by
feature processes are iterative procedures, during which the selected features are
produced. In these processes it includes such tasks as design inspection, coding, unit
testing, integration and code inspection. (Abrahamsson, Salo, Ronkainen, & Warsta,
2002)
Scrum
Scrum method is suitable for small teams of less than 10 engineers. And if more people are there
in the group multiple teams should be formed. (Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
The scrum approach has been developed for managing the system development process. This
approach concentrates on how the team members should function in order to produce the system
flexibly in a constantly changing environment. The main idea of scrum is that system
development involves several environmental and technical variables that are likely to change
during the process. (Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
Figure 4 : Scrum
Extreme Programming (XP) is developed with the aim of developing a methodology which is
suitable for “object-oriented projects using teams of a dozen or fewer programmers in one
location.” XP also include underlying values of communication, simplicity, feedback, courage
and respect. (Williams, 2007) Extreme programming includes 6 phases Exploration phase,
planning phase, iteration to release phase, productionizing phase, maintaining phase and death
phase.
a. Exploration phase: - in this phase customer write the story cards which they wish to
include in the first release. These story cards describes feature to be added into the
program. Within same time the project team familiarize themselves with the tools,
technology and practices things which will be using in the project and build a
prototype of the system. (Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
b. Planning phase: - this phase sets the priority order for the stories and an agreement
of the contents of the first small release made. Programmers first estimates how much
effort each story requires and scheduled. Planning phase takes couple of days.
(Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
c. Iterations to release phase: - this phase includes several iterations of the system
before the first release. The schedule set in the planning stage is broken down to a
number of iteration to implement. Customers decide the stories to be selected for each
iteration. (Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
d. Productionizing phase: - in this phase new changes may still be found and the
decision has to be made if they are included in the current release. During this phase,
the iterations may need to be quickened. (Abrahamsson, Salo, Ronkainen, & Warsta,
2002)
e. Maintenance phase: - requires an effort for customer support tasks. Development
velocity may decelerate after the system is in production. This phase mau requires
incorporating new people into the team and changing the team structure.
(Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
f. Death phase: - in this phase the necessary documentation of the system is finally
written as no more changes to the architecture, design or code are made. Death phase
may also occur if the system is not delivering the desired outcome or if it becomes too
expensive for further development. (Abrahamsson, Salo, Ronkainen, & Warsta, 2002)
There are many other forms of agile methods. Table 2 below shows some of them include
Crystal Methodologies, lean Software Development (ASD) and Dynamic Systems Development
Method (DSDM).
Conclusion
As we came to know that traditional software development approaches are more automatic
which concentrate more on Processes, tools, contracts and plans. In contrast to traditional
methods, agile methods keep emphasis on interaction, working software, embracing change at
any moment of the project, customer relationships. The method can be agile if it is: Incremental,
Cooperative Straightforward and Adaptive. (Naidu)
“Agile view is more people centric rather than plan-centric.” Agile methods are not defined by a
small set of principles, practices and techniques. It creates a strategic capability which has
capability of responding to change, capability to balance the structure and flexibility, capability
of innovation and creations through development team and uncertainty. (Naidu)
In this paper we have also discussed about the Advantages, disadvantages of Agile Methodology,
difference between traditional and agile software development and Agile System Development
Life Cycle. And we have also discussed about different Agile Software development models
such as XP (Extreme programming), Scrum and FDD (Feature driven development).
(2477 words)
Reference
Agile Methodology. (2008, October 23). Retrieved March 27, 2013, from Agile Methodology:
http://agilemethodology.org/
WATERFALL vs. AGILE METHODOLOGY. (2008, January 4). Retrieved March 22, 2013, from
Agile Introduction For Dummies: http://agileintro.wordpress.com/2008/01/04/waterfall-
vs-agile-methodology/
Agile Development Methods: Philosophy and Practice. (2010). CPSC 315 – Programming
Studio.
Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile Software Development
Methods Review and Analysis. University of Oulu: VTT Publications 478.
Ambler, S. W. (2012). The Agile System Development Life Cycle (SDLC). Retrieved March 26,
2013, from ambysoft: http://www.ambysoft.com/essays/agileLifecycle.html
Dyba, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic
review. ELSEVIER Information and Software Technology, 27.
Navneetjha. (2012, July 12). Agile Methodology - A Brief Overview. Retrieved March 27, 2013,
from HubPages: http://navneetjha.hubpages.com/hub/Agile-Methodology-A-Brief-
Overview
Tay, L. (2008, December 10). Agile Methodology: A Software Development Process Framework.
Retrieved March 20, 2013, from Yahoo! Voices: http://voices.yahoo.com/agile-
methodology-software-development-process-framework-2263234.html
Trivikram. (2011, May 4). Principles of Agile Methodology. Retrieved March 26, 2013, from
That Technology: http://www.thatstechnology.com/software-testing/principles-of-agile-
methodology