Topics
Introduction
Terminology The Agile Manifesto Some Agile Methodologies Summary References
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 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
Principles and working of agile model
Customer satisfaction by rapid delivery of useful
software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace
Principles and working of agile model
Close, daily co-operation between business people and
developers Face-to-face conversation is the best form of communication (co-location) Projects are built around motivated individuals, who should be trusted
Principles and working of agile model
Continuous attention to technical excellence and good
design Simplicity- The art of maximizing the amount of work not done - is essential Self-organizing teams Regular adaptation to changing circumstances
Extreme Programming
Most prominent Agile Software development method Prescribes a set of daily stakeholder practices
“Extreme” levels of practicing leads to more responsive
software. Changes are more realistic, natural, inescapable.
Agile Unified Process
AUP is a simplified version of RUP
Phases of AUP Inception Elaboration Construction Transition
Disciplines of AUP
Model
Implementation Test Deployment Configuration Management Project Management Environment
Scrum
It is an Agile S/w development method for project
management Characteristics: Prioritized work is done. Completion of backlog items Progress is explained Agile Software Development
Advantages
Customer satisfaction by rapid, continuous delivery of
useful software. People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other. Working software is delivered frequently (weeks rather than months). Face-to-face conversation is the best form of communication.
Advantages
Close, daily cooperation between business people and
developers. Continuous attention to technical excellence and good design. Regular adaptation to changing circumstances. Even late changes in requirements are welcomed
Disadvantages
In case of some software deliverables, especially the large
ones, it is difficult to assess the effort required at the beginning of the software development life cycle. There is lack of emphasis on necessary designing and documentation. The project can easily get taken off track if the customer representative is not clear what final outcome that they want. Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources
Usage
When new changes are needed to be implemented.
The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced. To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
Usage
Unlike the waterfall model in agile model very limited
planning is required to get started with the project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly affected or removed based on feedback. This effectively gives the customer the finished system they want or need. Both system developers and stakeholders alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue
Conclusion
Synthesizes the existing literature. Each method is described in terms of process, roles,
responsibilities, practices, adoption and experiences. Enables a selection criteria for comparing methods and pointing out their differences.
References
[1]. Abrahamsson P, Salo O and Ronkainen J. Agile software
development methods (Review and analysis). [2]. Scott W Ambler. Agile model driven development. [3]. Cohen D, Lindvall M, Costa P. Agile software development. [4]. http://en.wikipedia.org/wiki/Agile_Modeling. [5]. http://en.wikipedia.org/wiki/Extreme_Programming. [6]. http://en.wikipedia.org/wiki/Agile_Unified_process. [7]. http://en.wikipedia.org/wiki/Scrum_28development29.