Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Abhinav Regmi
     KCM
BBIS (2008-2012)
What is Agile Development?
 Agile software development is 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.
 It promotes adaptive planning, evolutionary
  development and delivery, a time-boxed iterative
  approach, and encourages rapid and flexible response
  to change.
Agile
Characteristics
 Agile methods break tasks into small increments with
  minimal planning and do not directly involve long-
  term planning.
 Iterations are short time frames that typically last from
  one to four weeks.
 Each iteration involves a team working through a full
  software development cycle, including planning,
  requirements analysis, design, coding, unit
  testing, and acceptance testing when a working
  product is demonstrated to stakeholders.
 This minimizes overall risk and allows the project to
  adapt to changes quickly.
Contd.
 Team composition in an agile project is usually cross-
  functional and self-organizing, without consideration
  for any existing corporate hierarchy or the corporate
  roles of team members.
 Team members normally take responsibility for tasks
  that deliver the functionality an iteration requires.
 They decide individually how to meet an iteration's
  requirements.
Contd.
 Agile methods emphasize face-to-face communication over
    written documents when the team is all in the same
    location.
   Most agile teams work in a single open office which
    facilitates such communication.
   Team size is typically small (5-9 people) to simplify team
    communication and team collaboration.
   Larger development efforts can be delivered by multiple
    teams working toward a common goal or on different parts
    of an effort.
   This might require a coordination of priorities across
    teams.
   When a team works in different locations, they maintain
    daily contact through videoconferencing, voice, e-mail,
    etc.
How Agile is Different
 Focus on collaboration:
     Less paperwork and more conversation
     Stakeholders actively involved
 Focus on working software:
     Greater feedback makes agile projects easier to manage
     Less documentation is required
     Less bureaucracy
 Agilists are generalizing specialists:
     Less hand offs between people
     Less people required
     Specialists find it difficult at first to fit into the team
 Agile is based on practice, not theory:
    This is a significant change from traditional

     You need to see how agile works in practice to truly understand it
Challenges of Agile
Challenges of Agile
 Some of the primary challenges observed in organizations
  moving towards an Agile mindset are:

 People working as cohesive teams and not a set of individuals

 Increased visibility into the work that is actually done

 Titles become redundant

 Privacy is less important than sharing

 Costs often increase when implementing change
Contd.
 Failure is acceptable, as long as it is identified earlier

 Consistent velocity versus peaks and troughs

 Micro management is felt even though teams are supposed
  to be self-organizing.

 Teams need support from multiple directions.

 Reactionary is acceptable and expected.

 Target scope often moves, thus less upfront design
Agile methods
 SCRUM and eXtreme Programming [XP] are the most
  common).
 These methodologies consist of best practices and
  processes that, when development teams align with them,
  lead to the following positive outcomes:

 •Increased quality of code delivered

 •Teams evolving to constantly get better

 •Higher levels of customer satisfaction (both internal and
  external)

 •Consistency in delivery estimates
Comparison with other methods

 Traditional Methods: sequential phased approach. Eg.
  Water flow model.
 Project Phase

    Requirement   Architecture
                                     Code      Test
      Analysis     & Design




                            Deploy
 Iterative approach: Overlapping phases of
 development. Eg. Agile development.
Criticism
 Agile methodologies have been criticized for lacking any scientifically-
  based evidence to support their proponents' claims.

 Another common criticism of agile software development methods is
  that it is developer-centric rather than user-centric.

 Agile software development focuses on processes for getting
  requirements and developing code and does not focus on product
  design.

 Agile methodologies can also be inefficient in large organizations and
  certain types of projects.

 Agile methods seem best for developmental and non-sequential
  projects.

 Many organizations believe that agile methodologies are too extreme,
  and adopt a hybrid approach that mixes elements of agile and plan-
  driven approaches.
Agile
THANK YOU

More Related Content

Agile

  • 1. Abhinav Regmi KCM BBIS (2008-2012)
  • 2. What is Agile Development?  Agile software development is 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.  It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.
  • 4. Characteristics  Agile methods break tasks into small increments with minimal planning and do not directly involve long- term planning.  Iterations are short time frames that typically last from one to four weeks.  Each iteration involves a team working through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.  This minimizes overall risk and allows the project to adapt to changes quickly.
  • 5. Contd.  Team composition in an agile project is usually cross- functional and self-organizing, without consideration for any existing corporate hierarchy or the corporate roles of team members.  Team members normally take responsibility for tasks that deliver the functionality an iteration requires.  They decide individually how to meet an iteration's requirements.
  • 6. Contd.  Agile methods emphasize face-to-face communication over written documents when the team is all in the same location.  Most agile teams work in a single open office which facilitates such communication.  Team size is typically small (5-9 people) to simplify team communication and team collaboration.  Larger development efforts can be delivered by multiple teams working toward a common goal or on different parts of an effort.  This might require a coordination of priorities across teams.  When a team works in different locations, they maintain daily contact through videoconferencing, voice, e-mail, etc.
  • 7. How Agile is Different  Focus on collaboration:  Less paperwork and more conversation  Stakeholders actively involved  Focus on working software:  Greater feedback makes agile projects easier to manage  Less documentation is required  Less bureaucracy  Agilists are generalizing specialists:  Less hand offs between people  Less people required  Specialists find it difficult at first to fit into the team  Agile is based on practice, not theory:  This is a significant change from traditional  You need to see how agile works in practice to truly understand it
  • 9. Challenges of Agile  Some of the primary challenges observed in organizations moving towards an Agile mindset are:  People working as cohesive teams and not a set of individuals  Increased visibility into the work that is actually done  Titles become redundant  Privacy is less important than sharing  Costs often increase when implementing change
  • 10. Contd.  Failure is acceptable, as long as it is identified earlier  Consistent velocity versus peaks and troughs  Micro management is felt even though teams are supposed to be self-organizing.  Teams need support from multiple directions.  Reactionary is acceptable and expected.  Target scope often moves, thus less upfront design
  • 11. Agile methods  SCRUM and eXtreme Programming [XP] are the most common).  These methodologies consist of best practices and processes that, when development teams align with them, lead to the following positive outcomes:  •Increased quality of code delivered  •Teams evolving to constantly get better  •Higher levels of customer satisfaction (both internal and external)  •Consistency in delivery estimates
  • 12. Comparison with other methods  Traditional Methods: sequential phased approach. Eg. Water flow model.  Project Phase Requirement Architecture Code Test Analysis & Design Deploy
  • 13.  Iterative approach: Overlapping phases of development. Eg. Agile development.
  • 14. Criticism  Agile methodologies have been criticized for lacking any scientifically- based evidence to support their proponents' claims.  Another common criticism of agile software development methods is that it is developer-centric rather than user-centric.  Agile software development focuses on processes for getting requirements and developing code and does not focus on product design.  Agile methodologies can also be inefficient in large organizations and certain types of projects.  Agile methods seem best for developmental and non-sequential projects.  Many organizations believe that agile methodologies are too extreme, and adopt a hybrid approach that mixes elements of agile and plan- driven approaches.