AGILE SOFTWARE
DEVELOPMENT
MR. BKarthiban
MSc in PM, BSc (Hons) in
Computing , MBCS, BTEC
HND in CSD
WHAT IS AGILE?
Agile is one of the big buzzwords of the IT development industry. But exactly what is agile
development?
Put simply, agile development is a different way of managing IT development teams and projects.
The use of the word agile in this context derives from the agile manifesto. A small group of people got
together in 2001 to discuss their feelings that the traditional approach to managing software
development projects was failing far too often, and there had to be a better way. They came up with the
agile manifesto, which describes 4 important values that are as relevant today as they were then. It
says, “we value:
AGILE
Agile development model is also a type of Incremental model. Software is developed in
incremental, rapid cycles. This results in small incremental releases with each release building on
previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It
is used for time critical applications.
Agile software development is a set of principles
for software development in which requirements
and solutions evolve through collaboration between
self-organizing, cross-functional teams
AGILE MODEL
AGILE VS WATERFALL
AGILE PRINCIPLES
Customer satisfaction by early and continuous delivery of valuable software
Welcome changing requirements, even in late development
Working software is delivered frequently (weeks rather than months)
Close, daily cooperation between business people and developers
Projects are built around motivated individuals, who should be trusted
Face-to-face conversation is the best form of communication (co-location)
AGILE PRINCIPLES CON…
Working software is the principal measure of progress
Sustainable development, able to maintain a constant pace
Continuous attention to technical excellence and good design
Simplicity—the art of maximizing the amount of work not done—is essential
Best architectures, requirements, and designs emerge from self-organizing teams
Regularly, the team reflects on how to become more effective, and adjusts accordingly
WHAT ARE ALL THIS STUFF?
AGILE DEVELOPMENT
Agile development is not a methodology in itself. It is an
umbrella term that describes several agile methodologies.
At the signing of Agile Manifesto in 2001, these
methodologies included Scrum, XP, Crystal, FDD, and
DSDM.
Since then, lean practices have also emerged as a valuable
agile methodology and so are included under the agile
development umbrella in the illustration later.
AGILE DEVELOPMENT
Agile methodology is basically a collection of several agile methodologies in itself.
The Agile Manifesto introduced in the year 2001 included several Agile
Methodologies including Scrum, XP, Crystal, FDD, and DSDM. In addition, there
are certain lean practices, which also form a part of agile methodology.
SCRUM
It controls and manages highly iterative projects through a lightweight framework. It
was first introduced in the year 1990. It resolves the issue occurring in the project in
its entire life cycle. In addition, it makes the project more transparent and clear.
Moreover, it adds the power to attain quick development.
EXTREME PROGRAMMING (XP)
It is the most commonly implemented agile methodology. It adds simplicity,
courage, feedback, and communication for the improvement of the project. In
addition, it makes use of the best practices such as Planning Game, Small Releases,
Customer Acceptance Tests, Simple Design, Pair Programming, Test-Driven
Development, Refactoring, Continuous Integration, Collective Code Ownership,
Coding Standards, Metaphor, and Sustainable Pace, to be able to deal with the
changing requirements and technology.
ADAPTIVE SOFTWARE DEVELOPMENT
(ASD)
It means to adapt the process according to the work. Adaptive Software
Development is a result of rapid application development work by Jim Highsmith
and Sam Bayer.
DSDM
The DSDM stands for Dynamic Software Development Method. It was designed to overcome some
limitations of the methods like RAD. It includes the entire development cycle and provides various
features, including user involvement, iterative and incremental development, better frequency delivery,
integrated test at each phase, etc. However, projects are prioritized as mentioned below.
User involvement
Iterative and incremental development
Increased delivery frequency
Integrated tests at each phase
The acceptance of delivered products depends directly on fulfilling requirements
FDD
FDD is a method used at a higher level for managing projects. It uses a wrapper methodology,
which allows you use to even use other methodologies at a lower level. It does not use any
specific method to create a schedule or report of the project. It helps you analyze the things
about the status of the project at a very granular level. It uses the following practices to design
and deliver the project.
Object Modeling Domain , Feature development , Component/Class Ownership, Teams
Inspections , Managing Configuration , Regular Builds , Visibility of progress and results
LEAN
Lean approach uses a system to improve overall performance. It reduces the waste and optimizes the system. It’s
a well-known method used earlier; however, with the software development it has gained popularity. It includes
various principles for a better development cycle.
Waste Elimination
Quality
Knowledge creation
Defer Commitment
Fast Delivery
Respect of the People
Optimization
PLAN VS. AGILE
The fundamental difference between Plan driven development and Agile driven development
lies between two significant differences. First one, in the Plan driven model the team will
deploy one increment of software at the end of the project. But in Agile, the team will deploy a
very small change of the software or more frequently. The second one is sequential verses
concurrent activity. In Plan driven development, a process starts after successful completion of
another. But in Agile we plan all the time.
“Plan your work, then work your Plan” by Martin Fowler and Neal Ford
PLAN VS. AGILE
ADVANTAGES OF AGILE MODEL:
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.
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 OF AGILE MODEL
•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.
WHEN TO USE AGILE MODEL:
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.
Unlike the waterfall model in agile model very limited planning is required to get started
with the project.
WHEN TO USE AGILE MODEL CON….
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 effected 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 to move forward without fear of reaching
a sudden standstill.
7.agila model

