odd: success and failure

32
Obstacle Driven Development: Success & Failure

Upload: jonathan-herring

Post on 12-Jan-2017

69 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: ODD: Success and Failure

Obstacle Driven Development:Success & Failure

Page 2: ODD: Success and Failure

Obstacle Driven Development

22/06/2016 ©odd.enterprises 2

Page 3: ODD: Success and Failure

Development 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

• Waterfall development

• Agile principles

22/06/2016 ©odd.enterprises 3

Page 4: ODD: Success and Failure

ODD Logic

Cost of fixing undetected errors grows exponentially the longer they are undetected.

• Success easier to prove and understand than failure

• More is learnt from failure

• Testing is 2x as difficult as coding so tests are created first

22/06/2016 ©odd.enterprises 4

Page 5: ODD: Success and Failure

Success and Failure

Success is a lack of failure and intrinsically linked to learning from failure.

• Success and failure are interrelated

• Failure can lead to success

• Success can lead to failure

22/06/2016 ©odd.enterprises 5

Page 6: ODD: Success and Failure

Success from Failure 1

Obstacle Driven Development can be described as an attempt to:

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

22/06/2016 ©odd.enterprises 6

Page 7: ODD: Success and Failure

Success from Failure 2

“Failure is the opportunity to begin again more intelligently.” – Henry Ford

• More is learnt from failure than success

• Many lives saved using lessons learnt from Titanic

22/06/2016 ©odd.enterprises 7

Page 8: ODD: Success and Failure

Failure from Success

Complacency resulting from success can cause devolution to failure.

• Success will often devolve into failure through cutting corners

• Solutions become cheaper and complacency increases

• Tacoma Narrows bridge modified from a successful design

22/06/2016 ©odd.enterprises 8

Page 9: ODD: Success and Failure

Testing in History 1

Testing ideas is implicit to science and technology.

• Testing implemented on products for many years

• Ideas are assumptions without sufficient testing

• Todays technology is a result of centuries of tests

22/06/2016 ©odd.enterprises 9

Page 10: ODD: Success and Failure

Testing in History 2

Testing implemented on certain products for many years.

• Tests must replicate real world conditions

• Armour designed to be bullet proof is tested

• Non standard components required this approach

22/06/2016 ©odd.enterprises 10

Page 11: ODD: Success and Failure

Cost of Failure

Cost of failure is often greater than associated costs related to a successful development.

• Undetected errors may become very costly

• Increased use of specification can reduce costs overall

• Cost increases exponentially for each stage a bug is undetected

22/06/2016 ©odd.enterprises 11

Page 12: ODD: Success and Failure

Fail Early, Fail Often

Achieving success with ODD is 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

22/06/2016 ©odd.enterprises 12

Page 13: ODD: Success and Failure

ODD Attitude

Full implementation of Obstacle Driven Development requires there to be complete, consistent and sustained attempts to fail a product at any and all stages of the development.

While potentially more costly and time intensive to develop products, it is predicted that preventing failure to achieve success is worth more than the development costs.

22/06/2016 ©odd.enterprises 13

Page 14: ODD: Success and Failure

Motivation

Obstacle Driven Development was originally intended to address the following problems:

• How are tests created using Test Driven Development?

• How are requirements linked to behaviours?

• How can agile principles be combined safety critical?

22/06/2016 ©odd.enterprises 14

Page 15: ODD: Success and Failure

ODD Objectives

ODD is a development method which

• does not rely on knowledge or experience

• determined by clear processes and evidence

• verified and validated at all stages

22/06/2016 ©odd.enterprises 15

Page 16: ODD: Success and Failure

ODD Circle Model

Shows how stages are linked throughout development by verification and validation.

• Similar to a set of traffic lights

• Four stages are used for development

• Each stage is linked through creation and passing of tests

22/06/2016 ©odd.enterprises 16

Page 17: ODD: Success and Failure

ODD Triangle Model

Alternative form demonstrating how each stage links development.

• Each stage responsible for creation and solving of tests

• Stages link to form entire development process

• Verification and validation adapted for each stage

22/06/2016 ©odd.enterprises 17

Page 18: ODD: Success and Failure

ODD Problem Domain 1

• ODD problem domain solved through four stages

• Verification and validation using tests between stages

22/06/2016 ©odd.enterprises 18

Page 19: ODD: Success and Failure

ODD Problem Domain 2

• Testing process adapted and repeated for each stage

• Each stage separate and linked through tests

22/06/2016 ©odd.enterprises 19

Page 20: ODD: Success and Failure

ODD Model and Links

Problem and solution domain are extended to model and link each required stage.

• ODD M-model demonstrates stages and testing

• Verification and validation appropriate to each stage

• Extends V-model development

22/06/2016 ©odd.enterprises 20

Page 21: ODD: Success and Failure

Verification and Validation

Testing processes for verification and validation link stages of development.

• Stages given appropriate verification and validation

• Each stage verifies next through creation of tests

• Previous stage provides validation by solving tests

22/06/2016 ©odd.enterprises 21

Page 22: ODD: Success and Failure

Feedforward Processes

Verification of each stage is a feedfoward process with tests created by each stage.

• Verification

• Testing

• Quality assurance

• Utilisation

22/06/2016 ©odd.enterprises 22

Page 23: ODD: Success and Failure

Feedback Processes

Validation is a feedback process where tests from a previous stage are passed.

• Validation

• Design

• Quality control

• Elicitation

22/06/2016 ©odd.enterprises 23

Page 24: ODD: Success and Failure

Information Flow

Flow of information can proceed in several directions using unit tests.

• Integration, decomposition, feedback and feedforward

• Information flows through each stage with integration or decomposition

• Stages linked with tests provide feedback and feedforward

22/06/2016 ©odd.enterprises 24

Page 25: ODD: Success and Failure

Verification and Validation M-model

22/06/2016 ©odd.enterprises 25

Page 26: ODD: Success and Failure

ODD OODA M-model

M-model combined with OODA describes development method with single diagram.

• Stages implemented using traditional engineering

• Testing processes between stages

• Each stage has a checkpoint

22/06/2016 ©odd.enterprises 26

Page 27: ODD: Success and Failure

ODD is 3D

22/06/2016 ©odd.enterprises 27

Page 28: ODD: Success and Failure

ODD without Tests

22/06/2016 ©odd.enterprises 28

Page 29: ODD: Success and Failure

ODD with Tests

22/06/2016 ©odd.enterprises 29

Page 30: ODD: Success and Failure

ODD with Passed Tests

22/06/2016 ©odd.enterprises 30

Page 31: ODD: Success and Failure

Further Information and Questions

• Website

• Presentations

• Facebook

• Twitter

• Email

22/06/2016 ©odd.enterprises 31

Page 32: ODD: Success and Failure

Legal Stuff

ReferencesTest Driven Development for Embedded C

James Grenning, 2011

Test Driven Development

http://en.wikipedia.org/wiki/Test-driven development

Behaviour Driven Development

http://en.wikipedia.org/wiki/Behavior-driven development

Unit Testing

http://en.wikipedia.org/wiki/Unit testing

Contact us for more information on sources and references.

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.

22/06/2016 ©odd.enterprises 32