SlideShare una empresa de Scribd logo
1 de 86
Descargar para leer sin conexión
Agile Methodology
An Introduction to the Concepts of the Agile Methodology
Copyright
This material is primarily for the use of Orange and
Bronze Software Labs, Inc.


No part of this material may be reproduced or
transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or by any
information storage and retrieval system, without
permission in writing from the publisher.



www.orangeandbronze.com
Overview
• What is the Agile Methodology?
      → History
      → Principles

      → Characteristics


• Agile Method: SCRUM
• Agile Method: XP




www.orangeandbronze.com
History
• Evolved in the mid 90s as part of a reaction against
  “heavyweight ” methods
      →   e.g. heavily regulated, regimented, micro-managed use
          of the Waterfall Method
• Sought to move away from the Waterfall Method
  which was seen as bureaucratic, slow, demeaning, and
  inconsistent with the ways that developers perform
  effective work
• Initially called lightweight methods

www.orangeandbronze.com
History
• Earlier Methods
      → Scrum (1986)
      → Crystal Clear and Other Crystal Methodologies

      → Extreme Programming (XP) (1996)

      → Adaptive Software Development (ASD)

      → Feature Driven Development

      → Dynamic Systems Development Method (DSDM) (1995)

      → Agile Modeling

      → Lean Software Development

      → Agile Unified Process (AUP)
www.orangeandbronze.com
The Agile Manifesto
We are uncovering better ways of developing software
by doing it and helping others do it. Through this work
we have come to value:


 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
        Customer collaboration over contract negotiation
          Responding to change over following a plan


www.orangeandbronze.com
Agile Principles (The Agile Manifesto)
• Customer satisfaction by rapid, continuous delivery of
  useful software
• Working software is delivered frequently (weeks rather
  than months)
• Working software is the principal measure of progress
• Close, daily cooperation between business people and
  developers
• Face-to-face conversation is the best form of
  communication

www.orangeandbronze.com
Agile Principles (The Agile Manifesto)
• Projects are built around motivated individuals, who
  should be trusted to get the job done
• Continuous attention to technical excellence and good
  design
• Simplicity
• Self-organizing teams
• Regular adaptation to changing circumstances



www.orangeandbronze.com
Agile Characteristics
• More adaptive than predictive
• Focuses on the near future rather than the distant
  future
• Focuses on adapting quickly to changing realities rather
  than planning for the entire length of the development
  process
• Has a lot in common with Rapid Application
  Development


 www.orangeandbronze.com
Agile Characteristics
• Time periods are strict time boxes and are measured in
  weeks rather than months
• Highly collaborative work
• Emphasizes real time communication
• Emphasis on building releasable software in short time
  periods
• Customer is on site and part of the development team



www.orangeandbronze.com
Agile Characteristics
• Phases
      → Inception
      → Elaboration

      → Construction

      → Transition




www.orangeandbronze.com
Agile Characteristics
• Inception Phase
      → Smallest phase in the project
      → Ideally short

      → Goals:


               • Establish a justification or business case for the project
               • Establish the project scope and boundary conditions
               • Outline the Use Cases and key requirements that will
                 drive design tradeoffs
               • Outline one or more architectures
               • Identify risks

www.orangeandbronze.com
Agile Characteristics
• Inception Phase
      →   Goals:
               • Prepare a preliminary project schedule and cost estimate
               • Establish a baseline by which to compare actual and
                 planned expenditures
      →   Deliverables:
               •   Objectives and Scope of the Project
               •   High Level Use Cases
               •   Candidate Architectures
               •   Project Schedule and Cost Estimates

www.orangeandbronze.com
Agile Characteristics
• Elaboration Phase
      → Project starts to take shape
      → Healthy majority of the system requirements is

        captured
      → Analysis of the problem domain




www.orangeandbronze.com
Agile Characteristics
• Elaboration Phase
      →   Primary Goals:
               • Address known risk factors
               • Establish and validate system architecture
               • Delve deeper into the requirements previously gathered




www.orangeandbronze.com
Agile Characteristics
• Elaboration Phase
      →   Deliverables:
               • Detailed Use Cases
               • Conceptual Diagrams
                          – Ex. Process Flow Diagrams, Activity Diagrams, etc.
               • Package Diagrams
                          – Architectural Diagrams
               • Stable System Architecture
               • Plan for Construction Phase
                          – Including cost and schedule estimates


www.orangeandbronze.com
Agile Characteristics
• Construction Phase
      → Largest phase
      → Where the bulk of the coding takes place

      → Use cases are translated to demonstrable prototypes

      → System is built under the foundation laid in Elaboration




www.orangeandbronze.com
Agile Characteristics
• Construction Phase
      →   Main Focus: Development of components and features
               • Implemented in a series of short, timeboxed iterations
               • Each iteration yields an executable release of software
      →   Deliverables:
               • First external release of the software
               • Succeeding releases of the software as per iteration




www.orangeandbronze.com
Agile Characteristics
• Transition Phase
      → Product moves from development team to end users
      → Feedback received may lead to further refinements

      → Refinements may be incorporated in several iterations




www.orangeandbronze.com
Agile Characteristics
• Transition Phase
      →   Activities:
               • System conversion
               • Training of end users and maintenance team
               • Validation of system against end user expectation via
                 beta testing
               • Quality level validation
      →   Deliverables:
               • Final release of the system


www.orangeandbronze.com
Agile Characteristics
• Principles on Code Production
      → Keep it simple
      → Have one shared metaphor

      → Regularly restructure the system ( Refactoring)

      → Continuously integrate and test

      → Follow coding standards




www.orangeandbronze.com
Agile Characteristics
• Agile Best Practices
       → Daily kickoff and review of goals
       → Short release cycles

       → Responsive development

       → Generalism


                • Use of generic skill sets that are common across the
                  team, instead of reliance on specific skill sets that are
                  scarce




 www.orangeandbronze.com
Agile Characteristics
• Advantages
      → Customer decides scope, priority, and dates from a
        business perspective, while technical people estimate
        and track progress
      → Incremental development

      → Emphasis on responsibility for quality




