Obstacle Driven Development
ODD Comparison
©odd.enterprises
11/03/2015
Obstacle Driven Development
11/03/2015 ©odd.enterprises 2
ODD Circle Model
11/03/2015 ©odd.enterprises 3
ODD Process
11/03/2015 ©odd.enterprises 4
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
11/03/2015 ©odd.enterprises 5
What is ODD? v. What do you want ODD to be?
11/03/2015 ©odd.enterprises 6
TDD v. ODD
11/03/2015 ©odd.enterprises 7
BDD v. ODD
11/03/2015 ©odd.enterprises 8
Write
Test
Write
Code
Validate /
Refactor
Behaviour
V-model v. ODD
11/03/2015 ©odd.enterprises 9
ISO V-model v. ODD
11/03/2015 ©odd.enterprises 10
TDD V-model v. ODD
11/03/2015 ©odd.enterprises 11
Waterfall v. ODD
11/03/2015 ©odd.enterprises 12
Waterfall v. ODD (both with feedback)
11/03/2015 ©odd.enterprises 13
Requirements Spiral v. ODD Requirements
11/03/2015 ©odd.enterprises 14
Agile Framework v. ODD Framework
11/03/2015 ©odd.enterprises 15
Traditional Domains v. ODD Domains
11/03/2015 ©odd.enterprises 16
Unit Tests v. ODD Unit Tests
11/03/2015 ©odd.enterprises 17
Unit Tests v. ODD Unit Tests
11/03/2015 ©odd.enterprises 18
QASymphony v. odd.enterprises
11/03/2015 ©odd.enterprises 19
ODD Specification Importance
A specification can improve the
development process of a product.
• Product cost is reduced with an
improved specification process
• Using a full specification can
prevent errors from propagating
• Creating and editing a
specification is low cost
11/03/2015 ©odd.enterprises 20
ODD Simple
Verification and validation are
applied to link stages and provide
feedback.
• 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
11/03/2015 ©odd.enterprises 21
ODD Complex
Verification and validation are to
the left of each stage.
• Specification
– Verification and validation
• Solution
– Testing and design
• Production
– Quality assurance and control
• Analysis
– Utilisation and elicitation
11/03/2015 ©odd.enterprises 22
Testing Procedure
Unit testing is used and extended
throughout each stage for ODD
testing.
• Each stage is assigned a red light
to begin
• Amber lights are obtained when
tests are created for next stage
• Green light is for when tests are
passed and next stage linked
11/03/2015 ©odd.enterprises 23
ODD Combined
The diagram shows an ODD process
combined with an M-model and the
resulting model.
• Traffic lights between stages
indicate unit tests required
• Linking tests and elements
ensures obstacles are solved
• Each element is created through
a unit test
11/03/2015 ©odd.enterprises 24
ODD Elements
• Elements are the smallest
practical levels of a product
and are sub divided
11/03/2015 ©odd.enterprises 25
• Elements are solutions of
verification tests generated
by a previous stage
ODD Solution
Using a specification allows
creation of tests based on
described behaviours.
• Solution is used to describe
individual and integrated designs
• If a solution is designed to pass
tests then testing becomes easier
• Unit testing and test suites used
11/03/2015 ©odd.enterprises 26
Create Test
Design
Solution
Pass
Test
Behaviour
ODD Solution Flowchart
A flow chart has been designed to
explain use of an ODD Solution.
1. A behaviour is selected which
has to be covered by a solution
2. Unit test is created
3. Solution is designed
4. If fail repeat Stage 3
5. Repeat Stages 1 – 4 until all
behaviours are specified
11/03/2015 ©odd.enterprises 27
ODD Solution and Flowchart
11/03/2015 ©odd.enterprises 28
Linking Tests
Tests link behaviours with solutions
through testing and design.
• Solutions are designed to tests
created
• Each solution is a single aspect of
the product
• Unit testing is applied
• Test suite created
11/03/2015 ©odd.enterprises 29
Linking Stages, Tests and Elements
• Situation A is analysed
– Tests verify and validate Behaviour A
• Behaviour A covers Situation A
– Testing and design of Solution A
• Solution A implements Behaviour A
– Tests for quality assurance and control
of Production A
• Production A implements Solution A
– Tests for utilisation and elicitation of
product Situation A
11/03/2015 ©odd.enterprises 30
ODD Waterfall Flowchart
11/03/2015 ©odd.enterprises 31
ODD Agile Flowchart
11/03/2015 ©odd.enterprises 32
ODD Complete Flowchart
11/03/2015 ©odd.enterprises 33
ODD Timeline
• Feb 2013 – Introduced to TDD and
learned other components
• October 2013 – Invented Problem
Driven Development, ODDs initial form
• April 2014 – Revised, refined and
renamed as ODD
• August 2014 – odd.enterprises created
to build awareness for ODD
• February 2015 – Audience is created
and interested by ODD
• Ongoing – Increase interest
11/03/2015 ©odd.enterprises 34
Further Information and Questions
• Website
• Presentations
• Facebook
• Twitter
• Email
11/03/2015 ©odd.enterprises 35
Legal Stuff
References
Test 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
Disclaimer
The 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.
11/03/2015 ©odd.enterprises 36

