Top Banner
Obstacle Driven Development ODD Extending Agile
36

ODD: Extending Agile 1.3

Apr 11, 2017

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ODD: Extending Agile 1.3

Obstacle Driven Development

ODD Extending Agile

Page 2: ODD: Extending Agile 1.3

Obstacle Driven Development

28/06/2016 ©odd.enterprises 2

Page 3: ODD: Extending Agile 1.3

Testing First?

28/06/2016 ©odd.enterprises 3

Answering a question before its asked is like creating a solution before a test.

Page 4: ODD: Extending Agile 1.3

Background

Ideas of Obstacle Driven Development (ODD) are based on numerous development processes including:

• ISO V-model

• Test Driven Development

• ISO specifications

• Requirements analysis spiral

• Agile principles

28/06/2016 ©odd.enterprises 4

Page 5: ODD: Extending Agile 1.3

Agile Development

Agile is a development method which is efficient and adaptable.

• 12 principles guide developers to implement Agile

• Methods include SCRUM and Feature Driven Development

28/06/2016 ©odd.enterprises 5

Page 6: ODD: Extending Agile 1.3

Extending Agile

ODD is different to Agile in a number of ways.

• Full specification stage implemented

• Tests created first

• Suitable for hardware, software and embedded

28/06/2016 ©odd.enterprises 6

Page 7: ODD: Extending Agile 1.3

Agile Manifesto

Agile manifesto describes what is important for an Agile project.

• Invented by Kent Beck, James Grenning et al.

• While both are important Agile values the left over the right

• 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, James Grenning et al.

28/06/2016 ©odd.enterprises 7

Page 8: ODD: Extending Agile 1.3

ODD Principles

Principles are a reworking of the Agile manifesto.

• Over substituted to illustrate how both can support development

• Stages are adapted and models created to facilitate aims

• Focus on linking obstacles and tests to solutions and elements

• Processes and tools which encourage individuals and interactions

• Working software through comprehensive documentation

• Contract negotiation through customer collaboration

• Following a plan which responds to change

28/06/2016 ©odd.enterprises 8

Page 9: ODD: Extending Agile 1.3

Principle 1

Processes and tools which encourage individuals and interactions.

• Identifying and solving problems is encouraged

• Individuals empowered to use full ability of process and tools

• Interactions are simplified with tests helping communication

28/06/2016 ©odd.enterprises 9

Page 10: ODD: Extending Agile 1.3

Principle 2

Working software through comprehensive documentation.

• Describing products and systems helps create tests and solutions

• Working software designed according to tests

• Comprehensive documentation prevents basic errors

28/06/2016 ©odd.enterprises 10

Page 11: ODD: Extending Agile 1.3

Principle 3

Contract negotiation through customer collaboration.

• Specification helps meet customer requirements

• Behaviours easy to describe and understand

• Creating a specification is cheap, testable and adaptable

28/06/2016 ©odd.enterprises 11

Page 12: ODD: Extending Agile 1.3

Principle 4

Following a plan which responds to change.

• Stages and elements are subject to change as required

• No stages are frozen and adaptable to requirements

• Failing tests can result in modifying previous stages

28/06/2016 ©odd.enterprises 12

Page 13: ODD: Extending Agile 1.3

Obstacle Driven Development 1

Tests to verify and validate code adapted to create a new development model.

• Applications to hardware, software and embedded

• Links stages with tests for verification and validation

28/06/2016 ©odd.enterprises 13

Page 14: ODD: Extending Agile 1.3

Obstacle Driven Development 2

Obstacle Driven Development finds solutions to obstacles through four stages of development.

• Analysis

• Specification

• Solution

• Production

28/06/2016 ©odd.enterprises 14

Specification

Solution

Production

Analysis

Page 15: ODD: Extending Agile 1.3

Obstacle Driven Development 3

Obstacles and solutions linked through creating and solving tests.

• Obstacles help create tests to link the next stage

• Elements are the solutions to tests for a stage

• Elements become obstacles to link next stage of development

28/06/2016 ©odd.enterprises 15

Page 16: ODD: Extending Agile 1.3

Obstacle Driven Development 4

Verification and validation links stages with feedback and feedforward methods.

• Verification is ensuring a product is “built in the right way”

• Validation is ensuring a product is “built right”

• Creating and solving tests give verification and validation

28/06/2016 ©odd.enterprises 16

Page 17: ODD: Extending Agile 1.3

Obstacle Driven Development 5

Testing links adjacent stages through creating and solving tests.

• Analysis– Utilisation and elicitation

• Specification– Verification and validation

• Solution– Testing and design

• Production– Quality assurance and control

28/06/2016 ©odd.enterprises 17

Page 18: ODD: Extending Agile 1.3

Verification and Validation

Tests link stages of development and verify and validate.

• Stages given appropriate verification and validation

• Obstacles become tests to verify and direct solutions

28/06/2016 ©odd.enterprises 18

Page 19: ODD: Extending Agile 1.3

Success from Failure

Obstacle Driven Development is an attempt to:

Achieve success by identifying, correcting and preventing failures as early, effectively and efficiently as possible.

28/06/2016 ©odd.enterprises 19

Page 20: ODD: Extending Agile 1.3

Fail Early, Fail Often

Achieve success through identifying, correcting and preventing failure.

• Undiscovered errors cost 10x more to fix by next stage

• Errors become expensive to solve

• 2 stages missed ≈ 100x

• 3 stages missed ≈ 1000x

28/06/2016 ©odd.enterprises 20

Page 21: ODD: Extending Agile 1.3

ODD Specification Importance

Specification help improve development of a product.

• Product cost reduced with specification process

• Detailed specification prevents errors from propagating

