Upload
jonathan-herring
View
69
Download
2
Embed Size (px)
Citation preview
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
22/06/2016 ©odd.enterprises 31
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