You are on page 1of 25

Agile Methodology

Prepared by: : AZMI BIN MOHAMED | M20131000289 MAZLAN BIN MUHAMAD YUSOF | M20131000281 MUHAMAD FIRDAUS BIN MOHAMAD | M20131000280

Contents
Introduction History of Agile Methodology What is Agile Methodology? The Agile Manifesto, Principles & Development Characteristics of Agile Methodology Advantages & Disadvantages Some Agile Methodologies Summary References

Introduction
Classical methods of software development have many disadvantages:

huge effort during the planning phase


poor requirements conversion in a rapid changing environment treatment of staff as a factor of production

New methods:

Agile Software Development Methodology

Traditional Waterfall Approach


Requirements

Requirement Fixing Impossible to accurately define

Design

Waste of defining before coding design will always change


No priority all aspects batched and built at same time horizontally

Code and Unit Test

Systems Integration

Issues found long after design & implementation

Testing

Unpredictable testing cycle

Delivery

Late detection of missing customer value

Months to working deliverable software

How Agile Differs from Traditional Development Approach


Traditional Sequential Method
Initiation Requirements Analysis Architecture & Design Code Test Deploy

Agile Iterative Method

Delivery Sprint 1

Delivery

Sprint 2

Final Delivery Release

History of Agile?

History of Agile Methodology


Metod pembangunan perisian ini telah dikesan pada tahun 1957. Lightweight adalah metod yang diperkenalkan pada tahun 1990 sebagai pengganti heavyweight, yang dikenali sebagai Waterfall Model. Kemudian sekitar 1990-an juga metod Agile mula diperkenalkan, iaitu bermaksud pantas, ringan, bebas bergerak, dan peka.

History of Agile Methodology


Konsep Pembangunan Perisian Agile ini dicipta oleh Kent Beck dan 16 orang rakan beliau, meraka menyatakan Agile ini adalah satu cara membangun perisian sendiri dan sekaligus juga membantu orang lain membangunkannya.
Early implementations of agile methods include Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development (1997), and Dynamic Systems Development Method (DSDM) (1995). These are now collectively referred to as agile methodologies, after the Agile Manifesto was published in 2001.[5]

What is Agile?

AGILE Cooperative Iterative

Rapid

Adaptable

Quality-driven

Not a process, it's a philosophy or set of values

What is Agile ?

Agile proponents believe

Current software development processes are too heavyweight or cumbersome

Too many things are done that are not directly related to software product being produced

Current software development is too rigid

Difficulty with incomplete or changing requirements


Short development cycles (Internet applications) CMM focuses on process

More active customer involvement needed

Contd

Agile methods are considered

Lightweight People-based rather than Plan-based No single agile method XP most popular

Several agile methods


No single definition Agile Manifesto closest to a definition

Set of principles Developed by Agile Alliance

What is Agile Development?


Adaptive
Self Organizing* Empowering Collaborative Active Customer Involvement Frequent Delivery

Goal Driven
Iterative Lean Emergent Approach

Incremental
Time-Based* Disciplined

Continuous Integration*
Feature Driven

What Is Agile
Agile --readiness for motion, nimbleness, activity, dexterity in

motion
Agility The ability to both create and respond to change in order to profit in a turbulent business environment

Companies need to determine the amount of agility they need to be competitive

Chaordic Exhibiting properties of both chaos and order

The blend of chaos and order inherent in the external environment and in people themselves, argues against the prevailing wisdom about predictability and planning Things get done because people adapt, not because they slavishly follow processes

Agile Manifesto
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation

Responding to change over following a plan

Agile Principles
Customer satisfaction by rapid, continuous delivery of useful software Working software is the principle measure of success Changes in requirements are anticipated and welcomed Close, daily cooperation between business and developers Face-to-face conversation is the best form of communication Self-organizing teams Regular adaptation to changing circumstances

Agile Development Includes


Continuous Innovation and Integration
Deliver current customer requirements

Decreased communication latency


Stakeholders actively involved in development

Testing integrated into the development process


Doesnt need or include a separate QA cycle Continuous integration, multiple builds

Product adaptability
Doesnt preclude future requirements Adapts to changing requirements

Agile Software Development


Agile software development is a conceptual framework

for software engineering that promotes development iterations throughout the life-cycle of the project.
Software developed during one unit of time is referred to

as an iteration, which may last from one to four weeks.


Agile methods also emphasize working software as the

primary measure of progress

Agile Software Development: Intro


Characteristics of Agile Software Development -- Light Weighted methodology -- Small to medium sized teams -- vague and/or changing requirements -- vague and/or changing techniques -- Simple design -- Minimal system into production

Characteristics
Modularity Iterative Time-bound Incremental Convergent People-oriented Collaborative

:: Advantages ::

No Detail requirement needed: You dont need to have the entire requirements finalised to start the development work. Build and Test can start as soon as initial high level requirements are available.

Early benefit to the user/business: Following Agile methodology gives an early view to the user about how the final product might look and behave. This helps them into finalising the user requirements. It might also happen that the prototype delivers some of the requirements which use may want to use and evaluate till the final product is delivered with all the functionalities. Face to face communication: Agile method give more emphasis on having the face to face communication between the user/customer and project team to make sure there is no room left for any kind of confusion in understanding requirement and inputs.
Less time to market: Using Agile method, final product is delivered to the customer in least possible time. Less cost to customer: It saves cost for both customer and supplier as resources are used for less time. High Quality: Since customer is involved in all the stages of software development, means the quality of final quality if high resulting in highly satisfied customer.

:: Disadvantages ::

Smaller Planning Horizon: Since Agile projects have smaller planning horizon meaning that project is started with out detailed planning, there is always a chance that initial project effort and cost estimation may not be correct. This might result in multiple changes to estimation in subsequent estimation. Lesser design and documentation: Since build and test starts early, there is always a chance that proper designing and documentation may take a back seat. Need clear customer vision: As customer input is required in all iterations, it is very necessary that customer should have clear vision of end product. Project can easily loose its direction if client have only vague idea of the product they want. Necessity of experienced and senior resources: Since Agile method is more about less planning and more decision making, it is absolutely necessary to have experienced and senior resources in the team or experienced resources mentoring new resources.

Agile Methods
1. Extreme Programmning (XP) 2. Adaptive Software Development (ASD)

3. Dynamic Systems Development Method (DSDM)


4. Scrum Methodology 5. Crystal 6. Feature Driven Development (FDD) 7. Agile Modeling (AM) 8. Rational Unified Process

Existing Agile Methods

Agile
Scrum Crystal Kanban XP FDD RUP
and few more * Check wikipedia for list of all Agile methods

DSDM

REFERENCES

Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile software development methods: review and analysis. Espoo [Finland]: VTT. Retrieved from http://www.pss-europe.com/P478.pdf http://navneetjha.hubpages.com/hub/Agile-Methodology-ABrief-Overview http://dwijaantara.wordpress.com/2010/10/25/agile-method/

You might also like