• Creating and editing a specification is low cost

28/06/2016 ©odd.enterprises 21

Page 22: ODD: Extending Agile 1.3

SCRUM 1

SCRUM is a developmental method for Agile developments.

First defined in 1986 as:

• a flexible, holistic product development strategy where a development team works as a unit to reach a common goal

• Teams organised to achieve required result

28/06/2016 ©odd.enterprises 22

Page 23: ODD: Extending Agile 1.3

SCRUM 2

SCRUM helps plan and manage sprints which facilitate development.

• Sprints can be between a week and a month (30 days shown)

• Meetings to demonstrate progress and discuss problems

• Sprints allow consistent and sustained progress

28/06/2016 ©odd.enterprises 23

Page 24: ODD: Extending Agile 1.3

SCRUM Master

Scrum Master responsible for ensuring a team works to values and practices of Scrum.

• Process owner for team

• Ensures Scrum is understood and followed

• Removes impediments to progress

28/06/2016 ©odd.enterprises 24

Page 25: ODD: Extending Agile 1.3

Burndown Chart 1

Burndown charts help plan development through tasks completed and remaining.

• Green line is expected schedule

• Effort is measured using time

• When remaining tasks are above ideal development is behind schedule

28/06/2016 ©odd.enterprises 25

Page 26: ODD: Extending Agile 1.3

Burndown Chart 2

Simple burndown chart where a blue line is an expected burndown.

• Easy to see if a project is expected to overrun

• If actual tasks line is above ideal tasks then a project is behind schedule

28/06/2016 ©odd.enterprises 26

Page 27: ODD: Extending Agile 1.3

Sprints

Sprints ensure a smooth flow of work for duration of development.

• Development work divided into smaller sprints

• Sprint has analysis, planning, development and testing stages

• Sprints required to be integrated into projects

28/06/2016 ©odd.enterprises 27

Page 28: ODD: Extending Agile 1.3

Tests as Sprints

Creating and solving tests measure progress and ensure obstacles are solved.

• Creating a test ensures an obstacle becomes an objective

• Passing a test ensures an obstacle is solved

• Measurable progress achieved without unnecessary debugging

28/06/2016 ©odd.enterprises 28

Page 29: ODD: Extending Agile 1.3

ODD Sprints

ODD Sprints select an obstacle to create a test and solution.

• Measurable and testable progress in a sprint

• Tests completed and remaining give estimate of progress

• Tests completed are accurate measure of progress

28/06/2016 ©odd.enterprises 29

Page 30: ODD: Extending Agile 1.3

ODD Burndown Chart

ODD burndown replaces tasks to be completed with tests to be solved.

• Tests to solve is estimate for time remaining

• Difficulty of passing tests helps estimate time required

• Untested tasks may result in errors leading to overrun

28/06/2016 ©odd.enterprises 30

Page 31: ODD: Extending Agile 1.3

ODD Flow Chart

Flow chart demonstrates generic testing process for each stage.

• Flow chart adapted to give testing required

• Select Obstacle refers to element from previous stage

• Create Test and Create Solution are adapted as necessary

28/06/2016 ©odd.enterprises 31

Page 32: ODD: Extending Agile 1.3

Creating Tests 1

We create solutions similar to Behaviour Driven Development.

• Tests created by rewriting a behaviour and creating test

• Designing solutions according to tests reduces debugging

• Testing and design continue until behaviours are enabled

28/06/2016 ©odd.enterprises 32

Page 33: ODD: Extending Agile 1.3

Creating Tests 2

Test suites created through behaviours contained in a specification.

• Creating tests first ensures an objective is understood

• Design according to passing tests reduces ambiguity

• Passing a test ensures behaviour is enabled

28/06/2016 ©odd.enterprises 33

Page 34: ODD: Extending Agile 1.3

ODD Organisation

Four or more stages structure a developments organisation.

• Overview of stages and testing

• Stages observed and managed

• Colleague partnerships managed and maintained

• Stages added as necessary e.g. for hardware/embedded

28/06/2016 ©odd.enterprises 34

Page 36: ODD: Extending Agile 1.3

Legal Stuff

ReferencesTest Driven Development for Embedded C

James Grenning, 2011

Digging into “Fail fast, fail often.”

http://agile.dzone.com/articles/digging-fail-fast-fail-often

Agile vs. Waterfall: How to Approach your Web Development Project

http://www.commonplaces.com/blog/agile-vs-waterfall-how-approach-your-web-development-project

The Scrum Master Performance Review

http://illustratedagile.com/2011/12/13/the-scrum-master-performance-review-preparation/

ScrumMaster

http://www.mountaingoatsoftware.com/agile/scrum/scrummaster

DisclaimerThe ODD M-model and associated processes are provided by odd.enterprises and may be used for any purpose whatsoever.

The names odd.enterprises and associated logos should not be used in any representation, advertising, publicity or other manner whatsoever to endorse or promote any entity that adopts or uses the model and/or associated processes.

odd.enterprises does not guarantee to provide support, consulting, training or assistance of any kind with regards to the use of the model and/or processes including any updates.

You agree to indemnify odd.enterprises and its affiliates, officers, agents and employees against any claim or demand including reasonable solicitors fees, related to your use, reliance or adoption of the model and/or processes for any purpose whatsoever.

The model is provided by odd.enterprises “as is” and any express or implied warranties, included but not limited to the implied warranties of merchantability and fitness for a particular purpose are expressly disclaimed.

In no event shall odd.enterprises be liable for any damages whatsoever, including but not limited to claims associated with the loss of data or profits, which may result from any action in contract, negligence or other tortious claim that arises out of or in connection with the use or performance of the model.

28/06/2016 ©odd.enterprises 36