agile science

Download Agile Science

If you can't read please download the document

Upload: xavier-amatriain

Post on 16-Apr-2017

5.360 views

Category:

Technology


1 download

TRANSCRIPT

Diapositiva 1

Agile Methods in Research 2008 Telefnica Investigacin y Desarrollo, S.A. UnipersonalXavier Amatriain RubioGemma Hornos Cirera

TELEFNICA I+DDate: June 2008

01The Problem

02Agile Response

03Scrum

04 eXtreme Programming

05Agile Scientific Research

06 Conclusions

Index

Agile Methods The Problem

The Problem
Business Environment

01Fast Moving Market

2001 2002 2003 2004 2005 2006 2007

Boost Innovation

Forge the Future Workforce Culture

The Problem
Technology
Environment

01Changes

Requirements

Scope

Technology

New Paradigm

Technology Requirementsknownunknownstableunstablesimple

chaos

complexity

RequirementsCostDate

CostDateFeaturesPlan DrivenValue DrivenFIXESTIMATE

TRADITIONAL AGILE

The Problem
Summary

The market demands and expects

innovative

high-quality software

that meets its needs

and soon

01

Agile Methods The Response

Agile Response
Market Needs

EMBRACING CHANGE

TraditionalAgile Time

Cost of Change

02

Agile Response
What is software development?

Mental

Creative

Human

Is a process of knowledge transformation

Software ProblemNeed

Software Developer

TraceabilityKnowledge Transformation

02

What is Agile?

Agile processes are iterative processes that use specific project management and software engineering practices to sustain the delivery of new software functionality every one to four weeks02

Agile Manifesto

More ImportantImportantindividuals and interactionsprocesses and toolsworking softwarecomprehensive documentationcustomer collaborationcontract negotiationresponding to changefollowing a planwww.agilemanifesto.org

That is, while there is value in the items on the left, we value the items on the right more.We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:02

Agile Manifesto

More ImportantImportantindividuals and interactionsprocesses and toolsworking softwarecomprehensive documentationcustomer collaborationcontract negotiationresponding to changefollowing a planwww.agilemanifesto.org

That is, while there is value in the items on the left, we value the items on the right more.We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

AGILE:

Only codeCreating and responding to change

02

Agile Methods

Scrum

eXtreme Programming (XP)

Crystal

Feature Driven Development

Dynamic Systems Development Method

Adaptive Software Development

Lean Development

Pragmatic Programming

Inclusive RulesGenerative Rules

02

Iterative vs Waterfall

Soft-NOT-awareSoftware

RequirementsAnalysis&DesignImplementationTestingDeployment

Architecture Requirements

SoftwareSoftwarePaperware

Iteration1

Iteration2

Iteration3

Release1

Release2

Release3

Focus In Executable SoftwareYou can't know everything at the beginningYou learn as you work

WATERFALLAGILE02

Iterative vs. Waterfall

Soft-NOT-awareSoftware

RequirementsAnalysis&DesignImplementationTestingDeployment

Architecture Requirements

SoftwareSoftwarePaperware

Iteration1

Iteration2

Iteration3

Release1

Release2

Release3

Focus In Executable SoftwareYou can't know everything at the beginningYou learn as you work

WATERFALLAGILE

Adaptive
ManagementPredictive
Managementwhat method fits me best?02

Why Iterative Development?

knowledge

RiskIterations help acquiring knowledgeOf both the problem and the solution

Estimation ErrorShort term is easier to predict and estimate rather than long termTimeIterations

02

What makes a development process Agile?

Each iteration delivers working software.The phases in each iteration are
nearly concurrent.Team uses specific engineering practices to keep the code base fresh and flexible.Teams are self-managing.Lean principles and techniques eliminate waste whenever possible.

02

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

What kind of change is required to adopt Agile?

Larger teams must be broken into smaller ones.

Functional silos have to be broken down, or at least weakened.

Specialists have to pick up new skills.

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

Routine activities have to be automated.

02

Where is Agile most suitable?

Projects with some degree of uncertainty around requirements or technology.

Projects that arent too big or too small.

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

Collocated project teams and
business customers.

Projects using modern languages
and tools.

02

How widely are Agile processes used?

02

How to use

Scrum Scrum/ XP Custom/ DSDM
XP Hybrid Other Hybrid37%23%12%9%5%The State of Agile Development. Julio 2007- Version One

72%

Pilot experience in Telefnica I+D02

Agile Methods Scrum

SCRUM: Planning Iterations

Source mountaingoatsoftware.com03

SCRUM: Planning Iterations

Iteration 1

Iteration 2

Iteration 3

Product Backlog

Assessment & Planning NextUse Cases ImplementedRisk Addressed

03

SCRUM: Framework

3 ROLES

Product Owner

Team

Scrum Master

3 BACKLOGS

Product Backlog

Sprint Backlog

Impediments Backlog

4 MEETINGS

Sprint Planning

Daily Meeting

Sprint Review

Retrospective

EMPIRICAL PROCESS CONTROL

Transparency

Inspect

Adapt

03

Sprint Planning (I)Selected
Product Backlog

Sprint Planning (II)

Increment

SprintBacklog

RetrospectiveSprint Review

Estimation MeetingVision

SPRINT 0ImpedimentsBacklogDaily Meeting

Hecho?Pendiente? Trabas?

SPRINT

Product BacklogSCRUM: Workflow

03

SCRUM: Sprint Backlog

PRIORITIY

What does DONE mean?03

SCRUM: Reports

Sprint Burndown Chart

Remaining Timedays03

Agile Methods eXtreme Programming

Simple DesignTest-Driven DevelopmentPair ProgrammingRefactoring

XP. Values & Practices

COMMUNICATIONSIMPLICITYCOURAGE FEEDBACKStub out code
Watch test failRefactor

RepeatGet test to pass

04

XP. Values & Practices

COMMUNICATIONSIMPLICITYCOURAGE FEEDBACKSimple DesignTest-Driven DevelopmentPair ProgrammingRefactoring

Open WorkspaceCollective OwnershipContinuous IntegrationMetaphorSustainable PaceCoding Standard

Acceptance TestsOne TeamIterationsSmall ReleasesRelease Plan RetrospectiveUser StoriesOnsite Customer

04

XP: Planning/Feedback Loop

CodePair ProgrammingUnit TestPair NegotiationStand Up MeetingAcceptance TestIteration PlanRelease Plan04

XP: Employment Practices

The State of Agile Development. July 2007- Version One

Agile Practices04

Agile Methods Agile Scientific Research

Agile Scientific Research
The Scientific Process

05

Agile Scientific Research
The Scientific Process

What does the scientific method share with Agile Methodologies?

Iterative

Fast-changing requirements

Test-driven (Hypothesis-driven)

Pair-programming (Peer review)

Simple Design (Occams Razor)

05

Agile Scientific Research
Planning 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

05

Agile Scientific Research
Test 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 should pass

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

05

Agile Methods Conclusions

Conclusions

Scientific Research is an iterative process with fast changing requirements

It can be managed as an Agile project

Many of the Agile practices are applicable

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

To deliver high quality, running, tested stories that meet the business need in a predictable, efficient and collaborative manner on time, on budget!

06

2008 Telefnica Investigacin y Desarrollo, S.A. Unipersonal

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