KEMBAR78
Agile Development Overview | PPT
Agile Development Overview Mark Kovacevich [email_address]
Purpose The purpose of this presentation is to provide an overview of Agile Development
Agile Development Defined An iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework with "just enough" ceremony that produces high quality software in a cost effective and timely manner   which meets the changing needs of its stakeholders.
 
Principles Behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Principles Behind the Agile Manifesto (Continued)‏ Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Types of Agile Development Adaptive Software Development (ASD)‏ Agile Modeling Crystal methods Dynamic System Development Methodology (DSDM)‏ eXtreme Programming (XP)‏ Feature Driven Development Lean Development Scrum
 
Which Projects are Suited to Agile? Agile home ground: Low criticality  Senior developers  Requirements change very often  Small number of developers  Culture that thrives on chaos  Plan-driven home ground: High criticality  Junior developers  Requirements don't change too often  Large number of developers  Culture that demands order
Tools to Support Agile Development Attributes Sprint Planning Backlog Management  Testing/ Coordination Resource Planning Documentation Integration (Quality Center, Clearcase, etc.)‏ Candidates IBM Jazz Microsoft Solutions Framework (MSF) for Agile VersionOne Rally Software
Resources/ More Information Agile Alliance:  http://www.agilealliance.org/ Agile Software Development:  http://agilesoftwaredevelopment.com/ Agile Manifesto:  http://www.agilemanifesto.org/ Agile University:  http://www.agileuniversity.org/index.jsp   Extreme Programming:  http://www.extremeprogramming.org/
Appendix
Core Scrum Practices Backlog . Product, Release, Sprint Backlog - lists of all functionality in product, release and sprint respectively. Product Owner responsible for the backlog management and maintenance.  Iterative development . The whole project gets divided into sprints usually 4 weeks duration each. Sprints have fixed duration (time boxing). Time boxing enables regular deliveries, supports project heart beats and helps development teams to focus on a shippable product in the end of each sprint.  Scrum meetings . Daily meetings where team members answers the following questions: What have you done since the last scrum meeting? What has impeded your work? What do you plan on doing between now and the next scrum meeting?  Burn Down Charts . Scrum Sprint Burn Down chart shows implementation progress during a single sprint. It provides answers on the following questions: When sprint could be completed based on previous progress? What is the most possible scrum team Velocity in future sprints?  Sprint review meeting . Facilitated by Scrum Master and provides an inspection of project progress at the end of the every Sprint. The goal is to improve development process by introducing new practices, changing existing practices, etc.
Agile Software Development Lifecycle
Characteristics Agile Plan-driven Application Primary Goals Rapid value; responding to change Predictability, stability, high assurance Size Smaller teams and projects Larger teams and projects Environment Turbulent; high change; project-focused Stable; low-change; project/organization focused Management Customer Relations Dedicated on-site customers, where feasible; focused on prioritized increments As-needed customer interactions; focused on contract provisions; increasingly evolutionary Planning/Control Internalized plans; qualitative control Documented plans, quantitative control Communications Tacit interpersonal knowledge Explicit documented knowledge Technical Requirements Prioritized informal stories and test cases; undergoing unforseeable change Formalized project, capability, interface, quality, forseeable evolution requirements Development Simple design; short increments; refactoring assumed inexpensive Architect for parallel development; longer increments; refactoring assumed expensive Test Executable test cases define requirements Documented test plans and procedures Personnel Customers Dedicated, collocated CRACK* performers CRACK* performers, not always collocated Developers At least 30% full-time Cockburn level 2 and 3 experts; no Level 1B or -1 personnel** 50% Cockburn Level 3s early; 10% throughout; 30% Level 1B’s workable; no Level -1s** Culture Comfort and empowerment via many degrees of freedom (thriving on chaos)‏ Comfort and empowerment via framework of policies and procedures (thriving on order)‏ * Collaborative, Representative, Authorized, Committed, Knowledgeable ** These numbers will particularly vary with the complexity of the application