www.orangeandbronze.com
Agile Characteristics
• Advantages
      → Emphasis on keeping it simple, regular refactoring, and
        continuous integration and testing
      → Lightweight, efficient, low-risk, flexible, scientific, and

        fun way of developing software




www.orangeandbronze.com
Agile Characteristics
• Criticism / Disadvantages
       → Puts strong dependence on trust
       → Code-centered rather than design-centered

       → Lack of orderly design process and structured reviews

         may lead to extensive and time consuming tests




 www.orangeandbronze.com
Agile Characteristics
• Criticism / Disadvantages
       → Lack of structure and necessary documentation
       → Only works with senior-level developers

       → Reliance on verbal communication

       → Requires too much cultural change to adopt




 www.orangeandbronze.com
Suitability with Types of Projects
• AGILE Homeground
      → Low criticality
      → Senior developers

      → Requirements change frequently

      → Culture that thrives on “chaos” or changing realities




www.orangeandbronze.com
Suitability with Types of Projects
• PLAN-DRIVEN Homeground
      → High criticality
      → Junior developers

      → Requirements don't change too often

      → Large number of developers

      → Culture that demands order




www.orangeandbronze.com
Agile Methods
• Scrum
• Extreme Programming (XP)
• Agile Modeling
• Agile Unified Process (AUP)
• Agile Data Method
• Test Driven Development (TDD)
• Feature Driven Development (FDD)
• Behavior Driven Development (BDD)
• Essential Unified Process (EssUP)
 www.orangeandbronze.com
SCRUM
• Originally a rugby term which is short for “scrummage”




www.orangeandbronze.com
SCRUM
• Characteristics
       → An iterative incremental process commonly used with
         the Agile Methodology
       → Can be used:


                • For managing software development projects
                • As a program management approach (Scrum of Scrums)
       →   Works hand in hand with the PSA Time and Material
           Model



 www.orangeandbronze.com
SCRUM
• Characteristics
       → A process skeleton that includes a set of practices and
         predefined roles
       → Employs “Sprints” - a time period, usually 15 – 30 days,

         in which development occurs on a set backlog items
         that the team has committed to




 www.orangeandbronze.com
SCRUM Roles
• Pig Roles – The ones committed to the project and the
  Scrum process (Scrum Team)
• Chicken Roles – The ones not part of the actual Scrum
  process but are only involved




www.orangeandbronze.com
Pig Roles
• Product Owner
       → The voice of the customer
       → Responsible for maintaining the Product

         Backlog
• Scrum Master (or Facilitator)
       → Responsible for the Scrum process
       → Ensures that Scrum is used correctly and its

         benefits are maximized



 www.orangeandbronze.com
Pig Roles
• Team
      → A cross-functional group of people
      → Responsible for managing itself to develop

        the product




www.orangeandbronze.com
Chicken Roles
• Users
      →   Who the software is built for
• Stakeholders
      → People who have interest in the project
      → People within or outside an organization

        that may influence the project's objectives
        and outcomes
• Managers
      →   The people who will set up the environment
          for development
www.orangeandbronze.com
SCRUM Documents
• Product Backlog
      → The WHAT that will be built
      → High level document for the entire project

      → Prioritized list of high level requirements

      → Contains broad descriptions of all required features,

        wish list items, etc.
      → Contains rough estimates




www.orangeandbronze.com
SCRUM Documents




www.orangeandbronze.com
SCRUM Documents
• Sprint Backlog
       → Tells HOW requirements are to be implemented in the
         upcoming Sprint
       → Greatly detailed document enumerating tasks to be

         completed during the Sprint
       → Broken down list of tasks, with each task being no more

         than 16 hours
       → Tasks are never assigned, but signed-up for by team

         members


 www.orangeandbronze.com
SCRUM Documents




www.orangeandbronze.com
SCRUM Documents




www.orangeandbronze.com
SCRUM Documents
• Burn Down Chart
      → Publicly displayed chart
      → Shows the amount of remaining tasks for the current

        Sprint
      → Updated daily

      → Gives a simple view of the daily progress of the team

        during a Sprint




www.orangeandbronze.com
SCRUM Documents




www.orangeandbronze.com
SCRUM General Practices
• Customers are part of the development team
• Frequent intermediate deliveries with working
  functionality
• Frequent risk and mitigation plans
• Transparency in planning and module development




www.orangeandbronze.com
SCRUM General Practices
• Frequent stakeholder meetings to monitor progress
• No one is penalized for recognizing or describing any
  unforeseen problems
• Workplaces and working hours must be energized




 www.orangeandbronze.com
SCRUM Process




www.orangeandbronze.com
Extreme Programming (XP)

“Extreme Programming is a discipline of software
development based on values of simplicity,
communication, feedback, and courage. It works by
bringing the whole team together in the presence of
simple practices, with enough feedback to enable the
team to see where they are and to tune the practices to
their unique situation.”
                                   – Ron Jeffries (2001)

www.orangeandbronze.com
Extreme Programming (XP)
• Founded by Ron Jeffries, Kent Beck & Ward Cunningham
• A deliberate and disciplined approach to software
  development
• Stresses customer satisfaction
      →   It is designed to deliver the software needed by the
          customer and when it is needed




www.orangeandbronze.com
Extreme Programming (XP)
• Empowers developers to confidently respond to
  changing customer requirements, even late in the life
  cycle
• Emphasizes teamwork
      →   Managers, customers and developers are all part of a
          team dedicated to delivering quality software
• Involves changing the way we program, putting greater
  emphasis on producing simple, high quality code



www.orangeandbronze.com
Extreme Programming (XP)




      Ron Jeffries
       Ron Jeffries       Kent Beck
                           Kent Beck   Ward Cunningham
                                       Ward Cunningham



www.orangeandbronze.com
XP Values
• Communication
       → Accomplished through documentation
       → Goal is to give developers a shared view of the system

         which matches the views held by the users