ODD Comparison

  • 1.
    Obstacle Driven Development ODDComparison ©odd.enterprises 11/03/2015
  • 2.
  • 3.
    ODD Circle Model 11/03/2015©odd.enterprises 3
  • 4.
  • 5.
    Background Ideas of ObstacleDriven Development (ODD) are based on numerous development processes including: • ISO V-model • Test Driven Development • ISO specifications • Requirements analysis spiral • Agile principles 11/03/2015 ©odd.enterprises 5
  • 6.
    What is ODD?v. What do you want ODD to be? 11/03/2015 ©odd.enterprises 6
  • 7.
    TDD v. ODD 11/03/2015©odd.enterprises 7
  • 8.
    BDD v. ODD 11/03/2015©odd.enterprises 8 Write Test Write Code Validate / Refactor Behaviour
  • 9.
    V-model v. ODD 11/03/2015©odd.enterprises 9
  • 10.
    ISO V-model v.ODD 11/03/2015 ©odd.enterprises 10
  • 11.
    TDD V-model v.ODD 11/03/2015 ©odd.enterprises 11
  • 12.
    Waterfall v. ODD 11/03/2015©odd.enterprises 12
  • 13.
    Waterfall v. ODD(both with feedback) 11/03/2015 ©odd.enterprises 13
  • 14.
    Requirements Spiral v.ODD Requirements 11/03/2015 ©odd.enterprises 14
  • 15.
    Agile Framework v.ODD Framework 11/03/2015 ©odd.enterprises 15
  • 16.
    Traditional Domains v.ODD Domains 11/03/2015 ©odd.enterprises 16
  • 17.
    Unit Tests v.ODD Unit Tests 11/03/2015 ©odd.enterprises 17
  • 18.
    Unit Tests v.ODD Unit Tests 11/03/2015 ©odd.enterprises 18
  • 19.
  • 20.
    ODD Specification Importance Aspecification can improve the development process of a product. • Product cost is reduced with an improved specification process • Using a full specification can prevent errors from propagating • Creating and editing a specification is low cost 11/03/2015 ©odd.enterprises 20
  • 21.
    ODD Simple Verification andvalidation are applied to link stages and provide feedback. • 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 11/03/2015 ©odd.enterprises 21
  • 22.
    ODD Complex Verification andvalidation are to the left of each stage. • Specification – Verification and validation • Solution – Testing and design • Production – Quality assurance and control • Analysis – Utilisation and elicitation 11/03/2015 ©odd.enterprises 22
  • 23.
    Testing Procedure Unit testingis used and extended throughout each stage for ODD testing. • Each stage is assigned a red light to begin • Amber lights are obtained when tests are created for next stage • Green light is for when tests are passed and next stage linked 11/03/2015 ©odd.enterprises 23
  • 24.
    ODD Combined The diagramshows an ODD process combined with an M-model and the resulting model. • Traffic lights between stages indicate unit tests required • Linking tests and elements ensures obstacles are solved • Each element is created through a unit test 11/03/2015 ©odd.enterprises 24
  • 25.
    ODD Elements • Elementsare the smallest practical levels of a product and are sub divided 11/03/2015 ©odd.enterprises 25 • Elements are solutions of verification tests generated by a previous stage
  • 26.
    ODD Solution Using aspecification allows creation of tests based on described behaviours. • Solution is used to describe individual and integrated designs • If a solution is designed to pass tests then testing becomes easier • Unit testing and test suites used 11/03/2015 ©odd.enterprises 26 Create Test Design Solution Pass Test Behaviour
  • 27.
    ODD Solution Flowchart Aflow chart has been designed to explain use of an ODD Solution. 1. A behaviour is selected which has to be covered by a solution 2. Unit test is created 3. Solution is designed 4. If fail repeat Stage 3 5. Repeat Stages 1 – 4 until all behaviours are specified 11/03/2015 ©odd.enterprises 27
  • 28.
    ODD Solution andFlowchart 11/03/2015 ©odd.enterprises 28
  • 29.
    Linking Tests Tests linkbehaviours with solutions through testing and design. • Solutions are designed to tests created • Each solution is a single aspect of the product • Unit testing is applied • Test suite created 11/03/2015 ©odd.enterprises 29
  • 30.
    Linking Stages, Testsand Elements • Situation A is analysed – Tests verify and validate Behaviour A • Behaviour A covers Situation A – Testing and design of Solution A • Solution A implements Behaviour A – Tests for quality assurance and control of Production A • Production A implements Solution A – Tests for utilisation and elicitation of product Situation A 11/03/2015 ©odd.enterprises 30
  • 31.
  • 32.
    ODD Agile Flowchart 11/03/2015©odd.enterprises 32
  • 33.
  • 34.
    ODD Timeline • Feb2013 – Introduced to TDD and learned other components • October 2013 – Invented Problem Driven Development, ODDs initial form • April 2014 – Revised, refined and renamed as ODD • August 2014 – odd.enterprises created to build awareness for ODD • February 2015 – Audience is created and interested by ODD • Ongoing – Increase interest 11/03/2015 ©odd.enterprises 34
  • 35.
    Further Information andQuestions • Website • Presentations • Facebook • Twitter • Email 11/03/2015 ©odd.enterprises 35
  • 36.
    Legal Stuff References Test DrivenDevelopment 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 Disclaimer The 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. 11/03/2015 ©odd.enterprises 36