Agile Development Overview

  • 1.
    Agile Development OverviewMark Kovacevich [email_address]
  • 2.
    Purpose The purposeof this presentation is to provide an overview of Agile Development
  • 3.
    Agile Development DefinedAn iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework with "just enough" ceremony that produces high quality software in a cost effective and timely manner   which meets the changing needs of its stakeholders.
  • 4.
  • 5.
    Principles Behind theAgile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • 6.
    Principles Behind theAgile Manifesto (Continued)‏ Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
  • 7.
    Types of AgileDevelopment Adaptive Software Development (ASD)‏ Agile Modeling Crystal methods Dynamic System Development Methodology (DSDM)‏ eXtreme Programming (XP)‏ Feature Driven Development Lean Development Scrum
  • 8.
  • 9.
    Which Projects areSuited to Agile? Agile home ground: Low criticality Senior developers Requirements change very often Small number of developers Culture that thrives on chaos Plan-driven home ground: High criticality Junior developers Requirements don't change too often Large number of developers Culture that demands order
  • 10.
    Tools to SupportAgile Development Attributes Sprint Planning Backlog Management Testing/ Coordination Resource Planning Documentation Integration (Quality Center, Clearcase, etc.)‏ Candidates IBM Jazz Microsoft Solutions Framework (MSF) for Agile VersionOne Rally Software
  • 11.
    Resources/ More InformationAgile Alliance: http://www.agilealliance.org/ Agile Software Development: http://agilesoftwaredevelopment.com/ Agile Manifesto: http://www.agilemanifesto.org/ Agile University: http://www.agileuniversity.org/index.jsp Extreme Programming: http://www.extremeprogramming.org/
  • 12.
  • 13.
    Core Scrum PracticesBacklog . Product, Release, Sprint Backlog - lists of all functionality in product, release and sprint respectively. Product Owner responsible for the backlog management and maintenance. Iterative development . The whole project gets divided into sprints usually 4 weeks duration each. Sprints have fixed duration (time boxing). Time boxing enables regular deliveries, supports project heart beats and helps development teams to focus on a shippable product in the end of each sprint. Scrum meetings . Daily meetings where team members answers the following questions: What have you done since the last scrum meeting? What has impeded your work? What do you plan on doing between now and the next scrum meeting? Burn Down Charts . Scrum Sprint Burn Down chart shows implementation progress during a single sprint. It provides answers on the following questions: When sprint could be completed based on previous progress? What is the most possible scrum team Velocity in future sprints? Sprint review meeting . Facilitated by Scrum Master and provides an inspection of project progress at the end of the every Sprint. The goal is to improve development process by introducing new practices, changing existing practices, etc.
  • 14.
  • 15.
    Characteristics Agile Plan-drivenApplication Primary Goals Rapid value; responding to change Predictability, stability, high assurance Size Smaller teams and projects Larger teams and projects Environment Turbulent; high change; project-focused Stable; low-change; project/organization focused Management Customer Relations Dedicated on-site customers, where feasible; focused on prioritized increments As-needed customer interactions; focused on contract provisions; increasingly evolutionary Planning/Control Internalized plans; qualitative control Documented plans, quantitative control Communications Tacit interpersonal knowledge Explicit documented knowledge Technical Requirements Prioritized informal stories and test cases; undergoing unforseeable change Formalized project, capability, interface, quality, forseeable evolution requirements Development Simple design; short increments; refactoring assumed inexpensive Architect for parallel development; longer increments; refactoring assumed expensive Test Executable test cases define requirements Documented test plans and procedures Personnel Customers Dedicated, collocated CRACK* performers CRACK* performers, not always collocated Developers At least 30% full-time Cockburn level 2 and 3 experts; no Level 1B or -1 personnel** 50% Cockburn Level 3s early; 10% throughout; 30% Level 1B’s workable; no Level -1s** Culture Comfort and empowerment via many degrees of freedom (thriving on chaos)‏ Comfort and empowerment via framework of policies and procedures (thriving on order)‏ * Collaborative, Representative, Authorized, Committed, Knowledgeable ** These numbers will particularly vary with the complexity of the application