• Simplicity
       → Start with the simplest solution, extras can be added
         later
       → Focus on today, not tomorrow

       → Simple design with simple code can be easily

         understood
 www.orangeandbronze.com
XP Values
• Feedback
      → From the system through unit tests
      → From the customer through functional / acceptance

        tests
      → From the team through changes in the requirements


• Courage
      → Enables developers to feel comfortable in refactoring
        their own code
      → Knowing when to throw obsolete code away

      → Persistence

www.orangeandbronze.com
XP Values
• Respect
      → Respect for each
        member's work
      → Nobody on the team

        should feel
        unappreciated or
        ignored




www.orangeandbronze.com
Requirements




www.orangeandbronze.com
Capturing Requirements: User Stories
• Each story is a short description of the behavior of the
  system, from the viewpoint of the user
• The system is specified entirely through stories




 www.orangeandbronze.com
Capturing Requirements: User Stories




www.orangeandbronze.com
Iterative Development
• What is an iteration?
       →   A complete development cycle
                • Planning, Designing, Implementation, Testing
       → Customer selects features to implement at the start of
         the iteration
       → By the end of an iteration, the system should have

         acquired additional business behavior that implements
         business value to the customer



 www.orangeandbronze.com
Velocity
• The number of IPDs (Ideal Programming Days)
  completed per iteration
• Used to determine the amount the work that can be
  accomplished by the team or an individual in an
  iteration
• The pace of the team or individual




www.orangeandbronze.com
Software Release Cycle
• Software is built incrementally by iteration
• Each iteration lasts from 1 – 3 weeks
• Customer defines the release
       →   Customer decides what to release at the end of one or
           more iterations




 www.orangeandbronze.com
Customer Defines Release
• In each release cycle, the customer controls the scope:
       → What to do, what to defer
       → Provide the best possible release by due date


• Towards or at the end of each iteration, the customer
  decides whether enough functionality has been added
  to warrant a release




 www.orangeandbronze.com
Common Problem: Too Much to Do
• Not Enough Time
      →   No solution: Can't create time
• Too Much to Do
      →   Have solutions:
               • Prioritize and defer some things
               • Reduce the size of the things you need to do
               • Ask someone else to do things




www.orangeandbronze.com
Planning the Budget
• The Items: Stories
• The Cost: Estimates
• The Budget: Team Velocity
• The Constraints: Business and technology constraints
  discovered




 www.orangeandbronze.com
Planning the Release
• Customer: Write enough stories to define a successful
  product or system
• Development Team: Estimate effort of implementing
  each story
• Customer: Prioritize stories based on business value
  and difficulty
• Development Team: Divide stories into iterations based
  on team velocity (in previous iterations)


www.orangeandbronze.com
XP Development Cycle




www.orangeandbronze.com
XP Basic Activities
• Coding
• Testing
• Listening
• Designing




 www.orangeandbronze.com
XP Core Practices




www.orangeandbronze.com
XP Core Practices
• Fine Scale Feedback
      → Pair Programming
      → Planning Game

      → Test Driven Development

      → Whole Team


• Continuous Process
      → Continuous Integration
      → Small Releases

      → Refactoring or Design Improvement



www.orangeandbronze.com
XP Core Practices
• Shared Understanding
      → Coding Standards
      → Collective Code Ownership

      → Simple Design

      → System Metaphor


• Programmer Welfare
      →   Sustainable Pace




www.orangeandbronze.com
XP Core Practices
• Fine Scale Feedback
      →   Pair Programming
               • Ensures all production code is reviewed by at least one
                 programmer
               • Results in better design, better testing, and better code
               • A good way to pass knowledge




www.orangeandbronze.com
XP Core Practices
• Fine Scale Feedback
      →   Planning Game
               • Addresses two key questions:
                          – What should/will be accomplished by the due date?
                          – What to do next?
               • Emphasis on steering the project
               • Release Planning
                          – Desired features are determined and estimates are done
               • Iteration Planning
                          – Features are broken down into tasks
                          – Costs are estimated in a finer level of detail

www.orangeandbronze.com
XP Core Practices
• Fine Scale Feedback
      →   Test Driven Development
               • Aims to improve the system; always notching forward,
                 never backsliding
               • It's not enough to write tests, you have to run them
               • 100% or bust
               • Provides immediate feedback




www.orangeandbronze.com
XP Core Practices
• Fine Scale Feedback
      →   Whole Team
               • Everyone on an XP team contributes in any way they can
               • The best teams have no specialists, only general
                 contributors with special skill (Jeffries, 2001)




www.orangeandbronze.com
XP Core Practices
• Continuous Process
      →   Continuous Integration
               • It is encouraged to integrate multiple times a day
               • Infrequent integration usually leads to “integration hell”




www.orangeandbronze.com
XP Core Practices
• Continuous Process
      →   Small Releases
               • The team releases running, tested software, delivering
                 business value chosen by the customer, every iteration
                 (Jeffries, 2001)
               • Ultimate goal is to have software that is visible, which is
                 given to the customer at the end of each iteration




www.orangeandbronze.com
XP Core Practices
• Continuous Process
       →   Refactoring or Design Improvement
                • Focuses on:
                           – Removal of duplicate / obsolete code
                           – Increasing cohesion
                           – Decreasing coupling



“High cohesion and low coupling are recognized as
hallmarks of well-designed code for at least thirty years.”
                                            -- Ron Jeffries
 www.orangeandbronze.com
XP Core Practices
• Share Understanding
      →   Coding Standards
               • All the code looks as if it were written by a single – very
                 competent – individual (Jeffries, 2001)
               • All the code looks familiar to the developers




www.orangeandbronze.com
XP Core Practices
• Share Understanding
      →   Collective Code Ownership
               • Code gets the benefit of many people's attention,
                 increasing code quality and reducing defects (Jeffries,
                 2001)




www.orangeandbronze.com
XP Core Practices
• Shared Understanding
      →   Simple Design
               • Start simple, maintain through programmer testing and
                 design improvement / refactoring
      →   System Metaphor
               • A simple evocative description of how the program
                 works (Jeffries, 2001)
               • Provides a common vision for the team
               • A way to get everyone on the same page