7.agila model

  • 1.
    AGILE SOFTWARE DEVELOPMENT MR. BKarthiban MScin PM, BSc (Hons) in Computing , MBCS, BTEC HND in CSD
  • 3.
    WHAT IS AGILE? Agileis one of the big buzzwords of the IT development industry. But exactly what is agile development? Put simply, agile development is a different way of managing IT development teams and projects. The use of the word agile in this context derives from the agile manifesto. A small group of people got together in 2001 to discuss their feelings that the traditional approach to managing software development projects was failing far too often, and there had to be a better way. They came up with the agile manifesto, which describes 4 important values that are as relevant today as they were then. It says, “we value:
  • 4.
    AGILE Agile development modelis also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications. Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams
  • 5.
  • 10.
  • 11.
    AGILE PRINCIPLES Customer satisfactionby early and continuous delivery of valuable software Welcome changing requirements, even in late development Working software is delivered frequently (weeks rather than months) Close, daily cooperation between business people and developers Projects are built around motivated individuals, who should be trusted Face-to-face conversation is the best form of communication (co-location)
  • 12.
    AGILE PRINCIPLES CON… Workingsoftware is the principal measure of progress Sustainable development, able to maintain a constant pace Continuous attention to technical excellence and good design Simplicity—the art of maximizing the amount of work not done—is essential Best architectures, requirements, and designs emerge from self-organizing teams Regularly, the team reflects on how to become more effective, and adjusts accordingly
  • 13.
    WHAT ARE ALLTHIS STUFF?
  • 14.
    AGILE DEVELOPMENT Agile developmentis not a methodology in itself. It is an umbrella term that describes several agile methodologies. At the signing of Agile Manifesto in 2001, these methodologies included Scrum, XP, Crystal, FDD, and DSDM. Since then, lean practices have also emerged as a valuable agile methodology and so are included under the agile development umbrella in the illustration later.
  • 16.
    AGILE DEVELOPMENT Agile methodologyis basically a collection of several agile methodologies in itself. The Agile Manifesto introduced in the year 2001 included several Agile Methodologies including Scrum, XP, Crystal, FDD, and DSDM. In addition, there are certain lean practices, which also form a part of agile methodology.
  • 17.
    SCRUM It controls andmanages highly iterative projects through a lightweight framework. It was first introduced in the year 1990. It resolves the issue occurring in the project in its entire life cycle. In addition, it makes the project more transparent and clear. Moreover, it adds the power to attain quick development.
  • 19.
    EXTREME PROGRAMMING (XP) Itis the most commonly implemented agile methodology. It adds simplicity, courage, feedback, and communication for the improvement of the project. In addition, it makes use of the best practices such as Planning Game, Small Releases, Customer Acceptance Tests, Simple Design, Pair Programming, Test-Driven Development, Refactoring, Continuous Integration, Collective Code Ownership, Coding Standards, Metaphor, and Sustainable Pace, to be able to deal with the changing requirements and technology.
  • 20.
    ADAPTIVE SOFTWARE DEVELOPMENT (ASD) Itmeans to adapt the process according to the work. Adaptive Software Development is a result of rapid application development work by Jim Highsmith and Sam Bayer.
  • 21.
    DSDM The DSDM standsfor Dynamic Software Development Method. It was designed to overcome some limitations of the methods like RAD. It includes the entire development cycle and provides various features, including user involvement, iterative and incremental development, better frequency delivery, integrated test at each phase, etc. However, projects are prioritized as mentioned below. User involvement Iterative and incremental development Increased delivery frequency Integrated tests at each phase The acceptance of delivered products depends directly on fulfilling requirements
  • 22.
    FDD FDD is amethod used at a higher level for managing projects. It uses a wrapper methodology, which allows you use to even use other methodologies at a lower level. It does not use any specific method to create a schedule or report of the project. It helps you analyze the things about the status of the project at a very granular level. It uses the following practices to design and deliver the project. Object Modeling Domain , Feature development , Component/Class Ownership, Teams Inspections , Managing Configuration , Regular Builds , Visibility of progress and results
  • 23.
    LEAN Lean approach usesa system to improve overall performance. It reduces the waste and optimizes the system. It’s a well-known method used earlier; however, with the software development it has gained popularity. It includes various principles for a better development cycle. Waste Elimination Quality Knowledge creation Defer Commitment Fast Delivery Respect of the People Optimization
  • 24.
    PLAN VS. AGILE Thefundamental difference between Plan driven development and Agile driven development lies between two significant differences. First one, in the Plan driven model the team will deploy one increment of software at the end of the project. But in Agile, the team will deploy a very small change of the software or more frequently. The second one is sequential verses concurrent activity. In Plan driven development, a process starts after successful completion of another. But in Agile we plan all the time. “Plan your work, then work your Plan” by Martin Fowler and Neal Ford
  • 25.
  • 26.
    ADVANTAGES OF AGILEMODEL: 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. 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
  • 27.
    DISADVANTAGES OF AGILEMODEL •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.
  • 28.
    WHEN TO USEAGILE MODEL: 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. Unlike the waterfall model in agile model very limited planning is required to get started with the project.
  • 29.
    WHEN TO USEAGILE MODEL CON…. 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 effected 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 to move forward without fear of reaching a sudden standstill.