agile science
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