www.orangeandbronze.com
XP Core Practices
                                             • Example of a Metaphor:
                                             “ This program works like a
                                             hive of bees, going out for
                                             pollen and bringing it back
                                             to the hive.”
                                             → Description for an agent-
                          (Roberts, 2006)    based information retrieval
                           (Roberts, 2006)
                                             system
                                                             (Jeffries, 2001)



www.orangeandbronze.com
XP Core Practices
• Programmer Welfare
      →   Sustainable Pace
               • XP teams work at a pace that can be sustained
                 indefinitely
               • Maximize productivity week in and week out
               • XP teams are “in it to win it, not to die” (Jeffries, 2001)




www.orangeandbronze.com
Strong Opinions Against XP
• Unstable Requirements
       →   Informal change requests may lead to costly rework and
           scope creep
• User Conflicts
       →   Dependence on programmers being able to assume a
           unified client viewpoint




 www.orangeandbronze.com
Strong Opinions Against XP
• Requirements are expressed as automated acceptance
  tests rather than specification documents
• Requirements are defined incrementally, rather than
  trying to get them all in advance
• Developers are required to work in pairs




www.orangeandbronze.com
Strong Opinions Against XP
• No “Big Design Up Front ”
       →   Most design activities take place on the fly
• A customer representative is attached to the project
• Scalability
       →   Historically, XP only works in teams of twelve or fewer
           people




 www.orangeandbronze.com
Benefits of XP
• Allows one to be more Agile
• Focus on programming
• Enables quicker delivery of quality software than
  traditional methods
• Enables more flexibility than traditional methods




 www.orangeandbronze.com
References
• Beck, K., Beedle, M., Bennekum, A., Cockburn, A.,
  Cunningham, W., Fowler, M., et al. (2001) Manifesto for
  Agile Software Development. Retrieved from
  http://agilemanifesto.org
• Clark, T., Vizdos, M. (2006) The Classic Story of the Pig
  and Chicken. Retrieved from
  http://implementingscrum.com
• Jeffries, R. (2001) What is Extreme Programming?
  Retrieved from
  http://www.xprogramming.com/xpmag/whatisxp.htm
 www.orangeandbronze.com
References
• Landingin, R. (2008) Agile Methodology Workshop
  [Powerpoint Slides].
• Patel, N. (2006) Agile Methods [Powerpoint Slides].
  Retrieved from
  http://greenbay.usc.edu/csci577/spring2006/site/presentat
• Roberts, H. (Artist). (2006) Bees swarming around a
  beehive [Digital Image]. Retrieved July 31, 2008 from
  http://bluebison.net/sketchbook/2006/0906/bees.png
•

www.orangeandbronze.com

Más contenido relacionado

La actualidad más candente (20)

Agile software development
Agile software developmentAgile software development
Agile software development
 
Scrum for Beginners
Scrum for BeginnersScrum for Beginners
Scrum for Beginners
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
 
Agile Overview
Agile OverviewAgile Overview
Agile Overview
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training Process
 
Agile & Scrum Training
Agile & Scrum TrainingAgile & Scrum Training
Agile & Scrum Training
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Agile 101
Agile 101Agile 101
Agile 101
 
Agile vs Waterfall Project management
Agile vs Waterfall  Project management Agile vs Waterfall  Project management
Agile vs Waterfall Project management
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 
Agile 101
Agile 101Agile 101
Agile 101
 
Agile sdlc
Agile sdlcAgile sdlc
Agile sdlc
 
AGILE METHODOLOGY
AGILE METHODOLOGYAGILE METHODOLOGY
AGILE METHODOLOGY
 
Scrum - Agile Methodology
Scrum - Agile MethodologyScrum - Agile Methodology
Scrum - Agile Methodology
 
What is Scrum?
What is Scrum?What is Scrum?
What is Scrum?
 
Agile
Agile Agile
Agile
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
 
User Stories
User StoriesUser Stories
User Stories
 

Similar a Agile Intro: History, Principles & Methods

Apt sdlc
Apt sdlcApt sdlc
Apt sdlcIndra
 
Ladies Be Architects: Study Group IV: Project and System Governance
Ladies Be Architects: Study Group IV: Project and System GovernanceLadies Be Architects: Study Group IV: Project and System Governance
Ladies Be Architects: Study Group IV: Project and System Governancegemziebeth
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Standardization and strategy in agile
Standardization and strategy in agileStandardization and strategy in agile
Standardization and strategy in agileNaveen Gupta
 
Wasserman Keynote at ICSSP 2013
Wasserman Keynote at ICSSP 2013Wasserman Keynote at ICSSP 2013
Wasserman Keynote at ICSSP 2013twasserman
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computingAhmed M. Abed
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3Azhar Shaik
 
Agile software development for startups
Agile software development for startupsAgile software development for startups
Agile software development for startupsHemant Elhence
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-modelasidharath
 
Orangescrum enterprise features
Orangescrum enterprise featuresOrangescrum enterprise features
Orangescrum enterprise featuresOrangescrum
 
Understanding-Agile &Scrum.pdf
Understanding-Agile &Scrum.pdfUnderstanding-Agile &Scrum.pdf
Understanding-Agile &Scrum.pdfSwapnikaReddy6
 
Beyond the Scrum Team: Delivering "Done" at Scale
Beyond the Scrum Team: Delivering "Done" at ScaleBeyond the Scrum Team: Delivering "Done" at Scale
Beyond the Scrum Team: Delivering "Done" at ScaleTasktop
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware Cprime
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 

Similar a Agile Intro: History, Principles & Methods (20)

Apt sdlc
Apt sdlcApt sdlc
Apt sdlc
 
Ladies Be Architects: Study Group IV: Project and System Governance
Ladies Be Architects: Study Group IV: Project and System GovernanceLadies Be Architects: Study Group IV: Project and System Governance
Ladies Be Architects: Study Group IV: Project and System Governance
 
