Agile Development - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Agile Development

Description:

Extreme Programming (XP) Key activities ... collaboration for requirements ... Testing and documentation is performed as the product is built. 18 /29. Scrum ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 30
Provided by: roger287
Category:
Tags: agile | development | for | key | product | xp

less

Transcript and Presenter's Notes

Title: Agile Development


1
Agile Development
2
Manifesto for Agile Software Development
  • 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

Kent Beck et al
3
What is Agility?
  • Effective (rapid and adaptive) response to change
  • Effective communication among all stakeholders
  • Drawing the customer onto the team
  • Organizing a team so that it is in control of the
    work performed
  • Yielding
  • Rapid, incremental delivery of software

4
An Agile Process
  • Is driven by customer descriptions of what is
    required (scenarios)
  • Recognizes that plans are short-lived
  • Develops software iteratively with a heavy
    emphasis on construction activities
  • Delivers multiple software increments
  • Adapts as changes occur

5
Agile Process Models
  • Extreme Programming (XP)
  • Adaptive Software Development (ASD)
  • Dynamic Systems Development Method (DSDM)
  • Scrum
  • Crystal
  • Feature Driven Development (FDD)
  • Agile Modeling (AM)

6
Extreme Programming (XP)
  • The most widely used agile process, originally
    proposed by Kent Beck
  • XP Planning
  • Begins with the creation of user stories
  • Agile team assesses each story and assigns a cost
  • Stories are grouped to for a deliverable
    increment
  • A commitment is made on delivery date
  • After the first increment project velocity is
    used to help define subsequent delivery dates for
    other increments

7
Extreme Programming (XP)
  • Key activities
  • Planning (user stories created and ordered by
    customer value)
  • Design (simple designs preferred,
    Class-Responsibility Collaboration (CRC) cards
    and design prototypes are only work products,
    encourages use of refactoring)

8
Extreme Programming (XP)
  • Key activities
  • Coding (focuses on unit tests to exercise
    stories, emphasizes use of pairs programming to
    create story code, continuous integration and
    smoke testing is utilized)
  • Testing (unit tests created before coding are
    implemented, integration and validation testing
    done on daily basis, acceptance tests focus on
    system features and functions viewable by the
    customer)

9
Extreme Programming (XP)
10
Adaptive Software Development
  • Self-organization arises when independent agents
    cooperate to create a solution to a problem that
    is beyond the capability of any individual agent
  • Emphasizes self-organizing teams, interpersonal
    collaboration, and both individual and team
    learning
  • Adaptive cycle characteristics

11
Adaptive Software Development
  • ASD distinguishing features
  • Mission-driven planning
  • Component-based focus
  • Uses time-boxing (See Chapter 24)
  • Explicit consideration of risks
  • Emphasizes collaboration for requirements
    gathering
  • Emphasizes learning throughout the process

12
Adaptive Software Development
13
Dynamic Systems Development Method
  • DSDM guiding principles
  • Active user involvement is imperative.
  • DSDM teams must be empowered to make decisions.
  • The focus is on frequent delivery of products.
  • Fitness for business purpose is the essential
    criterion for acceptance of deliverables.

14
Dynamic Systems Development Method
  • DSDM guiding principles
  • Iterative and incremental development is
    necessary to converge on an accurate business
    solution.
  • All changes during development are reversible.
  • Requirements are baselined at a high level
  • Testing is integrated throughout the life-cycle.

15
Dynamic Systems Development Method
  • Provides a framework for building and maintaining
    systems which meet tight time constraints using
    incremental prototyping in a controlled
    environment
  • Each increment only delivers enough functionality
    to move to the next increment
  • Uses time boxes to fix time and resources to
    determine how much functionality will be
    delivered in each increment

16
Dynamic Systems Development Method
  • DSDM Life cycle activities
  • Feasibility study (establishes requirements and
    constraints)
  • Business study (establishes functional and
    information requirements needed to provide
    business value)
  • Functional model iteration (produces set of
    incremental prototypes to demonstrate
    functionality to customer)
  • Design and build iteration (revisits prototypes
    to ensure they provide business value for end
    users, may occur concurrently with functional
    model iteration)
  • Implementation (latest iteration placed in
    operational environment)

