2. Agile Software Development
A group of software development
methods based on iterative and incremental
development, where requirements and
solutions evolve through collaboration
between self-organizing, cross-functional
teams.
Source : http://en.wikipedia.org/wiki/Agile_software_development
4. 12 Principles of Agile Software
Development
1. Customer satisfaction by rapid delivery of
useful software
2. Welcome changing requirements, even late in
development
3. Working software is delivered frequently
(weeks rather than months)
4. Working software is the principal measure of
progress
5. Sustainable development, able to maintain a
constant pace
6. Close, daily co-operation between business
people and developers
Source : http://agilemanifesto.org/
5. 12 Principles of Agile Software
Development
7. Face-to-face conversation is the best form of
communication (co-location)
8. Projects are built around motivated
individuals, who should be trusted
9. Continuous attention to technical excellence
and good design
10. Simplicity
11. Self-organizing teams
12. Regular adaptation to changing circumstances
Source : http://agilemanifesto.org/
6. Agile
methodologies
believe that …
adaptability to changing
requirements at any point during
the project life is a more realistic
and better approach than
attempting to define all
requirements at the beginning of a
project and then expending effort to
control changes to the
requirements.
7. Agile Development Methodologies
• Agile Modeling
• Agile Unified Process (AUP)
• Dynamic Systems Development Method (DSDM)
• Essential Unified Process (EssUP)
• Exia Process (ExP)
• Extreme Programming (XP)
• Feature Driven Development (FDD)
• Open Unified Process (OpenUP)
• Scrum
• Crystal Clear
• Velocity tracking
• Kanban (development)
• GSD
Source : http://en.wikipedia.org/wiki/Agile_software_development
8. Characteristics of Agile Development
Methodologies
• Reduce the cost of change.
• Emphasis on coding.
• Emphasis on testing.
• Listening to customer needs.
• Software Architecture Design is optional.
• Emphasis on Software Release
9.
10. Advantages
• Shorter development time
• Continuous communication between
developers and client
• Adaptive to requirement changes
11. Disadvantages
• Insufficient structure and necessary
documentation
• Prioritizing changes can be difficult
• Can lead to more difficult contractual
negotiations
12. Agile is…
• Suitable for project where product release is
important factor.
• Requires huge staff and later break into group
which tackle specific problem.
• Needs more customer involvement.
Agile Software Development on Youtube:
http://www.youtube.com/watch?v=IbhKG0rNWgQ&feature=related
http://www.youtube.com/watch?v=OJflDE6OaSc&feature=related
Editor's Notes
The term “agile” leads to a development process that is more responsive to customer needs compared traditional methods.
. Highest priority is to satisfy the customer through early and continuous delivery of valuable software.2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.4. Business people and developers must work together daily throughout the project.5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely9. Continuous attention to technical excellence and good design enhances agility.10. Simplicity--the art of maximizing the amount of work not done--is essential.11. The best architectures, requirements, and designs emerge from self-organizing teams.12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.