Fundamentals of Agile Methodologies - Part I
Fundamentals of Agile Methodologies - Part IFundamentals of Agile Methodologies - Part I
Fundamentals of Agile Methodologies - Part I
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Standardization and strategy in agile
Standardization and strategy in agileStandardization and strategy in agile
Standardization and strategy in agile
 
Wasserman Keynote at ICSSP 2013
Wasserman Keynote at ICSSP 2013Wasserman Keynote at ICSSP 2013
Wasserman Keynote at ICSSP 2013
 
Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computing
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
Agile software development for startups
Agile software development for startupsAgile software development for startups
Agile software development for startups
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
 
Orangescrum enterprise features
Orangescrum enterprise featuresOrangescrum enterprise features
Orangescrum enterprise features
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
Understanding-Agile &Scrum.pdf
Understanding-Agile &Scrum.pdfUnderstanding-Agile &Scrum.pdf
Understanding-Agile &Scrum.pdf
 
Beyond the Scrum Team: Delivering "Done" at Scale
Beyond the Scrum Team: Delivering "Done" at ScaleBeyond the Scrum Team: Delivering "Done" at Scale
Beyond the Scrum Team: Delivering "Done" at Scale
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 

Último

Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Associazione Digital Days
 
group_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfgroup_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfneelspinoy
 
Karim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 pppppppppppppppKarim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 pppppppppppppppNadaMohammed714321
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIyuj
 
cda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptcda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptMaryamAfzal41
 
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.pptMaking and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.pptJIT KUMAR GUPTA
 
10 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 202410 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 2024digital learning point
 
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道yrolcks
 
Color Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 StudioColor Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 StudioThink360 Studio
 
10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designersPixeldarts
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书zdzoqco
 
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - MorgenboosterAI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster1508 A/S
 
guest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssguest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssNadaMohammed714321
 
Piece by Piece Magazine
Piece by Piece Magazine                      Piece by Piece Magazine
Piece by Piece Magazine CharlottePulte
 
Unit1_Syllbwbnwnwneneneneneneentation_Sem2.pptx
Unit1_Syllbwbnwnwneneneneneneentation_Sem2.pptxUnit1_Syllbwbnwnwneneneneneneentation_Sem2.pptx
Unit1_Syllbwbnwnwneneneneneneentation_Sem2.pptxNitish292041
 
guest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssguest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssNadaMohammed714321
 
Karim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 pppppppppppppppKarim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 pppppppppppppppNadaMohammed714321
 
Interior Design for Office a cura di RMG Project Studio
Interior Design for Office a cura di RMG Project StudioInterior Design for Office a cura di RMG Project Studio
Interior Design for Office a cura di RMG Project StudioRMG Project Studio
 
world health day 2024.pptxgbbvggvbhjjjbbbb
world health day 2024.pptxgbbvggvbhjjjbbbbworld health day 2024.pptxgbbvggvbhjjjbbbb
world health day 2024.pptxgbbvggvbhjjjbbbbpreetirao780
 
General Knowledge Quiz Game C++ CODE.pptx
General Knowledge Quiz Game C++ CODE.pptxGeneral Knowledge Quiz Game C++ CODE.pptx
General Knowledge Quiz Game C++ CODE.pptxmarckustrevion
 

Último (20)

Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
Giulio Michelon, Founder di @Belka – “Oltre le Stime: Sviluppare una Mentalit...
 
group_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfgroup_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdf
 
Karim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 pppppppppppppppKarim apartment ideas 02 ppppppppppppppp
Karim apartment ideas 02 ppppppppppppppp
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AI
 
cda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptcda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis ppt
 
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.pptMaking and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
Making and Unmaking of Chandigarh - A City of Two Plans2-4-24.ppt
 
10 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 202410 Best WordPress Plugins to make the website effective in 2024
10 Best WordPress Plugins to make the website effective in 2024
 
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
怎么办理英国Newcastle毕业证纽卡斯尔大学学位证书一手渠道
 
Color Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 StudioColor Theory Explained for Noobs- Think360 Studio
Color Theory Explained for Noobs- Think360 Studio
 
10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers10 must-have Chrome extensions for designers
10 must-have Chrome extensions for designers
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
 
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - MorgenboosterAI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
AI and Design Vol. 2: Navigating the New Frontier - Morgenbooster
 
guest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssssguest bathroom white and blue ssssssssss
guest bathroom white and blue ssssssssss
 
Piece by Piece Magazine
Piece by Piece Magazine                      Piece by Piece Magazine
Piece by Piece Magazine
 
Unit1_Syllbwbnwnwneneneneneneentation_Sem2.pptx
Unit1_Syllbwbnwnwneneneneneneentation_Sem2.pptxUnit1_Syllbwbnwnwneneneneneneentation_Sem2.pptx
Unit1_Syllbwbnwnwneneneneneneentation_Sem2.pptx
 
guest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssssguest bathroom white and bluesssssssssss
guest bathroom white and bluesssssssssss
 
Karim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 pppppppppppppppKarim apartment ideas 01 ppppppppppppppp
Karim apartment ideas 01 ppppppppppppppp
 
Interior Design for Office a cura di RMG Project Studio
Interior Design for Office a cura di RMG Project StudioInterior Design for Office a cura di RMG Project Studio
Interior Design for Office a cura di RMG Project Studio
 
world health day 2024.pptxgbbvggvbhjjjbbbb
world health day 2024.pptxgbbvggvbhjjjbbbbworld health day 2024.pptxgbbvggvbhjjjbbbb
world health day 2024.pptxgbbvggvbhjjjbbbb
 
General Knowledge Quiz Game C++ CODE.pptx
General Knowledge Quiz Game C++ CODE.pptxGeneral Knowledge Quiz Game C++ CODE.pptx
General Knowledge Quiz Game C++ CODE.pptx
 