17
Scrum
  • Scrum principles
  • Small working team used to maximize
    communication, minimize overhead, and maximize
    sharing of informal knowledge
  • Process must be adaptable to both technical and
    business challenges
  • Process yields frequent increments that can be
    inspected, adjusted, tested, documented and built
    on
  • Development work and people performing it are
    partitioned into clean, low coupling partitions
  • Testing and documentation is performed as the
    product is built

18
Scrum
  • Process patterns defining development activities
  • Backlog prioritized list of requirements or
    features, items can be added at any time
  • Sprints work units required to achieve one of
    the backlog items, must fit into a predefined
    time-box
  • Scrum meetings (15 minute daily meetings)
    addressing these questions What was done since
    last meeting? What obstacles were encountered?
    What will be done by the next meeting?
  • Demos deliver software increment to customer for
    evaluation

19
Crystal
  • Development approach that puts a premium on
    maneuverability during a resource-limited game
  • Incremental development strategy used with 1 to 3
    month time lines
  • Reflection workshops conducted before project
    begins, during increment development activity,
    and after increment is delivered

20
Crystal
  • Crystal principles
  • Its always cheaper and faster to communicate
    face-to-face
  • As methodologies become more formal teams become
    weighed down and have trouble adapting to project
    work vagaries
  • As projects grow in size, teams become larger and
    methodologies become heavier
  • As projects grow in criticality some degree of
    formality will need to be introduced in parts of
    the methodology

21
Crystal
  • Crystal principles
  • As feedback and communication become more
    efficient the need for intermediate work products
    is reduced
  • Discipline, skills, and understanding counter
    process, formality, and documentation
  • Team members not on the critical project path can
    spend their excess time improving the product or
    helping people who are on the critical path

22
Feature Driven Development
  • Practical process model for object-oriented
    software engineering
  • Feature is a client-valued function, can be
    implemented in two weeks or less

23
Feature Driven Development
  • FDD Philosophy
  • Emphasizes collaboration among team members
  • Manages problem and project complexity using
    feature-based decomposition followed integration
    of software increments
  • Technical communication using verbal, graphical,
    and textual means
  • Software quality encouraged by using incremental
    development, design and code inspections, SQA
    audits, metric collection, and use of patterns

24
Feature Driven Development
  • Framework activities
  • Develop overall model contains set of classes
    depicting business model of application to be
    built
  • Build features list features extracted from
    domain model and are categorized and prioritized,
    work is broken up into two week chunks
  • Plan by feature features assessed based on
    priority, effort, technical issues, schedule
    dependencies

25
Feature Driven Development
  • Framework activities
  • Design by feature classes relevant to feature
    are chosen, class and method prologs are written,
    preliminary design detail developed, owner
    assigned to each class, owner responsible for
    maintaining design document for his or her own
    work packages
  • Build by feature class owner translates design
    into source code and performs unit testing,
    integration performed by chief programmer

26
Feature Driven Development
  • Emphasis is on defining features
  • A features list is created and plan by feature
    is conducted
  • Design and construction merge in FDD
  • Six milestones during the design and
    implementation of a feature design walkthrough,
    design, design inspection, code, code generation,
    promote to build
  • Uses a feature template
  • ltactiongt the ltresultgt ltby for of togt a(n)
    ltobjectgt

27
Agile Modeling
  • Practice-based methodology for effective
    modeling and documentation of software systems in
    a light-weight manner
  • Requirements gathering and analysis modeling
  • Work collaboratively to find out what customer
    wants to do
  • Once requirements model is built collaborative
    analysis modeling continues with the customer

28
Agile Modeling
  • Modeling principles
  • Model with a purpose
  • Use multiple models
  • Travel light (only keep models with long-term
    value)
  • Content is more important than representation
  • Know the models and tools you use to create them
  • Adapt locally

29
Agile Modeling
  • Architectural modeling
  • Derives preliminary architecture from analysis
    model
  • Architectural model must be realistic for the
    environment and must be understandable by
    developers
Write a Comment
User Comments (0)
About PowerShow.com