Professional Documents
Culture Documents
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:
New methods:
Design
Systems Integration
Testing
Delivery
Delivery Sprint 1
Delivery
Sprint 2
History of Agile?
What is Agile?
Rapid
Adaptable
Quality-driven
What is Agile ?
Too many things are done that are not directly related to software product being produced
Contd
Lightweight People-based rather than Plan-based No single agile method XP most popular
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
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
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
Product adaptability
Doesnt preclude future requirements Adapts to changing requirements
for software engineering that promotes development iterations throughout the life-cycle of the project.
Software developed during one unit of time is referred to
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)
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/