Agile Intro: History, Principles & Methods

  • 1. Agile Methodology An Introduction to the Concepts of the Agile Methodology
  • 2. Copyright This material is primarily for the use of Orange and Bronze Software Labs, Inc. No part of this material may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without permission in writing from the publisher. www.orangeandbronze.com
  • 3. Overview • What is the Agile Methodology? → History → Principles → Characteristics • Agile Method: SCRUM • Agile Method: XP www.orangeandbronze.com
  • 4. History • Evolved in the mid 90s as part of a reaction against “heavyweight ” methods → e.g. heavily regulated, regimented, micro-managed use of the Waterfall Method • Sought to move away from the Waterfall Method which was seen as bureaucratic, slow, demeaning, and inconsistent with the ways that developers perform effective work • Initially called lightweight methods www.orangeandbronze.com
  • 5. History • Earlier Methods → Scrum (1986) → Crystal Clear and Other Crystal Methodologies → Extreme Programming (XP) (1996) → Adaptive Software Development (ASD) → Feature Driven Development → Dynamic Systems Development Method (DSDM) (1995) → Agile Modeling → Lean Software Development → Agile Unified Process (AUP) www.orangeandbronze.com
  • 6. The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan www.orangeandbronze.com
  • 7. Agile Principles (The Agile Manifesto) • Customer satisfaction by rapid, continuous delivery of useful software • Working software is delivered frequently (weeks rather than months) • Working software is the principal measure of progress • Close, daily cooperation between business people and developers • Face-to-face conversation is the best form of communication www.orangeandbronze.com
  • 8. Agile Principles (The Agile Manifesto) • Projects are built around motivated individuals, who should be trusted to get the job done • Continuous attention to technical excellence and good design • Simplicity • Self-organizing teams • Regular adaptation to changing circumstances www.orangeandbronze.com
  • 9. Agile Characteristics • More adaptive than predictive • Focuses on the near future rather than the distant future • Focuses on adapting quickly to changing realities rather than planning for the entire length of the development process • Has a lot in common with Rapid Application Development www.orangeandbronze.com
  • 10. Agile Characteristics • Time periods are strict time boxes and are measured in weeks rather than months • Highly collaborative work • Emphasizes real time communication • Emphasis on building releasable software in short time periods • Customer is on site and part of the development team www.orangeandbronze.com
  • 11. Agile Characteristics • Phases → Inception → Elaboration → Construction → Transition www.orangeandbronze.com
  • 12. Agile Characteristics • Inception Phase → Smallest phase in the project → Ideally short → Goals: • Establish a justification or business case for the project • Establish the project scope and boundary conditions • Outline the Use Cases and key requirements that will drive design tradeoffs • Outline one or more architectures • Identify risks www.orangeandbronze.com
  • 13. Agile Characteristics • Inception Phase → Goals: • Prepare a preliminary project schedule and cost estimate • Establish a baseline by which to compare actual and planned expenditures → Deliverables: • Objectives and Scope of the Project • High Level Use Cases • Candidate Architectures • Project Schedule and Cost Estimates www.orangeandbronze.com
  • 14. Agile Characteristics • Elaboration Phase → Project starts to take shape → Healthy majority of the system requirements is captured → Analysis of the problem domain www.orangeandbronze.com
  • 15. Agile Characteristics • Elaboration Phase → Primary Goals: • Address known risk factors • Establish and validate system architecture • Delve deeper into the requirements previously gathered www.orangeandbronze.com
  • 16. Agile Characteristics • Elaboration Phase → Deliverables: • Detailed Use Cases • Conceptual Diagrams – Ex. Process Flow Diagrams, Activity Diagrams, etc. • Package Diagrams – Architectural Diagrams • Stable System Architecture • Plan for Construction Phase – Including cost and schedule estimates www.orangeandbronze.com
  • 17. Agile Characteristics • Construction Phase → Largest phase → Where the bulk of the coding takes place → Use cases are translated to demonstrable prototypes → System is built under the foundation laid in Elaboration www.orangeandbronze.com
  • 18. Agile Characteristics • Construction Phase → Main Focus: Development of components and features • Implemented in a series of short, timeboxed iterations • Each iteration yields an executable release of software → Deliverables: • First external release of the software • Succeeding releases of the software as per iteration www.orangeandbronze.com
  • 19. Agile Characteristics • Transition Phase → Product moves from development team to end users → Feedback received may lead to further refinements → Refinements may be incorporated in several iterations www.orangeandbronze.com
  • 20. Agile Characteristics • Transition Phase → Activities: • System conversion • Training of end users and maintenance team • Validation of system against end user expectation via beta testing • Quality level validation → Deliverables: • Final release of the system www.orangeandbronze.com
  • 21. Agile Characteristics • Principles on Code Production → Keep it simple → Have one shared metaphor → Regularly restructure the system ( Refactoring) → Continuously integrate and test → Follow coding standards www.orangeandbronze.com
  • 22. Agile Characteristics • Agile Best Practices → Daily kickoff and review of goals → Short release cycles → Responsive development → Generalism • Use of generic skill sets that are common across the team, instead of reliance on specific skill sets that are scarce www.orangeandbronze.com
  • 23. Agile Characteristics • Advantages → Customer decides scope, priority, and dates from a business perspective, while technical people estimate and track progress → Incremental development → Emphasis on responsibility for quality www.orangeandbronze.com
  • 24. Agile Characteristics • Advantages → Emphasis on keeping it simple, regular refactoring, and continuous integration and testing → Lightweight, efficient, low-risk, flexible, scientific, and fun way of developing software www.orangeandbronze.com
  • 25. Agile Characteristics • Criticism / Disadvantages → Puts strong dependence on trust → Code-centered rather than design-centered → Lack of orderly design process and structured reviews may lead to extensive and time consuming tests www.orangeandbronze.com
  • 26. Agile Characteristics • Criticism / Disadvantages → Lack of structure and necessary documentation → Only works with senior-level developers → Reliance on verbal communication → Requires too much cultural change to adopt www.orangeandbronze.com
  • 27. Suitability with Types of Projects • AGILE Homeground → Low criticality → Senior developers → Requirements change frequently → Culture that thrives on “chaos” or changing realities www.orangeandbronze.com
  • 28. Suitability with Types of Projects • PLAN-DRIVEN Homeground → High criticality → Junior developers → Requirements don't change too often → Large number of developers → Culture that demands order www.orangeandbronze.com
  • 29. Agile Methods • Scrum • Extreme Programming (XP) • Agile Modeling • Agile Unified Process (AUP) • Agile Data Method • Test Driven Development (TDD) • Feature Driven Development (FDD) • Behavior Driven Development (BDD) • Essential Unified Process (EssUP) www.orangeandbronze.com
  • 30. SCRUM • Originally a rugby term which is short for “scrummage” www.orangeandbronze.com
  • 31. SCRUM • Characteristics → An iterative incremental process commonly used with the Agile Methodology → Can be used: • For managing software development projects • As a program management approach (Scrum of Scrums) → Works hand in hand with the PSA Time and Material Model www.orangeandbronze.com
  • 32. SCRUM • Characteristics → A process skeleton that includes a set of practices and predefined roles → Employs “Sprints” - a time period, usually 15 – 30 days, in which development occurs on a set backlog items that the team has committed to www.orangeandbronze.com
  • 33. SCRUM Roles • Pig Roles – The ones committed to the project and the Scrum process (Scrum Team) • Chicken Roles – The ones not part of the actual Scrum process but are only involved www.orangeandbronze.com
  • 34. Pig Roles • Product Owner → The voice of the customer → Responsible for maintaining the Product Backlog • Scrum Master (or Facilitator) → Responsible for the Scrum process → Ensures that Scrum is used correctly and its benefits are maximized www.orangeandbronze.com
  • 35. Pig Roles • Team → A cross-functional group of people → Responsible for managing itself to develop the product www.orangeandbronze.com
  • 36. Chicken Roles • Users → Who the software is built for • Stakeholders → People who have interest in the project → People within or outside an organization that may influence the project's objectives and outcomes • Managers → The people who will set up the environment for development www.orangeandbronze.com
  • 37. SCRUM Documents • Product Backlog → The WHAT that will be built → High level document for the entire project → Prioritized list of high level requirements → Contains broad descriptions of all required features, wish list items, etc. → Contains rough estimates www.orangeandbronze.com
  • 39. SCRUM Documents • Sprint Backlog → Tells HOW requirements are to be implemented in the upcoming Sprint → Greatly detailed document enumerating tasks to be completed during the Sprint → Broken down list of tasks, with each task being no more than 16 hours → Tasks are never assigned, but signed-up for by team members www.orangeandbronze.com
  • 42. SCRUM Documents • Burn Down Chart → Publicly displayed chart → Shows the amount of remaining tasks for the current Sprint → Updated daily → Gives a simple view of the daily progress of the team during a Sprint www.orangeandbronze.com
  • 44. SCRUM General Practices • Customers are part of the development team • Frequent intermediate deliveries with working functionality • Frequent risk and mitigation plans • Transparency in planning and module development www.orangeandbronze.com
  • 45. SCRUM General Practices • Frequent stakeholder meetings to monitor progress • No one is penalized for recognizing or describing any unforeseen problems • Workplaces and working hours must be energized www.orangeandbronze.com
  • 47. Extreme Programming (XP) “Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation.” – Ron Jeffries (2001) www.orangeandbronze.com
  • 48. Extreme Programming (XP) • Founded by Ron Jeffries, Kent Beck & Ward Cunningham • A deliberate and disciplined approach to software development • Stresses customer satisfaction → It is designed to deliver the software needed by the customer and when it is needed www.orangeandbronze.com
  • 49. Extreme Programming (XP) • Empowers developers to confidently respond to changing customer requirements, even late in the life cycle • Emphasizes teamwork → Managers, customers and developers are all part of a team dedicated to delivering quality software • Involves changing the way we program, putting greater emphasis on producing simple, high quality code www.orangeandbronze.com
  • 50. Extreme Programming (XP) Ron Jeffries Ron Jeffries Kent Beck Kent Beck Ward Cunningham Ward Cunningham www.orangeandbronze.com
  • 51. XP Values • Communication → Accomplished through documentation → Goal is to give developers a shared view of the system which matches the views held by the users • Simplicity → Start with the simplest solution, extras can be added later → Focus on today, not tomorrow → Simple design with simple code can be easily understood www.orangeandbronze.com
  • 52. XP Values • Feedback → From the system through unit tests → From the customer through functional / acceptance tests → From the team through changes in the requirements • Courage → Enables developers to feel comfortable in refactoring their own code → Knowing when to throw obsolete code away → Persistence www.orangeandbronze.com
  • 53. XP Values • Respect → Respect for each member's work → Nobody on the team should feel unappreciated or ignored www.orangeandbronze.com
  • 55. Capturing Requirements: User Stories • Each story is a short description of the behavior of the system, from the viewpoint of the user • The system is specified entirely through stories www.orangeandbronze.com
  • 56. Capturing Requirements: User Stories www.orangeandbronze.com
  • 57. Iterative Development • What is an iteration? → A complete development cycle • Planning, Designing, Implementation, Testing → Customer selects features to implement at the start of the iteration → By the end of an iteration, the system should have acquired additional business behavior that implements business value to the customer www.orangeandbronze.com
  • 58. Velocity • The number of IPDs (Ideal Programming Days) completed per iteration • Used to determine the amount the work that can be accomplished by the team or an individual in an iteration • The pace of the team or individual www.orangeandbronze.com
  • 59. Software Release Cycle • Software is built incrementally by iteration • Each iteration lasts from 1 – 3 weeks • Customer defines the release → Customer decides what to release at the end of one or more iterations www.orangeandbronze.com
  • 60. Customer Defines Release • In each release cycle, the customer controls the scope: → What to do, what to defer → Provide the best possible release by due date • Towards or at the end of each iteration, the customer decides whether enough functionality has been added to warrant a release www.orangeandbronze.com
  • 61. Common Problem: Too Much to Do • Not Enough Time → No solution: Can't create time • Too Much to Do → Have solutions: • Prioritize and defer some things • Reduce the size of the things you need to do • Ask someone else to do things www.orangeandbronze.com
  • 62. Planning the Budget • The Items: Stories • The Cost: Estimates • The Budget: Team Velocity • The Constraints: Business and technology constraints discovered www.orangeandbronze.com
  • 63. Planning the Release • Customer: Write enough stories to define a successful product or system • Development Team: Estimate effort of implementing each story • Customer: Prioritize stories based on business value and difficulty • Development Team: Divide stories into iterations based on team velocity (in previous iterations) www.orangeandbronze.com
  • 65. XP Basic Activities • Coding • Testing • Listening • Designing www.orangeandbronze.com
  • 67. XP Core Practices • Fine Scale Feedback → Pair Programming → Planning Game → Test Driven Development → Whole Team • Continuous Process → Continuous Integration → Small Releases → Refactoring or Design Improvement www.orangeandbronze.com
  • 68. XP Core Practices • Shared Understanding → Coding Standards → Collective Code Ownership → Simple Design → System Metaphor • Programmer Welfare → Sustainable Pace www.orangeandbronze.com
  • 69. XP Core Practices • Fine Scale Feedback → Pair Programming • Ensures all production code is reviewed by at least one programmer • Results in better design, better testing, and better code • A good way to pass knowledge www.orangeandbronze.com
  • 70. XP Core Practices • Fine Scale Feedback → Planning Game • Addresses two key questions: – What should/will be accomplished by the due date? – What to do next? • Emphasis on steering the project • Release Planning – Desired features are determined and estimates are done • Iteration Planning – Features are broken down into tasks – Costs are estimated in a finer level of detail www.orangeandbronze.com
  • 71. XP Core Practices • Fine Scale Feedback → Test Driven Development • Aims to improve the system; always notching forward, never backsliding • It's not enough to write tests, you have to run them • 100% or bust • Provides immediate feedback www.orangeandbronze.com
  • 72. XP Core Practices • Fine Scale Feedback → Whole Team • Everyone on an XP team contributes in any way they can • The best teams have no specialists, only general contributors with special skill (Jeffries, 2001) www.orangeandbronze.com
  • 73. XP Core Practices • Continuous Process → Continuous Integration • It is encouraged to integrate multiple times a day • Infrequent integration usually leads to “integration hell” www.orangeandbronze.com
  • 74. XP Core Practices • Continuous Process → Small Releases • The team releases running, tested software, delivering business value chosen by the customer, every iteration (Jeffries, 2001) • Ultimate goal is to have software that is visible, which is given to the customer at the end of each iteration www.orangeandbronze.com
  • 75. XP Core Practices • Continuous Process → Refactoring or Design Improvement • Focuses on: – Removal of duplicate / obsolete code – Increasing cohesion – Decreasing coupling “High cohesion and low coupling are recognized as hallmarks of well-designed code for at least thirty years.” -- Ron Jeffries www.orangeandbronze.com
  • 76. XP Core Practices • Share Understanding → Coding Standards • All the code looks as if it were written by a single – very competent – individual (Jeffries, 2001) • All the code looks familiar to the developers www.orangeandbronze.com
  • 77. XP Core Practices • Share Understanding → Collective Code Ownership • Code gets the benefit of many people's attention, increasing code quality and reducing defects (Jeffries, 2001) www.orangeandbronze.com
  • 78. XP Core Practices • Shared Understanding → Simple Design • Start simple, maintain through programmer testing and design improvement / refactoring → System Metaphor • A simple evocative description of how the program works (Jeffries, 2001) • Provides a common vision for the team • A way to get everyone on the same page www.orangeandbronze.com
  • 79. XP Core Practices • Example of a Metaphor: “ This program works like a hive of bees, going out for pollen and bringing it back to the hive.” → Description for an agent- (Roberts, 2006) based information retrieval (Roberts, 2006) system (Jeffries, 2001) www.orangeandbronze.com
  • 80. XP Core Practices • Programmer Welfare → Sustainable Pace • XP teams work at a pace that can be sustained indefinitely • Maximize productivity week in and week out • XP teams are “in it to win it, not to die” (Jeffries, 2001) www.orangeandbronze.com
  • 81. Strong Opinions Against XP • Unstable Requirements → Informal change requests may lead to costly rework and scope creep • User Conflicts → Dependence on programmers being able to assume a unified client viewpoint www.orangeandbronze.com
  • 82. Strong Opinions Against XP • Requirements are expressed as automated acceptance tests rather than specification documents • Requirements are defined incrementally, rather than trying to get them all in advance • Developers are required to work in pairs www.orangeandbronze.com
  • 83. Strong Opinions Against XP • No “Big Design Up Front ” → Most design activities take place on the fly • A customer representative is attached to the project • Scalability → Historically, XP only works in teams of twelve or fewer people www.orangeandbronze.com
  • 84. Benefits of XP • Allows one to be more Agile • Focus on programming • Enables quicker delivery of quality software than traditional methods • Enables more flexibility than traditional methods www.orangeandbronze.com
  • 85. References • Beck, K., Beedle, M., Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., et al. (2001) Manifesto for Agile Software Development. Retrieved from http://agilemanifesto.org • Clark, T., Vizdos, M. (2006) The Classic Story of the Pig and Chicken. Retrieved from http://implementingscrum.com • Jeffries, R. (2001) What is Extreme Programming? Retrieved from http://www.xprogramming.com/xpmag/whatisxp.htm www.orangeandbronze.com
  • 86. References • Landingin, R. (2008) Agile Methodology Workshop [Powerpoint Slides]. • Patel, N. (2006) Agile Methods [Powerpoint Slides]. Retrieved from http://greenbay.usc.edu/csci577/spring2006/site/presentat • Roberts, H. (Artist). (2006) Bees swarming around a beehive [Digital Image]. Retrieved July 31, 2008 from http://bluebison.net/sketchbook/2006/0906/bees.png • www.orangeandbronze.com