ODD: Success and Failure
Post on 12-Jan-2017
Embed Size (px)
Obstacle Driven Development:Success & Failure
Obstacle Driven Development
22/06/2016 odd.enterprises 2
Ideas of Obstacle Driven Development (ODD) are based on numerous development processes including:
Test Driven Development
Requirements analysis spiral
22/06/2016 odd.enterprises 3
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
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
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 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
Verification of each stage is a feedfoward process with tests created by each stage.
22/06/2016 odd.enterprises 22
Validation is a feedback process where tests from a previous stage are passed.
22/06/2016 odd.enterprises 23
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
22/06/2016 odd.enterprises 31
ReferencesTest Driven Development for Embedded C
James Grenning, 2011
Test Driven Development
Behaviour Driven Development
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