ODD: Success and Failure

Download ODD: Success and Failure

Post on 12-Jan-2017

53 views

Category:

Engineering

2 download

Embed Size (px)

TRANSCRIPT

  • Obstacle Driven Development:Success & Failure

  • Obstacle Driven Development

    22/06/2016 odd.enterprises 2

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • ODD Problem Domain 1

    ODD problem domain solved through four stages

    Verification and validation using tests between stages

    22/06/2016 odd.enterprises 18

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • Verification and Validation M-model

    22/06/2016 odd.enterprises 25

  • 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

  • ODD is 3D

    22/06/2016 odd.enterprises 27

  • ODD without Tests

    22/06/2016 odd.enterprises 28

  • ODD with Tests

    22/06/2016 odd.enterprises 29

  • ODD with Passed Tests

    22/06/2016 odd.enterprises 30

  • Further Information and Questions

    Website

    Presentations

    Facebook

    Twitter

    Email

    22/06/2016 odd.enterprises 31

    http://odd.enterprises/http://www.odd.enterprises/odd-presentations.htmlhttps://www.facebook.com/odd.enterpriseshttps://twitter.com/odd_enterprisesmailto:j.herring@odd.enterprises

  • 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

    http://en.wikipedia.org/wiki/Test-driven_developmenthttp://en.wikipedia.org/wiki/Behavior-driven_developmenthttp://en.wikipedia.org/wiki/Unit_testing