SeminarAgileScience

download SeminarAgileScience

of 42

Transcript of SeminarAgileScience

  • 8/7/2019 SeminarAgileScience

    1/42

  • 8/7/2019 SeminarAgileScience

    2/42

    2TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    01 The Problem02 Agile Response

    03 Scrum

    04 eXtreme Programming

    05 Agile Scientific Research

    06 Conclusions

    Index

  • 8/7/2019 SeminarAgileScience

    3/42

    3TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    3

    Agile MethodsThe Problem

  • 8/7/2019 SeminarAgileScience

    4/42

  • 8/7/2019 SeminarAgileScience

    5/42

    5TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    The ProblemTechnologyEnvironment

    01

    Changes Requirements Scope

    Technology

    New Paradigm Technology

    R e q u i r e m e n t s

    known unknown

    stable

    unstable

    simple

    chaos

    complexity

    Requirements

    Cost Date

    Cost Date

    Features

    Plan DrivenPlan Driven Value DrivenValue Driven

    FIX

    ESTIMATE

    TRADITIONAL AGILE

  • 8/7/2019 SeminarAgileScience

    6/42

    6TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    The ProblemSummary

    The market demands and expects

    innovative

    high-quality software that meets its needs

    and soon

    01

  • 8/7/2019 SeminarAgileScience

    7/427

    TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    7

    Agile MethodsThe Response

  • 8/7/2019 SeminarAgileScience

    8/428

    TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile ResponseMarket Needs

    EMBRACINGEMBRACING CHANGECHANGETraditionalAgile

    Time

    C o s

    t

    o f

    C h a n g e

    02

  • 8/7/2019 SeminarAgileScience

    9/42

    9TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile ResponseWhat is software development?

    MentalCreative

    Human

    Is a process of knowledge transformation

    SoftwareProblem

    Need Software Developer

    Caso de Uso Clases An lisis Clases de Dise o C digo Componentes Ejecutables Librerias

    Traceability

    Knowledge Transformation

    02

  • 8/7/2019 SeminarAgileScience

    10/42

    10TELEFNICA I+D

    2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    What is Agile?

    Agile processes are iterativeprocesses that use specific project

    management and softwareengineering practices to sustain the

    delivery of new software

    functionality every one to fourweeks

    02

  • 8/7/2019 SeminarAgileScience

    11/42

    11TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile Manifesto

    More ImportantImportant

    individuals and interactionsprocesses and tools

    working softwarecomprehensivedocumentation

    customer collaborationcontract negotiation

    responding to changefollowing a planwww.agilemanifesto.org

    That is, while there is value in the items on the left, wevalue the items on the right more.

    We are uncovering better ways of developing software bydoing it and helping others do it. Through this work wehave come to value:

    02

  • 8/7/2019 SeminarAgileScience

    12/42

    12TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile Manifesto

    More ImportantImportantindividuals and interactionsprocesses and tools

    working softwarecomprehensivedocumentationcustomer collaborationcontract negotiation

    responding to changefollowing a plan

    www.agilemanifesto.org

    That is, while there is value in the items on the left, wevalue the items on the right more.

    We are uncovering better ways of developing software bydoing it and helping others do it. Through this work wehave come to value:

    AGILAGILEE:

    Only codeCreating and responding to change

    02

  • 8/7/2019 SeminarAgileScience

    13/42

    13TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile Methods

    Scrum

    eXtreme Programming (XP)

    Crystal

    Feature Driven DevelopmentDynamic Systems Development Method

    Adaptive Software Development

    Lean Development

    Pragmatic Programming

    Inclusive

    Rules

    GenerativeRules

    02

  • 8/7/2019 SeminarAgileScience

    14/42

    14TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Iterative vsWaterfall

    Soft-NOT-aware

    Software

    Requirements

    Analysis&Design

    Implementation

    Testing

    DeploymentArchitectureRequirements

    SoftwareSoftware

    Paperware

    Iteration1 Iteration2 Iteration3Release1Release2

    Release3

    Focus In Executable Software

    You can't knoweverything atthe beginning

    You learnas youwork

    W A T E R F A L L

    W A T E R F A L L

    A G I L E

    A G I L E

    02

  • 8/7/2019 SeminarAgileScience

    15/42

    15TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Iterative vs. Waterfall

    Soft-NOT-aware

    Software

    Requirements

    Analysis&Design

    Implementation

    Testing

    DeploymentArchitectureRequirements

    Software

    Software

    Paperware

    Iteration1 Iteration2 Iteration3Release1Release2

    Release3

    Focus In Executable Software

    You can'tknow

    everything atthe

    beginning

    You learnas youwork

    W A T E R F A L L

    W A T E R F A L L

    A G I L E

    A G I L E AdaptiveManagement

    PredictiveManagement

    what method fits mebest?

    02

  • 8/7/2019 SeminarAgileScience

    16/42

    16TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Why Iterative Development?

    knowledgeRisk

    Iterations help acquiring knowledge

    Of both theproblem and the

    solution

    Estimation Error

    Short term is easierto predict and

    estimate rather thanlong term

    Time

    Iterations

    02

  • 8/7/2019 SeminarAgileScience

    17/42

    17TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    What makes a development process Agile ?

    Each iteration delivers working software .

    The phases in each iteration arenearly concurrent .

    Team uses specific engineering practices to keep the code base fresh and flexible .

    Teams are self-managing .

    Lean principles and techniques eliminatewaste whenever possible.

    02

  • 8/7/2019 SeminarAgileScience

    18/42

    18TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Why adopt Agile processes?

    Reduced time-to-market.

    Increased innovation.

    Business alignment.

    Increased quality.

    Reduces product and process waste.

    High visibility and control over the project progress.

    Empowered, motivated and self organizing Teams.

    02

  • 8/7/2019 SeminarAgileScience

    19/42

    19TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    What kind of change is required toadopt Agile?

    Larger teams must be broken into smaller ones.Functional silos have to be broken down, or at leastweakened.

    Specialists have to pick up new skills.

    Teams must learn to self-manage, and managers mustlearn to let them.

    Routine activities have to be automated.

    02

  • 8/7/2019 SeminarAgileScience

    20/42

    20TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Where is Agile most suitable?

    Projects with some degree of uncertainty aroundrequirements or technology.

    Projects that arent too big or too small.

    Projects with buy-in from team members, businessstakeholders, and management.

    Collocated project teams andbusiness customers.

    Projects using modern languagesand tools.

    02

  • 8/7/2019 SeminarAgileScience

    21/42

    21TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    How widely are Agile processesused?

    02

  • 8/7/2019 SeminarAgileScience

    22/42

    22TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    How to use

    Scrum Scrum/ XPCustom/ DSDM

    XP Hybrid OtherHybrid

    37%

    23%

    12% 9%

    5%

    The State of Agile Development. Julio 2007-Version One

    7272%%

    Pilotexperience in

    Telefnica I+D

    02

  • 8/7/2019 SeminarAgileScience

    23/42

    23TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    23

    Agile MethodsScrum

  • 8/7/2019 SeminarAgileScience

    24/42

    24TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    SCRUM: Planning Iterations

    Source mountaingoatsoftware.com

    03

  • 8/7/2019 SeminarAgileScience

    25/42

    25TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    SCRUM: Planning Iterations

    Iteration 1 Iteration 2 Iteration 3

    Product Backlog

    Assessment &Planning NextUse Cases

    ImplementedRisk Addressed

    03

  • 8/7/2019 SeminarAgileScience

    26/42

    26TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    SCRUM: Framework

    3 ROLES3 ROLES Product Owner Team Scrum Master

    33 BACKLOGS

    Product Backlog Sprint Backlog Impediments Backlog

    44 MEETINGS Sprint Planning Daily Meeting Sprint Review Retrospective

    EMPIRICAL PROCESSCONTROL

    Transparency

    Inspect

    Adapt

    03

  • 8/7/2019 SeminarAgileScience

    27/42

    27TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    SprintSprintPlanningPlanning(I)(I)

    SelectedSelectedProductProductBacklogBacklog

    SprintSprintPlanningPlanning(II)(II)

    IncrementIncrement

    SprintSprintBacklogBacklog

    RetrospectRetrospect

    iveive

    Sprint ReviewSprint Review

    EstimationEstimationMeetingMeeting

    VisionVision

    SPRISPRINTNT 00

    ImpedimentsImpedimentsBacklogBacklog

    Daily MeetingDaily Meeting

    H e c h o ? P e n d i e n t e ? T r a b a s ?

    SPRISPRINTNT

    ProductProd uctBacklogBacklog

    SCRUM: Workflow03

  • 8/7/2019 SeminarAgileScience

    28/42

    28TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    SCRUM: Sprint Backlog

    P R I O R I T I Y

    P R I O R I T I Y

    I MPEDED

    What doesDONE mean?

    03

  • 8/7/2019 SeminarAgileScience

    29/42

    29TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    SCRUM: Reports

    Sprint Burndown ChartSprint Burndown Chart

    R e m a

    i n i n g

    T i m e

    R e m a

    i n i n g

    T i m e

    daysdays

    03

  • 8/7/2019 SeminarAgileScience

    30/42

    30TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    30

    Agile MethodseXtreme Programming

  • 8/7/2019 SeminarAgileScience

    31/42

    31TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Simple Design

    Test-DrivenDevelopment

    Pair Programming Refactoring

    XP. Values & PracticesCOMMUNICATION SIMPLICITY

    COURAGE FEEDBACK

    Stub out codeWatch test fail Refactor

    Repeat

    Get test to pass

    04

  • 8/7/2019 SeminarAgileScience

    32/42

    32TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    XP. Values & PracticesCOMMUNICATION SIMPLICITY

    COURAGE FEEDBACK

    Simple

    Design

    Test-DrivenDevelopmen

    t

    PairProgramming Refactoring

    Open Workspace

    CollectiveOwnership

    ContinuousIntegration

    Metaphor

    SustainablePace

    CodingStandard

    Acceptance Tests

    One Team

    Iterations

    Small Releases

    Release Plan

    Retrospective

    User Stories

    Onsite Customer

    04

  • 8/7/2019 SeminarAgileScience

    33/42

    33TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    XP: Planning/Feedback Loop

    Code

    Pair Programming

    Unit Test

    Pair Negotiation

    Stand Up Meeting

    Acceptance Test

    Iteration Plan

    Release Plan

    04

  • 8/7/2019 SeminarAgileScience

    34/42

    34TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    XP: Employment Practices

    The State of Agile Development. July 2007-Version One

    Agile Practices

    04

  • 8/7/2019 SeminarAgileScience

    35/42

    35TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    3535

    Agile MethodsAgile Scientific Research

    05

  • 8/7/2019 SeminarAgileScience

    36/42

    36TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    36

    Agile Scientific ResearchThe Scientific Process

    05

    05

  • 8/7/2019 SeminarAgileScience

    37/42

    37TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile Scientific ResearchThe Scientific Process

    What does the scientific method share with AgileMethodologies? Iterative

    Fast-changing requirements

    Test-driven (Hypothesis-driven)

    Pair-programming (Peer review)

    Simple Design (Occams Razor)

    37

    05

    05

  • 8/7/2019 SeminarAgileScience

    38/42

    38TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile Scientific ResearchPlanning iterations

    Iteration 0: build up general hypothesis List of stories -> things we would like to say in our final

    article Optionally, write the article itself in this first iteration

    Every 1-2 weeks come up with a list of prioritized tasks List all possible tasks (ideally 1-2 day workload)

    Measure interest of the task towards final goal

    Measure cost in terms of predicted hours of work

    List them in order of priority value (= interest cost) For ties, value more those that have less cost (Occams Razor)

    In the iteration planning re-evaluate general hypothesis

    38

    05

    05

  • 8/7/2019 SeminarAgileScience

    39/42

    39TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Agile Scientific ResearchTest Driven Development

    Plan stories and tasks by writing the tests first Use test as an executable hypothesis

    If I can prove hypothesis H then it should happen that tests t1 and t2 shouldpass

    Maintain collection of tests as a record of experiments

    Use the red-green-refactor cycle Refactor to refine your theory while still being consistent to experimental data

    39

    05

  • 8/7/2019 SeminarAgileScience

    40/42

    40TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    4040

    Agile MethodsConclusions

    06

  • 8/7/2019 SeminarAgileScience

    41/42

    41TELEFNICA I+D 2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

    Conclusions

    Scientific Research is an iterative process with fastchanging requirements It can be managed as an Agile project

    Many of the Agile practices are applicable

    Agile can help improve focus, performance, and helpresearchers accomplish goals in a timely fashion

    41

    To deliver high qualityhig h quality, runningrunning ,

    testedtested storiesstories that meet the businessmeet the businessneed in a predictablepredictable, efficientefficient andcollaborativecollaborative manner on time, on

    budget!

    06

  • 8/7/2019 SeminarAgileScience

    42/42