extreme 4

Upload: amardeeprungta

Post on 10-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Extreme 4

    1/35

    Extreme ProgrammingTeam Members Aaron Zedonis Cesar Garduno Jian Song Jose Cortes Ko-Wei Pan

    Date: May 29, 2001Class: Programming

    MethodsInstructor: Dan Klawitter

  • 8/8/2019 Extreme 4

    2/35

    PlanningUser stories; Release planning; small releases; Business Analysis; Project Velocity; Iterations;Iteration planning; Move people around; Stand-

    up meeting day; Fix XP when it breaks .

    DesigningSimplicity; System metaphor.

    Use CRC cards for design sessions.Spike solutions to reduce risk. No functionality added early.

    Refactor.

    CodingCustomer is always available; Standards.Code the unit test first; Pair programmed;

    Integrates often; Collective code ownership.Optimization till last; No overtime.

    TestingAll code must have and pass unit tests before it

    can be released; When a bug is found tests arecreated; Acceptance tests are run often and the

    score is published.

    Copyright 1999 J. Donovan Wells all rights reserved

    Rules and Practices of Extreme

    Programming

  • 8/8/2019 Extreme 4

    3/35

    Overview

    Extreme programming (Jose)User Stories (Cesar)Business Analysis in XP (Pan)CRC Cards (Aaron)

    Extreme programmingimplementation example (Jian)

  • 8/8/2019 Extreme 4

    4/35

    Extreme Programming Overview

  • 8/8/2019 Extreme 4

    5/35

    One iteration of ExtremeProgramming

  • 8/8/2019 Extreme 4

    6/35

  • 8/8/2019 Extreme 4

    7/35

    Programmers activities and work Style

  • 8/8/2019 Extreme 4

    8/35

    User Stories

  • 8/8/2019 Extreme 4

    9/35

    A user story is a short description of whatthe business or customer wants the softwareto do, written by the customer in thecustomer terminology without techno-syntax.

    What are User Stories?

    They are in the format of about three sentences

    typically written on 4x6cards.

  • 8/8/2019 Extreme 4

    10/35

    PurposeUser Stories are used to create time estimates for the release planningmeeting.They are also used instead of a large requirements document.User Stories also drive the creation of the acceptance tests.

  • 8/8/2019 Extreme 4

    11/35

    Example" Tell me the story and write down the name of the story and a paragraph or two. "

    I'll put on my "Development " hat tomorrow and estimate this.

    Tomorrow or 'maana'?

    L icense Enforcement

    When run for the first time, JeraWorks puts up a license dialog, and will not proceed untilthe user enters either:

    a valid non-time-limited (paid) license certificate or a valid time-limited (demo) license that has not yet expired.

    A valid license is stored so the user doesn't have to re-enter it on subsequent runs.

    License info is displayed on the splash screen.

    When a demo license expires, the license dialog re-appears the next time JeraWorks is run.

  • 8/8/2019 Extreme 4

    12/35

    User Stories & t h e PlanningGame

    The basic goal is to create a release planThe basic pieces are the User Stories (cards)The players are the customers and developersThe Rules: Developers estimate how long the stories might take to

    implement Business then decides which stories are going to be

    implemented for each release and the dates for thosereleases.

  • 8/8/2019 Extreme 4

    13/35

    User Stories & t h e PlanningGame (cont.)

    Once the release plan is set, the selected stories arethen translated into individual programming

    tasks that will be implemented during the iterationto complete the stories.Each story will get a 1, 2 or 3 week estimate in

    " ideal development time " .A typical XP project of six to 12 months calls for

    between 50 and 100 user stories.

  • 8/8/2019 Extreme 4

    14/35

  • 8/8/2019 Extreme 4

    15/35

    Requirements SpecificationsVS User Stories

    level of detail User stories are short and to the point

    User stories should only provide enough detail to makea reasonably low risk estimate of how long the storywill take to implement.

    focus on user needs You should try to avoid details of specific technology,

    data base layout, and algorithms. You should try tokeep stories focused on user needs and benefits asopposed to specifying GUI layouts.

  • 8/8/2019 Extreme 4

    16/35

    Business Analysis inExtreme Programming

  • 8/8/2019 Extreme 4

    17/35

    Business Analysis inExtreme Programming

    XP " circle of life " :the customer decides which features have value,

    programmers estimate the cost of providing the features,the customer chooses the best combination of features

    based on value and cost,programmers build the features, learning how to estimate

    costs in the process,the customer learns how to define value and how to makeeffective choices.

  • 8/8/2019 Extreme 4

    18/35

    Business Analysis inExtreme Programming

    Both customers and programmers learn and prosper during thecycle of life.

    Business analysts are added when there is a wide range of customers or the customers have difficulties in makingdecisions.

    Advantages of adding analysts: Both customers and programmers learn and understand more about

    their own work Both customers and programmers learn and understand more about

    each others work Improves mutual communication, accuracy and consistency of the

    product

  • 8/8/2019 Extreme 4

    19/35

    Business Analysis inExtreme Programming

    The problems with translation: The translation interferes with learning, in both directions Customers will not respect the programmers' work, or the estimates

    Customers will lose control and decrease satisfaction

    Solutions: Business analysts should work as aides to the customer, not as an

    interface between customer and programmer

    Have regular meetings between analysts and customers The analysts should help the customers to write their stories instead of

    translating for them

  • 8/8/2019 Extreme 4

    20/35

    Business Analysis inExtreme Programming

    Help the customers decide the priorities instead of deciding for them

    Have all the customers understanding what they should know and make

    them feel as much control over the project as possible

    Help customers define the acceptance tests

  • 8/8/2019 Extreme 4

    21/35

    CRC Cards

  • 8/8/2019 Extreme 4

    22/35

    CRC CardsClass, Responsibilities, and CollaborationCards

    A simple way to specify a designFirst introduced by Kent Beck and WardCunningham at OOPSLA 89

    Not specifically part of ExtremeProgrammingbut works well with the XP paradigm

  • 8/8/2019 Extreme 4

    23/35

    What is a CRC Card?On the top of the card isthe Cl ass

    The list on the left are the Responsibi l itiesThe list on the right arethe C oll aborating classesA simplespecification/design of aclass, and what it does

  • 8/8/2019 Extreme 4

    24/35

    How are they used?

    Create cards for the obvious classesTalk through a user story, describing howthe classes interact with each other Move cards (exploring different designs)Add/Delete cards as needed

  • 8/8/2019 Extreme 4

    25/35

    Documenting Your DesignYou dont need to keep the cards, nor doyou need to produce any extra design

    documents.Well written and well tested code is thedocumentation of the design.

    Why waste time writing and updating thedocumentation? Or why live with out-of-date documentation?

  • 8/8/2019 Extreme 4

    26/35

  • 8/8/2019 Extreme 4

    27/35

    XP Implementation Example

  • 8/8/2019 Extreme 4

    28/35

    XP Programming example:

    This is a very primitive example of using XP programming methodologyto revive a project.

    Project Structure Project: Customized an existing Labor Collection System. Primary User: H uman resource Project Team: Programer1, Programer2, Senior Programmer, DBA,

    Project Manager. Project Manager owns: Project plan, project source code, project user

    requirements.

    Prog1 owns Part P1; Prog2 owns Part P2; Senior Part P3; DBA Databaseobjects;

    User contact in team: project manager.

  • 8/8/2019 Extreme 4

    29/35

    Original project structurediagram. Any communication among

    users and programmers goesthrough program manager.

    Code ownership: monopoly.

    Programmanager

    Prog1

    Pro 2Senior Pro.

    DBA

    User

    P1

    P3

    P2

    P1, P2, P3R and Data

    R

    Data

  • 8/8/2019 Extreme 4

    30/35

    Problems encountered: In the absence of any member of team, work slows down or stops. Impossible to maintain other programmers work; System testing and feedback takes long time; Programmers and users are in the dark about requirement interpretation

    and implementation; Each part of system is owned by a team member;

  • 8/8/2019 Extreme 4

    31/35

  • 8/8/2019 Extreme 4

    32/35

    Implement XP with limited available human resources torevive the project:

    First work in pair and take over the ownership of code left by the senior programmer using one computer in each others cubic.

    Started to work on each others code in pair. Promote a code standard.Promote a collective ownership of project.

    Perform unit test, integration test, and user test frequently on eachimplementation. Users are consistently available to each programmer onfeedback about changes, requirements implementations.

    User stories are used to describe requirements, and test theimplementation.

    All above had made development, modification, unit testing and

    integration testing much easier and faster.

  • 8/8/2019 Extreme 4

    33/35

    Prog1

    Pro 2

    ser

    P1, P2, P3

    and

    ata

    Pro

    ead

    New project diagram after following X P

    programming method. irect communication among

    users and programmers. Nomiddle man;

    irect access to any resources

    of project. No middle barrier; Collective ownership of

    project .

    P roject status: In production with parallel

    testing three months after thechange of project structure and

    programming method.

  • 8/8/2019 Extreme 4

    34/35

    SummaryW e h ave reviewed as we said:

    Extreme programming (Jose)User Stories (Cesar)Business Analysis in XP (Pan)CRC Cards (Aaron)

    Extreme programming implementationexample (Jian)

  • 8/8/2019 Extreme 4

    35/35

    Referenceshttp://www.extremeprogramming.org/Wiki Wiki. The Portland Pattern repositoryhttp://c2.com/cgi/wiki?UserStoryhttp://xprogramming.com/