SlideShare a Scribd company logo
Obstacle Driven Development +
Project Control 0.9
Testing First?
08/11/2016 ©odd.enterprises 2
Answering a
question before
its asked is like
creating a
solution before
a test.
ODD Motivation
Life will test every
aspect of a products
development stages,
levels and elements.
So,
• Why do engineering
differently?
08/11/2016 ©odd.enterprises 3
Background
Ideas of Obstacle Driven Development (ODD) are based on
numerous development processes including:
08/11/2016 ©odd.enterprises 4
• Control Theory
• Scientific Method
• ISO V-model
• Test Driven Development
• ISO specifications
• Requirements analysis spiral
• Agile principles
• SOLID principles
Control Theory
08/11/2016 ©odd.enterprises 5
Control theory applies
feedback and
feedforwards control.
• Error between
reference and plant
output compared
• Extensive
engineering,
mathematic and
scientific uses
Project Control
Control theory applied to
creating a solution gives a
model for control of
projects.
• Negative feedback from
testing solution
• Feedforward control is
creating tests
• Feedback control is
solving tests
08/11/2016 ©odd.enterprises 6
Traditional Engineering without Tests
Traditional engineering
relies heavily on
assumptions of
engineers.
• Good engineers
make good
assumptions
• Good and/or bad
engineers make bad
assumptions
08/11/2016 ©odd.enterprises 7
Traditional Engineering + Testing
Testing allows us to
identify and correct
errors.
• Creating tests after a
solution means we
design tests according
to a solution
• More tests mean we
can identify more errors
08/11/2016 ©odd.enterprises 8
Assumptions and Debugging 1
If we don’t have efficient
testing then debugging is
inefficient.
• Assumptions can
easily lead to bugs
• Without thorough
testing we can’t
effectively find bugs
• Automated testing
improves efficiency
08/11/2016 ©odd.enterprises 9
Assumptions and Debugging 2
Without thorough
testing we may have
solutions full of bugs.
• May create
exponentially more
bugs
• Bugs exponentially
more difficult and
expensive to fix
• What is “Works as
Expected”?
08/11/2016 ©odd.enterprises 10
ODD Testing
08/11/2016 ©odd.enterprises 11
Creating tests first
allows design of
solution with closed
loop control.
• Feedforwards testing
allows creation of a
negative feedback
loop
• Feedback used to
determine project
progress and control
development
ODD Proof 1
𝑂 𝑑 , 𝐸 𝑑 𝑎𝑛𝑑 𝑌 𝑑
are Obstacle (input),
Error and Output.
• 𝑑 is 2*n bits for
status of tests and
solutions
• Use bitwise
addition and
multiplication
08/11/2016 ©odd.enterprises 12
ODD Proof 2
𝑂 𝑑 , 𝐸 𝑑 𝑎𝑛𝑑 𝑌 𝑑
and outputs are
replaced by 2 bits.
• 11 is reference for
test and solution
to be created
• First loop round
gives 𝐸 𝑑 =11
and test created
08/11/2016 ©odd.enterprises 13
ODD Proof 3
Complete one loop
to create a test
before solution.
• 𝐸 𝑑 = 01 as test
has been created
without solution
• We develop a
solution for the
test
08/11/2016 ©odd.enterprises 14
ODD Proof 4
08/11/2016 ©odd.enterprises 15
Complete two loops
to create a test and
solution.
• 𝐸 𝑑 = 00 as test
has been created
with solution
• Continue until
𝑛 obstacles are
tested and solved
Project Control
Control theory applied to
give feedforward and
feedback control.
• Feedforwards control is
creating a test
• Feedback control is
solving a test
• Multiple feedback
loops to Analysis
08/11/2016 ©odd.enterprises 16
Obstacle Driven Development
Obstacle Driven
Development allows
testing of all stages.
• Fully testable stages,
abstraction levels and
elements
• Identify, correct and
prevent failure at
earliest opportunity
08/11/2016 ©odd.enterprises 17
Why Use Obstacle Driven Development?
Traditional engineering tests solutions
once they are created.
• Solution tested against often
incorrect requirements
• Requirements fixed and not testable
• Errors detected very late
• Errors propagating through stages
cost 10x to fix per stage
08/11/2016 ©odd.enterprises 18
Scientific Method
Scientific method says we must
create tests before solutions.
• Therefore creating solutions
before tests is unscientific
• Traditional engineering creates
solutions before tests, so is
unscientific
• Is a scientific method to
engineering required?
08/11/2016 ©odd.enterprises 19
Scientific & Engineering Method
Comparing scientific and
engineering methods show
differences.
• Depends on experience
and talent of engineers
• No way of testing
requirements
• Customers discover their
requirements differ from
products
08/11/2016 ©odd.enterprises 20
ODD Scientific Method
Scientific method is
created through
adapting model.
• More testing and
feedback than
traditional scientific
method
• Allows repetition to
refine theories
• Learning from failure
08/11/2016 ©odd.enterprises 21
ODD Engineering Method
Engineering version of a
scientific model.
• Stages, checkpoints
and control of ODD
shown
• Verification provided
by creating tests
• Validation provided by
solving tests
08/11/2016 ©odd.enterprises 22
ODD Scientific & Engineering Methods
08/11/2016 ©odd.enterprises 23
Comparing methods we see structure
is identical and wording equivalent.
• Conclusion is the method is
scientific
• Each method repeatable to
continue refinement
• We can combine the methods for
R&D
Extreme Programming
Original inspiration for ODD came
from Extreme Programming (XP).
• XP is a software development
methodology
• Improves software quality and
responsiveness to requirements
• Unit testing of all code
• Avoids programming features
until they are needed
08/11/2016 ©odd.enterprises 24
Extreme Engineering
From Extreme
Programming we built a
method for engineering.
• XP ideas applied to
stages of software,
hardware and
embedded
• XP adapted to
engineering gives
Extreme Engineering
08/11/2016 ©odd.enterprises 25
Overkill? 1
Testing every stage, level
and element of a
development is difficult
and expensive.
• Overkill for simple
problems
• More efficient the
longer and more
complex development
08/11/2016 ©odd.enterprises 26
Overkill? 2
There are 2 main uses
for the method.
• Ideal for complex
projects
• Ideal for long lasting
projects
• Best for complex and
long lasting projects
08/11/2016 ©odd.enterprises 27
ODD Principles
Principles inspired by Agile
manifesto.
• Over substituted so both can
support development
• Stages adapted and models
created help facilitate aims
• Focus on linking obstacles to
solutions
• Processes and tools which
encourage individuals and
interactions
• Working software through
comprehensive documentation
• Contract negotiation through
customer collaboration
• Following a plan which responds
to change
08/11/2016 ©odd.enterprises 28
Principle 1
Processes and tools which
encourage individuals and
interactions.
• Identification and solving of
problems encouraged
• Individuals empowered to use
full ability of process and tools
• Interactions simplified with tests
helping communication
08/11/2016 ©odd.enterprises 29
Principle 2
Working software through
comprehensive documentation.
• Describing products and systems
helps create tests and solutions
• Working software designed
according to tests
• Comprehensive documentation
prevents basic errors
08/11/2016 ©odd.enterprises 30
Principle 3
Contract negotiation through
customer collaboration.
• Specification helps meet
customer requirements
• Behaviours easy to describe and
understand
• Creating a specification is cheap,
testable and adaptable
08/11/2016 ©odd.enterprises 31
Principle 4
Following a plan which responds to
change.
• Stages and elements subject to
change as required
• No stages frozen and adapted to
requirements
• Failing tests may result in
modifying previous stages
08/11/2016 ©odd.enterprises 32
Test Driven Development 1
Test Driven Development is
software development where tests
are written before code.
• Creating tests first ensures code
tested and testable
• Unit tests ran through test suites
for automated testing
• Improved code through early
error detection
08/11/2016 ©odd.enterprises 33
Write
Test
Write
Code
Refactor
Test Driven Development 2
Tests are written before code.
1. Test is written and ran to
observe a fail
2. Simplest code is written to pass
the test
3. Code is refactored according to
SOLID principles
4. Repeat until coding complete
08/11/2016 ©odd.enterprises 34
Write
Test
Write
Code
Refactor
Test Driven Development 3
Development of ODD began with a
question when using TDD:
• Where do tests come from?
08/11/2016 ©odd.enterprises 35
Write
Test
Write
Code
Refactor
Behaviour Driven Development
Described as “Test Driven
Development done right”.
• Behaviours implemented for
testing and design
• Additional stage of thinking
about tests
• Increased efficiency over TDD
08/11/2016 ©odd.enterprises 36
Write
Test
Write
Code
Refactor
Think
ODD Behaviour Driven Development
Adapting sequence gives one similar
to traffic lights.
1. Red light for behaviour to be
coded
2. Amber light when tests are
created
3. Green light when code written
and tested
4. Blue light when tests are passed
5. Repeat until specification is coded
08/11/2016 ©odd.enterprises 37
ODD Process
Process becomes generic to create
a new development model.
• Applications to hardware,
software and embedded
• Links obstacles with tests for
verification and validation
• Refactoring included in Validate
Solution
08/11/2016 ©odd.enterprises 38
Obstacle Driven Development 1
Process adapted and repeated
between four stages in sequence.
• Analysis
• Specification
• Solution
• Production
08/11/2016 ©odd.enterprises 39
Specification
Solution
Production
Analysis
Obstacle Driven Development 2
Verification and validation link
stages and provide feedback.
• Verification ensures a product is
built in the right way
• Validation ensures a product is
built right
• Creating and solving tests give
verification and validation
08/11/2016 ©odd.enterprises 40
ODD Process
08/11/2016 ©odd.enterprises 41
ODD for Embedded
Obstacle Driven Development
designed for software, hardware
and embedded.
• Stages defined to help create
physical products
• Benefits of software, hardware
and embedded principles
• Suitable for safety critical
applications
08/11/2016 ©odd.enterprises 42
V-model
V-model engineering for
requirements, designs, testing of
problem solutions.
• V-models give framework of
Obstacle Driven Development
• Development for safety critical
design processes
• Described by international
standards
08/11/2016 ©odd.enterprises 43
International Organisation for Standardisation
Standards and processes provided
for requirements, specifications,
guidelines or characteristics.
• Ensures products, services and
components are fit for purpose
• Sets standards required for state
of the art and markets
• ODD designed to be compatible
with international standards
08/11/2016 ©odd.enterprises 44
ISO V-model
V-model to apply ISO standards for
software development.
• Model links various levels of
development
• Testing for levels from software
up to vehicle tests
• Testing for feedback and ensures
each level is verified
08/11/2016 ©odd.enterprises 45
Test Driven Development V-model 1
V-models are combined with Test
Driven Development.
• Help create tests and integrate
systems
• System created according to
designs through tests
• Tests help integrate low level
code to high level
08/11/2016 ©odd.enterprises 46
Test Driven Development V-model 2
We extend and invert V-models so
development stages are separated.
• Models consist of V-models with
TDD and unit testing
• Inverted V-models allow for
separation of stages
• Inverted V-models link with V-
models creating further models
08/11/2016 ©odd.enterprises 47
Inverted V-models
V-models inverted to link stages
and help decomposition.
• V-models help integrate a
solution
• Inverted V-models to decompose
a creation
• Testing is adapted for
decomposition of elements
08/11/2016 ©odd.enterprises 48
Extending a Specification 1
• Traditional Problem
and Solution Space
– Specification a small
interface
• Extended
Specification
– Specification a
separate stage
49©odd.enterprises08/11/2016
Extending a Specification 2
Extending Specifications for
creating new models combined
with TDD.
• V-model compatible with Safety
Integrity Levels
• TDD processes for V&V of
Specification
• Specification to create tests
08/11/2016 ©odd.enterprises 50
ODD Verification and Validation 1
Provides full verification
and validation through
creating and solving tests.
• Verification (“is it built
right”) provided by
creating tests
• Validation (“built
right”) provided by
solving tests
08/11/2016 ©odd.enterprises 51
ODD Verification and Validation 2
Verification and validation links
stages.
• Specification
– Verification and validation
• Solution
– Testing and design
• Production
– Quality assurance and
control
• Analysis
– Utilisation and elicitation
08/11/2016 ©odd.enterprises 52
Feedforward Processes
Verification is a
feedfoward process
where tests are
created for next stage.
• Verification
• Testing
• Quality assurance
• Utilisation
08/11/2016 ©odd.enterprises 53
Feedback Processes
Validation is a
feedback process
where tests are solved.
• Validation
• Design
• Quality control
• Elicitation
08/11/2016 ©odd.enterprises 54
M-Model Comparison
Model links four separate stages of
problem domain with unit testing.
• Verification and validation
appropriate to each stage
• Extends traditional problem and
solution domain
• Unit testing processes links
stages
08/11/2016 ©odd.enterprises 55
X-model Form
Alternative form is X-model and we
concurrently integrate stages.
• Operates same as M-model
except all stages are integrated
• Structure is 4 V-models around a
central axis
• For developments where time is
shorter
08/11/2016 ©odd.enterprises 56
Abstraction Levels
Element describes stage and level
from material to product and
analysis to production.
A Product consists of:
• Systems; which consist of
• Subsystems; which consist of
• Components; which consist of
• Materials
08/11/2016 ©odd.enterprises 57
Abstraction Levels
Abstraction levels allow divisions to
a stage to organise testing,
integration and decomposition.
• Abstraction levels from material
to product
• Extendable to company and
customer levels
• Integration and decomposition of
stages through SRP
08/11/2016 ©odd.enterprises 58
System Divisions
We divide stages into abstraction
levels and system divisions.
• Linked to equivalent obstacle in
previous stage
• Linked to equivalent solution in
next stage
• Each single block is an element
08/11/2016 ©odd.enterprises 59
Linking Tests 1
Tests link
behaviours with
solutions through
testing and design.
• Solutions designed
according to tests from
behaviours
• Each solution is a single
element of a product
• Unit testing is applied
• Test suite created and
ran when changes
occur
08/11/2016 ©odd.enterprises 60
Linking Tests 2
Testing and design
of solutions from
behaviours of
specification.
• Solution implements
1 or more behaviours
• Tests suite ran for any
changes or additions
• Created as with Test
Driven Development
08/11/2016 ©odd.enterprises 61
ODD Test Suites
Test suites maintain
solutions for
software and
identify errors.
• Test suites contain
individual and combined
unit tests
• Test suites are intended to
be implemented between
all stages
• TDD process applied
throughout development
to create ODD
08/11/2016 ©odd.enterprises 62
Linking Solution to Production 1
Solution produced
with consistent
quality often for
large quantities.
• Solution assures and
controls quality of
related production
• Tests are created for
quality assurance
• Tests passed give
measure for quality
control
08/11/2016 ©odd.enterprises 63
Linking Solution to Production 2
Elements of solution
create quality
assurance tests for
production.
• Basic assurance and
control from failure
rates
• Control ensures failure
rate is acceptable
• Assurance will
determine an
acceptable failure rate
08/11/2016 ©odd.enterprises 64
Linking Production to Analysis 1
Linking Production to
Analysis ensures
product features
utilised and elicited.
• Features of product
utilised by customers
• Elicitation after
utilisation of feature to
find requirements
• Verifies current
solutions and identifies
new obstacles
08/11/2016 ©odd.enterprises 65
Linking Production to Analysis 2
Production & Analysis
linked with features a
customer sees in a
product.
• New feature may
cover requirement
but create another
• Elements and level
investigated
independently
08/11/2016 ©odd.enterprises 66
Requirements Analysis 1
Requirements analysis is an
essential stage where we determine
what a product should do.
• Requirements analysis is
performed in numerous ways:
– Spiral model
– Use case analysis
– Safety integrity Levels (SILs)
• Requirements analysis spiral is
adapted and integrated
08/11/2016 ©odd.enterprises 67
Requirements Analysis 2
08/11/2016 ©odd.enterprises 68
Requirements Analysis Adaptions 1
Spiral model is superimposed onto
an M-model and adapted.
• Agreed Behaviours substitutes
Agreed Requirements
• Quality Assurance equivalent to
Testing
• Negotiation similar to Verification
– Continues on next slide
08/11/2016 ©odd.enterprises 69
Requirements Analysis Adaptions 2
Spiral model is superimposed
ontoan M-model and adapted.
• Verification substituted for
Negotiation
• Validation substitutes Evaluation
• Testing substitutes Quality
Assurance
08/11/2016 ©odd.enterprises 70
ODD Analysis
Requirements analysis combines with
Specification in an inverted V-model.
• Tree diagram approach creates
situations from events
• Safety Integrity Levels measure and
process situations into hazards
• Checkpoints for Product,
Consolidated Requirements and
Documents
08/11/2016 ©odd.enterprises 71
ODD Solution
Solution created from specification
through behaviour tests
• Red light for behaviour contained
in specification
• Amber light when test for
behaviour is created
• Green light when solution
designed to pass test
08/11/2016 ©odd.enterprises 72
Integration of Solution
Solutions integrated from materials
into components, components into
subsystems etc.
• Solutions created with bottom-
up process
• Each level is integrated into a
higher level
• Higher level tests provide
integration testing
08/11/2016 ©odd.enterprises 73
Solution Control
Using a Specification
we create closed loop
control to develop
solution.
• Creating tests from
Specification is
feedforwards
control
• Solving tests allows
a feedback loop
with control of
creating solution
08/11/2016 ©odd.enterprises 74
Testing Spiral for Solution Stage
Solution stage tests Materials first
and integrates until Product.
• Continue in circle until all tests
passed for abstraction level
• Once tested we spiral outwards
to next abstraction level
• Once completed we have a fully
tested Solution to a Specification
08/11/2016 ©odd.enterprises 75
ODD Production
Production created from solution
through quality assurance and
control.
• Red light for solution with no
quality assurance and control
• Amber light when test to assure
quality is created
• Green light when quality control
passed
08/11/2016 ©odd.enterprises 76
Decomposition of Production
Production decomposed from high
level to assure efficiency and high
quality levels.
• Production created with a top-
down process
• Each level decomposed for
efficiency of lower levels
• Efficiency through testing of
production quality
08/11/2016 ©odd.enterprises 77
Production Control
Using a Solution we
create closed loop
control to develop
Production.
• Creating tests
from Solution is
feedforwards
control
• Solving tests
allows a feedback
loop with control
of Production
08/11/2016 ©odd.enterprises 78
Testing Spiral for Production Stage
Production stage tests Product first
and decomposes until Materials.
• Continue in circle until all tests
are passed for abstraction level
• Once tested we spiral outwards
to next abstraction level
• Effective distribution and control
of Production from high level
08/11/2016 ©odd.enterprises 79
ODD Analysis
Analysis performed on production
features through tests.
• Red light for no utilisation or
elicitation of feature
• Amber light when customer
utilisation test created
• Green light when customer
elicitation test solved
08/11/2016 ©odd.enterprises 80
Integration of Analysis
Analysis integrated from events in a
situation tree to give complex
situations.
• Situations identified from
bottom-up
• Situations analysed to identify
hazards
• Hazards processed into Safety
Integrity Levels (SILs)
• Requirements found from SILs
08/11/2016 ©odd.enterprises 81
Analysis Control
With Production we
create closed loop
control to develop
Analysis.
• Creating tests
from Production is
feedforwards
control
• Solving tests
allows a feedback
loop with control
of Analysis
08/11/2016 ©odd.enterprises 82
Testing Spiral for Analysis Stage
Analysis stage elicits information on
Materials first and integrates to
Product.
• Continue in a circle until all tests
solved for abstraction level
• Once tested we spiral outwards
to next abstraction level
• Efficient elicitation of customers
to all elements and levels
08/11/2016 ©odd.enterprises 83
SIL Tree Diagram 1
SIL tree diagram creates situations
from events and processes
requirements.
• Severity and Controllability
added to each event
• Requirements found from SIL
ratings using branches
• Allows unit testing approach for
situations and requirements
08/11/2016 ©odd.enterprises 84
SIL Tree Diagram 2
Adding SILs to a Probability Tree
allows requirement identification
and processing.
• Branching tree with SIL ratings
for events
• SILs found by multiplying along
branches of SIL tree
• Each situation given SIL rating to
determine requirements
08/11/2016 ©odd.enterprises 85
SIL Tree Diagram 3
Processing SIL tree diagram is very
similar to a probability tree.
• SIL ratings processed by
multiplying probability, severity
and controllability
• SIL rating multiplied along
branches for each situation
• SIL result between 1 and 4, with
4 being best
08/11/2016 ©odd.enterprises 86
Component 1
Pass
P(P1)*S(P1)*C(P1)
Component 2
Pass
P(P2)*S(P2)*C(P2)
Component 2
Fail
P(F2)*S(F2)*C(F2)
Component 1
Fail
P(F1)*S(F1)*C(F1)
Component 2
Pass
P(P2)*S(P2)*C(P2)
Component 2
Fail
P(F2)*S(F2)*C(F2)
SIL Tree Diagram 4
Using a SIL tree diagram gives
numerous advantages.
• Branches ensure all expected
situations identified
• Extendible and adaptable to new
situations by adding events
• Each branch is a situation
• New situations found from
adding new events
08/11/2016 ©odd.enterprises 87
Component 1
Pass
P(P1)*S(P1)*C(P1)
Component 2
Pass
P(P2)*S(P2)*C(P2)
Component 2
Fail
P(F2)*S(F2)*C(F2)
Component 1
Fail
P(F1)*S(F1)*C(F1)
Component 2
Pass
P(P2)*S(P2)*C(P2)
Component 2
Fail
P(F2)*S(F2)*C(F2)
ODD Specification
Specification created from analysis
through requirement tests.
• Red light for a requirement
• Amber light when verification
test is created
• Green light when test passed and
behaviour validated
08/11/2016 ©odd.enterprises 88
Decomposition of Specification
Specification decomposed from
high level behaviours to ensure high
level performance.
• Specifications created with top-
down process
• Level decomposed until all levels
specified
• Enables integration testing of a
solution
08/11/2016 ©odd.enterprises 89
Linking Behaviours to Situations 1
Situations links to
Specification by
creating and solving
tests.
• Situations described
by a decision tree
• Diagram capable of
failure mode effects
and analysis
• Linked to a behaviour
which covers the
situation
08/11/2016 ©odd.enterprises 90
Linking Behaviours to Situations 2
Branches of SIL tree
are situations to be
covered by
Specification.
• Each situation is tested
to ensure coverage by
specification
• Ensures situations are
covered before
creation of solution
• All expected situations
should have an
associated behaviour
08/11/2016 ©odd.enterprises 91
Testing Spiral for Specification Stage
Specification stage tests Product
first and decomposes elements
until Materials achieved.
• Continue in a circle until all tests
are passed for abstraction level
• Once tested we spiral outwards
to the next abstraction level
• Decomposition of Specification
from ensures high level features
08/11/2016 ©odd.enterprises 92
Obstacle Driven Evolution 1
Spiral model adaptable to model an
evolutionary process.
• Dashed arrows represent failure
• Dashed arrows extending
outwards for too ambitious
• Dashed arrows contracting for
too complacent
• Failure in quadrant indicate
invention has failed stage
08/11/2016 ©odd.enterprises 93
Note: Electric
car invented in
1835
Obstacle Driven Evolution 2
Using the model we can plot why a
product or invention failed.
• Was analysis insufficient?
• Was Specification too ambitious
or complacent?
• Was Solution created too
expensively or too poorly?
• Was Production too high quality
or too little?
08/11/2016 ©odd.enterprises 94
Note: Electric
car invented in
1835
ODD 3D Pyramid Model
08/11/2016 ©odd.enterprises 95
Concurrent development of
multiple systems requires we
layer M-models of the systems.
• Pyramid shaped for
increasing number of
elements at lower levels
• Observable development
progress measurement
ODD Continuous
Process
Here we show 2 models which
have been linked into a cyclic
model.
• Process repeats for continuous
improvement
• Further stages may be added
• Proceed clockwise through
each stage
08/11/2016 ©odd.enterprises 96
ODD Systems Engineering 1
Further stages added as necessary
to complete hardware system
development linked through tests.
• Safety Integrity Levels and
Situation Analysis provide
information on hazards
• Supply and Assemble give
hardware capabilities
08/11/2016 ©odd.enterprises 97
ODD Systems Engineering 2
We can divide SIL tress into
separate stages for additional error
checks.
• Situation Analysis identifies
situations
• Safety Integrity Levels process
situations into hazards
• Requirements analysis becomes
similar to Specification
08/11/2016 ©odd.enterprises 98
ODD Systems Engineering 3
For hardware we need to ensure
that physical elements are supplied
and assembled correctly.
• Supply stage handles supply of
physical hardware
• Assemble stage handles
assembly of physical hardware
• Completed through creating and
solving tests
08/11/2016 ©odd.enterprises 99
ODD Systems Engineering 4
Steps to creating and maintaining a
product are converted into an ODD
stage with some thought.
• Stages added should ideally
come in pairs
• Pairs of stages allow integration
and decomposition
• We can add, combine or reorder
the stages as required
08/11/2016 ©odd.enterprises 100
Obstacle Driven Evolution 2
Further divisions are added to the
ODE model so we can demonstrate
success or failure of that sector.
• Branches may be added for other
vehicle types e.g. trucks, buses
• Ability to investigate past failures
and plan future success
• Extendable to other scientific
disciplines
08/11/2016 ©odd.enterprises 101
ODD OODA
Col. John Boyd’s OODA
method has been
combined with ODD to
produce new models.
• OODA = Observe,
Orient, Decide, Act
• Used for military
strategy for decades
• Similarity to OODA
effectively proves ODD
08/11/2016 ©odd.enterprises 102
ODD OODA
OODA methods have been
used for many purposes.
• Originally for developing
military strategy
• Adapted to Artificial
Intelligence, business
strategy and legislation
• Adapted to be
compatible with ODD
08/11/2016 ©odd.enterprises 103
ODDSAP OODA
Further stages are added to
provide steps for hardware
development.
• Feedback from all stages
to Analysis
• Decision included to
determine progression
• Outside Information and
Unfolding Circumstances
are also analysed
08/11/2016 ©odd.enterprises 104
Generic Model OBSA
Comparing ODD with
OODA resulted in a
generic method to
describe many things.
• OBSA – Obstacle,
Behaviour, Solution,
Action
08/11/2016 ©odd.enterprises 105
Other Uses
Generic model may be
used to create further
models.
• Shown is a model
for healthcare
adapted from
ODDSAP OODA
• Other methods for
legislation & AI
• Further methods to
be identified
08/11/2016 ©odd.enterprises 106
ODD Materials
ODD is explained in further
presentations.
• Obstacle Driven
Development
• ODD: Requirements Analysis
• ODD: Extending a
Specification
• ODD: Extending TDD
• ODD: Extending V-models
• ODD Is Not Agile or Waterfall
ODD Is Not
Agile or
Waterfall
Obstacle Driven
Development
ODD:
Requirements
Analysis
ODD: Extending
a Specification
ODD: Extending
V-models
ODD:
Extending TDD
08/11/2016 ©odd.enterprises 107
Further Information and Questions
Website
Presentations
Facebook
Twitter
Email
08/11/2016 ©odd.enterprises 108
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.
08/11/2016 ©odd.enterprises 109

More Related Content

What's hot

Agile performance testing
Agile performance testingAgile performance testing
Agile performance testingAndriy Melnyk
 
DevOps 2017 Conf: evolving from automated to continuous
DevOps 2017 Conf: evolving from automated to continuousDevOps 2017 Conf: evolving from automated to continuous
DevOps 2017 Conf: evolving from automated to continuous
Arthur Hicken
 
Top Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingTop Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingAndriy Melnyk
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
jaredrrichardson
 
QA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQQA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQ
Kari Kakkonen
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
TechWell
 
CESAR.thon: a Testing Marathon Framework
CESAR.thon: a Testing Marathon FrameworkCESAR.thon: a Testing Marathon Framework
CESAR.thon: a Testing Marathon Framework
Rodrigo Cursino
 
Embedded summer camps 2017
Embedded summer camps 2017Embedded summer camps 2017
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
Agile Aspects of Performance Testing
Agile Aspects of Performance TestingAgile Aspects of Performance Testing
Agile Aspects of Performance Testing
Alexander Podelko
 
ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...
ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...
ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...
QADay
 
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
TEST Huddle
 
Examples how to move towards Zero Defects
Examples how to move towards Zero DefectsExamples how to move towards Zero Defects
Examples how to move towards Zero Defects
SQALab
 
Niels Malotaux - Help We Have a QA Problem!
Niels Malotaux -  Help We Have a QA Problem!Niels Malotaux -  Help We Have a QA Problem!
Niels Malotaux - Help We Have a QA Problem!
TEST Huddle
 
ODD: Extending a Specification 1.2
ODD: Extending a Specification 1.2ODD: Extending a Specification 1.2
ODD: Extending a Specification 1.2
Jonathan Herring
 
Agile Test Automation
Agile Test AutomationAgile Test Automation
Agile Test Automation
Werner Keil
 
Software testing methodologies to watch out in 2020
Software testing methodologies to watch out in 2020Software testing methodologies to watch out in 2020
Software testing methodologies to watch out in 2020
Concetto Labs
 
Agile testing
Agile testingAgile testing
Agile testing
Yogita patil
 
Shift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceShift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality Assurance
Zbyszek Mockun
 
Agile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceAgile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality Assistance
Luca Giovenzana
 

What's hot (20)

Agile performance testing
Agile performance testingAgile performance testing
Agile performance testing
 
DevOps 2017 Conf: evolving from automated to continuous
DevOps 2017 Conf: evolving from automated to continuousDevOps 2017 Conf: evolving from automated to continuous
DevOps 2017 Conf: evolving from automated to continuous
 
Top Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingTop Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance Testing
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
QA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQQA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQ
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
CESAR.thon: a Testing Marathon Framework
CESAR.thon: a Testing Marathon FrameworkCESAR.thon: a Testing Marathon Framework
CESAR.thon: a Testing Marathon Framework
 
Embedded summer camps 2017
Embedded summer camps 2017Embedded summer camps 2017
Embedded summer camps 2017
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Agile Aspects of Performance Testing
Agile Aspects of Performance TestingAgile Aspects of Performance Testing
Agile Aspects of Performance Testing
 
ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...
ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...
ЄРМЕК КАДИРБАЄВ & АЛЕКС РИБКІН «How we train QAEs to join automation» Online ...
 
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
 
Examples how to move towards Zero Defects
Examples how to move towards Zero DefectsExamples how to move towards Zero Defects
Examples how to move towards Zero Defects
 
Niels Malotaux - Help We Have a QA Problem!
Niels Malotaux -  Help We Have a QA Problem!Niels Malotaux -  Help We Have a QA Problem!
Niels Malotaux - Help We Have a QA Problem!
 
ODD: Extending a Specification 1.2
ODD: Extending a Specification 1.2ODD: Extending a Specification 1.2
ODD: Extending a Specification 1.2
 
Agile Test Automation
Agile Test AutomationAgile Test Automation
Agile Test Automation
 
Software testing methodologies to watch out in 2020
Software testing methodologies to watch out in 2020Software testing methodologies to watch out in 2020
Software testing methodologies to watch out in 2020
 
Agile testing
Agile testingAgile testing
Agile testing
 
Shift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceShift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality Assurance
 
Agile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceAgile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality Assistance
 

Viewers also liked

Project control
Project controlProject control
Project control
Alexander Prins
 
PROJECT CONTROL PROCESS
PROJECT CONTROL PROCESS PROJECT CONTROL PROCESS
PROJECT CONTROL PROCESS
Akash Prasanna
 
Project Monitoring And Controlling
Project Monitoring And ControllingProject Monitoring And Controlling
Project Monitoring And Controlling
Tom Milner
 
Project Monitoring and Control
Project Monitoring and ControlProject Monitoring and Control
Project Monitoring and Control
guy_davis
 
Project control. Management
Project control. ManagementProject control. Management
Project control. Management
Marius Miron
 

Viewers also liked (7)

Project control
Project controlProject control
Project control
 
PROJECT CONTROL PROCESS
PROJECT CONTROL PROCESS PROJECT CONTROL PROCESS
PROJECT CONTROL PROCESS
 
Project Control Process
Project Control ProcessProject Control Process
Project Control Process
 
Project Monitoring and Control
Project Monitoring and ControlProject Monitoring and Control
Project Monitoring and Control
 
Project Monitoring And Controlling
Project Monitoring And ControllingProject Monitoring And Controlling
Project Monitoring And Controlling
 
Project Monitoring and Control
Project Monitoring and ControlProject Monitoring and Control
Project Monitoring and Control
 
Project control. Management
Project control. ManagementProject control. Management
Project control. Management
 

Similar to ODD + Project Control 0.9

ODD + Project Control 1.0
ODD + Project Control 1.0ODD + Project Control 1.0
ODD + Project Control 1.0
Jonathan Herring
 
ODD: Extending Agile 1.3
ODD: Extending Agile 1.3ODD: Extending Agile 1.3
ODD: Extending Agile 1.3
Jonathan Herring
 
Obstacle Driven Development Stages
Obstacle Driven Development StagesObstacle Driven Development Stages
Obstacle Driven Development Stages
Jonathan Herring
 
ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5
Jonathan Herring
 
ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3
Jonathan Herring
 
ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3
Jonathan Herring
 
ODD is not Agile or Waterfall
ODD is not Agile or WaterfallODD is not Agile or Waterfall
ODD is not Agile or WaterfallJonathan Herring
 
ODD Testing
ODD TestingODD Testing
ODD Testing
Jonathan Herring
 
Obstacle Driven Development
Obstacle Driven DevelopmentObstacle Driven Development
Obstacle Driven Development
Jonathan Herring
 
ODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff Right
Jonathan Herring
 
ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2
Jonathan Herring
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
Coverity
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters MostRemedy IT
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
AnkitKumar891632
 
Obstacle Driven Development Models
Obstacle Driven Development ModelsObstacle Driven Development Models
Obstacle Driven Development Models
Jonathan Herring
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CD
Roger Turnau
 
Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineering
MansiganeshJawale
 
Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com
enosislearningcom
 
Devops
DevopsDevops
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle
Kari Kakkonen
 

Similar to ODD + Project Control 0.9 (20)

ODD + Project Control 1.0
ODD + Project Control 1.0ODD + Project Control 1.0
ODD + Project Control 1.0
 
ODD: Extending Agile 1.3
ODD: Extending Agile 1.3ODD: Extending Agile 1.3
ODD: Extending Agile 1.3
 
Obstacle Driven Development Stages
Obstacle Driven Development StagesObstacle Driven Development Stages
Obstacle Driven Development Stages
 
ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5
 
ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3
 
ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3
 
ODD is not Agile or Waterfall
ODD is not Agile or WaterfallODD is not Agile or Waterfall
ODD is not Agile or Waterfall
 
ODD Testing
ODD TestingODD Testing
ODD Testing
 
Obstacle Driven Development
Obstacle Driven DevelopmentObstacle Driven Development
Obstacle Driven Development
 
ODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff Right
 
ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters Most
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
 
Obstacle Driven Development Models
Obstacle Driven Development ModelsObstacle Driven Development Models
Obstacle Driven Development Models
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CD
 
Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineering
 
Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com Introduction To Testing by enosislearning.com
Introduction To Testing by enosislearning.com
 
Devops
DevopsDevops
Devops
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle
 

More from Jonathan Herring

ODD: OODA Evolution
ODD: OODA EvolutionODD: OODA Evolution
ODD: OODA Evolution
Jonathan Herring
 
How to Use Project Control 1.0
How to Use Project Control 1.0How to Use Project Control 1.0
How to Use Project Control 1.0
Jonathan Herring
 
How to be Innovative
How to be InnovativeHow to be Innovative
How to be Innovative
Jonathan Herring
 
ODD and Project Control v0.957
ODD and Project Control v0.957ODD and Project Control v0.957
ODD and Project Control v0.957
Jonathan Herring
 
Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9
Jonathan Herring
 
ODD: Success and Failure
ODD: Success and FailureODD: Success and Failure
ODD: Success and Failure
Jonathan Herring
 
ODD: Extending Requirements Analysis 1.3
ODD: Extending Requirements Analysis 1.3ODD: Extending Requirements Analysis 1.3
ODD: Extending Requirements Analysis 1.3
Jonathan Herring
 
ODD Definitions
ODD DefinitionsODD Definitions
ODD Definitions
Jonathan Herring
 
ODD: Evolution (short)
ODD: Evolution (short)ODD: Evolution (short)
ODD: Evolution (short)
Jonathan Herring
 
ODD Comparison
ODD ComparisonODD Comparison
ODD Comparison
Jonathan Herring
 
ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2
Jonathan Herring
 
Obstacle Driven Development
Obstacle Driven Development Obstacle Driven Development
Obstacle Driven Development
Jonathan Herring
 

More from Jonathan Herring (12)

ODD: OODA Evolution
ODD: OODA EvolutionODD: OODA Evolution
ODD: OODA Evolution
 
How to Use Project Control 1.0
How to Use Project Control 1.0How to Use Project Control 1.0
How to Use Project Control 1.0
 
How to be Innovative
How to be InnovativeHow to be Innovative
How to be Innovative
 
ODD and Project Control v0.957
ODD and Project Control v0.957ODD and Project Control v0.957
ODD and Project Control v0.957
 
Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9
 
ODD: Success and Failure
ODD: Success and FailureODD: Success and Failure
ODD: Success and Failure
 
ODD: Extending Requirements Analysis 1.3
ODD: Extending Requirements Analysis 1.3ODD: Extending Requirements Analysis 1.3
ODD: Extending Requirements Analysis 1.3
 
ODD Definitions
ODD DefinitionsODD Definitions
ODD Definitions
 
ODD: Evolution (short)
ODD: Evolution (short)ODD: Evolution (short)
ODD: Evolution (short)
 
ODD Comparison
ODD ComparisonODD Comparison
ODD Comparison
 
ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2
 
Obstacle Driven Development
Obstacle Driven Development Obstacle Driven Development
Obstacle Driven Development
 

Recently uploaded

Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

ODD + Project Control 0.9

  • 1. Obstacle Driven Development + Project Control 0.9
  • 2. Testing First? 08/11/2016 ©odd.enterprises 2 Answering a question before its asked is like creating a solution before a test.
  • 3. ODD Motivation Life will test every aspect of a products development stages, levels and elements. So, • Why do engineering differently? 08/11/2016 ©odd.enterprises 3
  • 4. Background Ideas of Obstacle Driven Development (ODD) are based on numerous development processes including: 08/11/2016 ©odd.enterprises 4 • Control Theory • Scientific Method • ISO V-model • Test Driven Development • ISO specifications • Requirements analysis spiral • Agile principles • SOLID principles
  • 5. Control Theory 08/11/2016 ©odd.enterprises 5 Control theory applies feedback and feedforwards control. • Error between reference and plant output compared • Extensive engineering, mathematic and scientific uses
  • 6. Project Control Control theory applied to creating a solution gives a model for control of projects. • Negative feedback from testing solution • Feedforward control is creating tests • Feedback control is solving tests 08/11/2016 ©odd.enterprises 6
  • 7. Traditional Engineering without Tests Traditional engineering relies heavily on assumptions of engineers. • Good engineers make good assumptions • Good and/or bad engineers make bad assumptions 08/11/2016 ©odd.enterprises 7
  • 8. Traditional Engineering + Testing Testing allows us to identify and correct errors. • Creating tests after a solution means we design tests according to a solution • More tests mean we can identify more errors 08/11/2016 ©odd.enterprises 8
  • 9. Assumptions and Debugging 1 If we don’t have efficient testing then debugging is inefficient. • Assumptions can easily lead to bugs • Without thorough testing we can’t effectively find bugs • Automated testing improves efficiency 08/11/2016 ©odd.enterprises 9
  • 10. Assumptions and Debugging 2 Without thorough testing we may have solutions full of bugs. • May create exponentially more bugs • Bugs exponentially more difficult and expensive to fix • What is “Works as Expected”? 08/11/2016 ©odd.enterprises 10
  • 11. ODD Testing 08/11/2016 ©odd.enterprises 11 Creating tests first allows design of solution with closed loop control. • Feedforwards testing allows creation of a negative feedback loop • Feedback used to determine project progress and control development
  • 12. ODD Proof 1 𝑂 𝑑 , 𝐸 𝑑 𝑎𝑛𝑑 𝑌 𝑑 are Obstacle (input), Error and Output. • 𝑑 is 2*n bits for status of tests and solutions • Use bitwise addition and multiplication 08/11/2016 ©odd.enterprises 12
  • 13. ODD Proof 2 𝑂 𝑑 , 𝐸 𝑑 𝑎𝑛𝑑 𝑌 𝑑 and outputs are replaced by 2 bits. • 11 is reference for test and solution to be created • First loop round gives 𝐸 𝑑 =11 and test created 08/11/2016 ©odd.enterprises 13
  • 14. ODD Proof 3 Complete one loop to create a test before solution. • 𝐸 𝑑 = 01 as test has been created without solution • We develop a solution for the test 08/11/2016 ©odd.enterprises 14
  • 15. ODD Proof 4 08/11/2016 ©odd.enterprises 15 Complete two loops to create a test and solution. • 𝐸 𝑑 = 00 as test has been created with solution • Continue until 𝑛 obstacles are tested and solved
  • 16. Project Control Control theory applied to give feedforward and feedback control. • Feedforwards control is creating a test • Feedback control is solving a test • Multiple feedback loops to Analysis 08/11/2016 ©odd.enterprises 16
  • 17. Obstacle Driven Development Obstacle Driven Development allows testing of all stages. • Fully testable stages, abstraction levels and elements • Identify, correct and prevent failure at earliest opportunity 08/11/2016 ©odd.enterprises 17
  • 18. Why Use Obstacle Driven Development? Traditional engineering tests solutions once they are created. • Solution tested against often incorrect requirements • Requirements fixed and not testable • Errors detected very late • Errors propagating through stages cost 10x to fix per stage 08/11/2016 ©odd.enterprises 18
  • 19. Scientific Method Scientific method says we must create tests before solutions. • Therefore creating solutions before tests is unscientific • Traditional engineering creates solutions before tests, so is unscientific • Is a scientific method to engineering required? 08/11/2016 ©odd.enterprises 19
  • 20. Scientific & Engineering Method Comparing scientific and engineering methods show differences. • Depends on experience and talent of engineers • No way of testing requirements • Customers discover their requirements differ from products 08/11/2016 ©odd.enterprises 20
  • 21. ODD Scientific Method Scientific method is created through adapting model. • More testing and feedback than traditional scientific method • Allows repetition to refine theories • Learning from failure 08/11/2016 ©odd.enterprises 21
  • 22. ODD Engineering Method Engineering version of a scientific model. • Stages, checkpoints and control of ODD shown • Verification provided by creating tests • Validation provided by solving tests 08/11/2016 ©odd.enterprises 22
  • 23. ODD Scientific & Engineering Methods 08/11/2016 ©odd.enterprises 23 Comparing methods we see structure is identical and wording equivalent. • Conclusion is the method is scientific • Each method repeatable to continue refinement • We can combine the methods for R&D
  • 24. Extreme Programming Original inspiration for ODD came from Extreme Programming (XP). • XP is a software development methodology • Improves software quality and responsiveness to requirements • Unit testing of all code • Avoids programming features until they are needed 08/11/2016 ©odd.enterprises 24
  • 25. Extreme Engineering From Extreme Programming we built a method for engineering. • XP ideas applied to stages of software, hardware and embedded • XP adapted to engineering gives Extreme Engineering 08/11/2016 ©odd.enterprises 25
  • 26. Overkill? 1 Testing every stage, level and element of a development is difficult and expensive. • Overkill for simple problems • More efficient the longer and more complex development 08/11/2016 ©odd.enterprises 26
  • 27. Overkill? 2 There are 2 main uses for the method. • Ideal for complex projects • Ideal for long lasting projects • Best for complex and long lasting projects 08/11/2016 ©odd.enterprises 27
  • 28. ODD Principles Principles inspired by Agile manifesto. • Over substituted so both can support development • Stages adapted and models created help facilitate aims • Focus on linking obstacles to solutions • Processes and tools which encourage individuals and interactions • Working software through comprehensive documentation • Contract negotiation through customer collaboration • Following a plan which responds to change 08/11/2016 ©odd.enterprises 28
  • 29. Principle 1 Processes and tools which encourage individuals and interactions. • Identification and solving of problems encouraged • Individuals empowered to use full ability of process and tools • Interactions simplified with tests helping communication 08/11/2016 ©odd.enterprises 29
  • 30. Principle 2 Working software through comprehensive documentation. • Describing products and systems helps create tests and solutions • Working software designed according to tests • Comprehensive documentation prevents basic errors 08/11/2016 ©odd.enterprises 30
  • 31. Principle 3 Contract negotiation through customer collaboration. • Specification helps meet customer requirements • Behaviours easy to describe and understand • Creating a specification is cheap, testable and adaptable 08/11/2016 ©odd.enterprises 31
  • 32. Principle 4 Following a plan which responds to change. • Stages and elements subject to change as required • No stages frozen and adapted to requirements • Failing tests may result in modifying previous stages 08/11/2016 ©odd.enterprises 32
  • 33. Test Driven Development 1 Test Driven Development is software development where tests are written before code. • Creating tests first ensures code tested and testable • Unit tests ran through test suites for automated testing • Improved code through early error detection 08/11/2016 ©odd.enterprises 33 Write Test Write Code Refactor
  • 34. Test Driven Development 2 Tests are written before code. 1. Test is written and ran to observe a fail 2. Simplest code is written to pass the test 3. Code is refactored according to SOLID principles 4. Repeat until coding complete 08/11/2016 ©odd.enterprises 34 Write Test Write Code Refactor
  • 35. Test Driven Development 3 Development of ODD began with a question when using TDD: • Where do tests come from? 08/11/2016 ©odd.enterprises 35 Write Test Write Code Refactor
  • 36. Behaviour Driven Development Described as “Test Driven Development done right”. • Behaviours implemented for testing and design • Additional stage of thinking about tests • Increased efficiency over TDD 08/11/2016 ©odd.enterprises 36 Write Test Write Code Refactor Think
  • 37. ODD Behaviour Driven Development Adapting sequence gives one similar to traffic lights. 1. Red light for behaviour to be coded 2. Amber light when tests are created 3. Green light when code written and tested 4. Blue light when tests are passed 5. Repeat until specification is coded 08/11/2016 ©odd.enterprises 37
  • 38. ODD Process Process becomes generic to create a new development model. • Applications to hardware, software and embedded • Links obstacles with tests for verification and validation • Refactoring included in Validate Solution 08/11/2016 ©odd.enterprises 38
  • 39. Obstacle Driven Development 1 Process adapted and repeated between four stages in sequence. • Analysis • Specification • Solution • Production 08/11/2016 ©odd.enterprises 39 Specification Solution Production Analysis
  • 40. Obstacle Driven Development 2 Verification and validation link stages and provide feedback. • Verification ensures a product is built in the right way • Validation ensures a product is built right • Creating and solving tests give verification and validation 08/11/2016 ©odd.enterprises 40
  • 42. ODD for Embedded Obstacle Driven Development designed for software, hardware and embedded. • Stages defined to help create physical products • Benefits of software, hardware and embedded principles • Suitable for safety critical applications 08/11/2016 ©odd.enterprises 42
  • 43. V-model V-model engineering for requirements, designs, testing of problem solutions. • V-models give framework of Obstacle Driven Development • Development for safety critical design processes • Described by international standards 08/11/2016 ©odd.enterprises 43
  • 44. International Organisation for Standardisation Standards and processes provided for requirements, specifications, guidelines or characteristics. • Ensures products, services and components are fit for purpose • Sets standards required for state of the art and markets • ODD designed to be compatible with international standards 08/11/2016 ©odd.enterprises 44
  • 45. ISO V-model V-model to apply ISO standards for software development. • Model links various levels of development • Testing for levels from software up to vehicle tests • Testing for feedback and ensures each level is verified 08/11/2016 ©odd.enterprises 45
  • 46. Test Driven Development V-model 1 V-models are combined with Test Driven Development. • Help create tests and integrate systems • System created according to designs through tests • Tests help integrate low level code to high level 08/11/2016 ©odd.enterprises 46
  • 47. Test Driven Development V-model 2 We extend and invert V-models so development stages are separated. • Models consist of V-models with TDD and unit testing • Inverted V-models allow for separation of stages • Inverted V-models link with V- models creating further models 08/11/2016 ©odd.enterprises 47
  • 48. Inverted V-models V-models inverted to link stages and help decomposition. • V-models help integrate a solution • Inverted V-models to decompose a creation • Testing is adapted for decomposition of elements 08/11/2016 ©odd.enterprises 48
  • 49. Extending a Specification 1 • Traditional Problem and Solution Space – Specification a small interface • Extended Specification – Specification a separate stage 49©odd.enterprises08/11/2016
  • 50. Extending a Specification 2 Extending Specifications for creating new models combined with TDD. • V-model compatible with Safety Integrity Levels • TDD processes for V&V of Specification • Specification to create tests 08/11/2016 ©odd.enterprises 50
  • 51. ODD Verification and Validation 1 Provides full verification and validation through creating and solving tests. • Verification (“is it built right”) provided by creating tests • Validation (“built right”) provided by solving tests 08/11/2016 ©odd.enterprises 51
  • 52. ODD Verification and Validation 2 Verification and validation links stages. • Specification – Verification and validation • Solution – Testing and design • Production – Quality assurance and control • Analysis – Utilisation and elicitation 08/11/2016 ©odd.enterprises 52
  • 53. Feedforward Processes Verification is a feedfoward process where tests are created for next stage. • Verification • Testing • Quality assurance • Utilisation 08/11/2016 ©odd.enterprises 53
  • 54. Feedback Processes Validation is a feedback process where tests are solved. • Validation • Design • Quality control • Elicitation 08/11/2016 ©odd.enterprises 54
  • 55. M-Model Comparison Model links four separate stages of problem domain with unit testing. • Verification and validation appropriate to each stage • Extends traditional problem and solution domain • Unit testing processes links stages 08/11/2016 ©odd.enterprises 55
  • 56. X-model Form Alternative form is X-model and we concurrently integrate stages. • Operates same as M-model except all stages are integrated • Structure is 4 V-models around a central axis • For developments where time is shorter 08/11/2016 ©odd.enterprises 56
  • 57. Abstraction Levels Element describes stage and level from material to product and analysis to production. A Product consists of: • Systems; which consist of • Subsystems; which consist of • Components; which consist of • Materials 08/11/2016 ©odd.enterprises 57
  • 58. Abstraction Levels Abstraction levels allow divisions to a stage to organise testing, integration and decomposition. • Abstraction levels from material to product • Extendable to company and customer levels • Integration and decomposition of stages through SRP 08/11/2016 ©odd.enterprises 58
  • 59. System Divisions We divide stages into abstraction levels and system divisions. • Linked to equivalent obstacle in previous stage • Linked to equivalent solution in next stage • Each single block is an element 08/11/2016 ©odd.enterprises 59
  • 60. Linking Tests 1 Tests link behaviours with solutions through testing and design. • Solutions designed according to tests from behaviours • Each solution is a single element of a product • Unit testing is applied • Test suite created and ran when changes occur 08/11/2016 ©odd.enterprises 60
  • 61. Linking Tests 2 Testing and design of solutions from behaviours of specification. • Solution implements 1 or more behaviours • Tests suite ran for any changes or additions • Created as with Test Driven Development 08/11/2016 ©odd.enterprises 61
  • 62. ODD Test Suites Test suites maintain solutions for software and identify errors. • Test suites contain individual and combined unit tests • Test suites are intended to be implemented between all stages • TDD process applied throughout development to create ODD 08/11/2016 ©odd.enterprises 62
  • 63. Linking Solution to Production 1 Solution produced with consistent quality often for large quantities. • Solution assures and controls quality of related production • Tests are created for quality assurance • Tests passed give measure for quality control 08/11/2016 ©odd.enterprises 63
  • 64. Linking Solution to Production 2 Elements of solution create quality assurance tests for production. • Basic assurance and control from failure rates • Control ensures failure rate is acceptable • Assurance will determine an acceptable failure rate 08/11/2016 ©odd.enterprises 64
  • 65. Linking Production to Analysis 1 Linking Production to Analysis ensures product features utilised and elicited. • Features of product utilised by customers • Elicitation after utilisation of feature to find requirements • Verifies current solutions and identifies new obstacles 08/11/2016 ©odd.enterprises 65
  • 66. Linking Production to Analysis 2 Production & Analysis linked with features a customer sees in a product. • New feature may cover requirement but create another • Elements and level investigated independently 08/11/2016 ©odd.enterprises 66
  • 67. Requirements Analysis 1 Requirements analysis is an essential stage where we determine what a product should do. • Requirements analysis is performed in numerous ways: – Spiral model – Use case analysis – Safety integrity Levels (SILs) • Requirements analysis spiral is adapted and integrated 08/11/2016 ©odd.enterprises 67
  • 68. Requirements Analysis 2 08/11/2016 ©odd.enterprises 68
  • 69. Requirements Analysis Adaptions 1 Spiral model is superimposed onto an M-model and adapted. • Agreed Behaviours substitutes Agreed Requirements • Quality Assurance equivalent to Testing • Negotiation similar to Verification – Continues on next slide 08/11/2016 ©odd.enterprises 69
  • 70. Requirements Analysis Adaptions 2 Spiral model is superimposed ontoan M-model and adapted. • Verification substituted for Negotiation • Validation substitutes Evaluation • Testing substitutes Quality Assurance 08/11/2016 ©odd.enterprises 70
  • 71. ODD Analysis Requirements analysis combines with Specification in an inverted V-model. • Tree diagram approach creates situations from events • Safety Integrity Levels measure and process situations into hazards • Checkpoints for Product, Consolidated Requirements and Documents 08/11/2016 ©odd.enterprises 71
  • 72. ODD Solution Solution created from specification through behaviour tests • Red light for behaviour contained in specification • Amber light when test for behaviour is created • Green light when solution designed to pass test 08/11/2016 ©odd.enterprises 72
  • 73. Integration of Solution Solutions integrated from materials into components, components into subsystems etc. • Solutions created with bottom- up process • Each level is integrated into a higher level • Higher level tests provide integration testing 08/11/2016 ©odd.enterprises 73
  • 74. Solution Control Using a Specification we create closed loop control to develop solution. • Creating tests from Specification is feedforwards control • Solving tests allows a feedback loop with control of creating solution 08/11/2016 ©odd.enterprises 74
  • 75. Testing Spiral for Solution Stage Solution stage tests Materials first and integrates until Product. • Continue in circle until all tests passed for abstraction level • Once tested we spiral outwards to next abstraction level • Once completed we have a fully tested Solution to a Specification 08/11/2016 ©odd.enterprises 75
  • 76. ODD Production Production created from solution through quality assurance and control. • Red light for solution with no quality assurance and control • Amber light when test to assure quality is created • Green light when quality control passed 08/11/2016 ©odd.enterprises 76
  • 77. Decomposition of Production Production decomposed from high level to assure efficiency and high quality levels. • Production created with a top- down process • Each level decomposed for efficiency of lower levels • Efficiency through testing of production quality 08/11/2016 ©odd.enterprises 77
  • 78. Production Control Using a Solution we create closed loop control to develop Production. • Creating tests from Solution is feedforwards control • Solving tests allows a feedback loop with control of Production 08/11/2016 ©odd.enterprises 78
  • 79. Testing Spiral for Production Stage Production stage tests Product first and decomposes until Materials. • Continue in circle until all tests are passed for abstraction level • Once tested we spiral outwards to next abstraction level • Effective distribution and control of Production from high level 08/11/2016 ©odd.enterprises 79
  • 80. ODD Analysis Analysis performed on production features through tests. • Red light for no utilisation or elicitation of feature • Amber light when customer utilisation test created • Green light when customer elicitation test solved 08/11/2016 ©odd.enterprises 80
  • 81. Integration of Analysis Analysis integrated from events in a situation tree to give complex situations. • Situations identified from bottom-up • Situations analysed to identify hazards • Hazards processed into Safety Integrity Levels (SILs) • Requirements found from SILs 08/11/2016 ©odd.enterprises 81
  • 82. Analysis Control With Production we create closed loop control to develop Analysis. • Creating tests from Production is feedforwards control • Solving tests allows a feedback loop with control of Analysis 08/11/2016 ©odd.enterprises 82
  • 83. Testing Spiral for Analysis Stage Analysis stage elicits information on Materials first and integrates to Product. • Continue in a circle until all tests solved for abstraction level • Once tested we spiral outwards to next abstraction level • Efficient elicitation of customers to all elements and levels 08/11/2016 ©odd.enterprises 83
  • 84. SIL Tree Diagram 1 SIL tree diagram creates situations from events and processes requirements. • Severity and Controllability added to each event • Requirements found from SIL ratings using branches • Allows unit testing approach for situations and requirements 08/11/2016 ©odd.enterprises 84
  • 85. SIL Tree Diagram 2 Adding SILs to a Probability Tree allows requirement identification and processing. • Branching tree with SIL ratings for events • SILs found by multiplying along branches of SIL tree • Each situation given SIL rating to determine requirements 08/11/2016 ©odd.enterprises 85
  • 86. SIL Tree Diagram 3 Processing SIL tree diagram is very similar to a probability tree. • SIL ratings processed by multiplying probability, severity and controllability • SIL rating multiplied along branches for each situation • SIL result between 1 and 4, with 4 being best 08/11/2016 ©odd.enterprises 86 Component 1 Pass P(P1)*S(P1)*C(P1) Component 2 Pass P(P2)*S(P2)*C(P2) Component 2 Fail P(F2)*S(F2)*C(F2) Component 1 Fail P(F1)*S(F1)*C(F1) Component 2 Pass P(P2)*S(P2)*C(P2) Component 2 Fail P(F2)*S(F2)*C(F2)
  • 87. SIL Tree Diagram 4 Using a SIL tree diagram gives numerous advantages. • Branches ensure all expected situations identified • Extendible and adaptable to new situations by adding events • Each branch is a situation • New situations found from adding new events 08/11/2016 ©odd.enterprises 87 Component 1 Pass P(P1)*S(P1)*C(P1) Component 2 Pass P(P2)*S(P2)*C(P2) Component 2 Fail P(F2)*S(F2)*C(F2) Component 1 Fail P(F1)*S(F1)*C(F1) Component 2 Pass P(P2)*S(P2)*C(P2) Component 2 Fail P(F2)*S(F2)*C(F2)
  • 88. ODD Specification Specification created from analysis through requirement tests. • Red light for a requirement • Amber light when verification test is created • Green light when test passed and behaviour validated 08/11/2016 ©odd.enterprises 88
  • 89. Decomposition of Specification Specification decomposed from high level behaviours to ensure high level performance. • Specifications created with top- down process • Level decomposed until all levels specified • Enables integration testing of a solution 08/11/2016 ©odd.enterprises 89
  • 90. Linking Behaviours to Situations 1 Situations links to Specification by creating and solving tests. • Situations described by a decision tree • Diagram capable of failure mode effects and analysis • Linked to a behaviour which covers the situation 08/11/2016 ©odd.enterprises 90
  • 91. Linking Behaviours to Situations 2 Branches of SIL tree are situations to be covered by Specification. • Each situation is tested to ensure coverage by specification • Ensures situations are covered before creation of solution • All expected situations should have an associated behaviour 08/11/2016 ©odd.enterprises 91
  • 92. Testing Spiral for Specification Stage Specification stage tests Product first and decomposes elements until Materials achieved. • Continue in a circle until all tests are passed for abstraction level • Once tested we spiral outwards to the next abstraction level • Decomposition of Specification from ensures high level features 08/11/2016 ©odd.enterprises 92
  • 93. Obstacle Driven Evolution 1 Spiral model adaptable to model an evolutionary process. • Dashed arrows represent failure • Dashed arrows extending outwards for too ambitious • Dashed arrows contracting for too complacent • Failure in quadrant indicate invention has failed stage 08/11/2016 ©odd.enterprises 93 Note: Electric car invented in 1835
  • 94. Obstacle Driven Evolution 2 Using the model we can plot why a product or invention failed. • Was analysis insufficient? • Was Specification too ambitious or complacent? • Was Solution created too expensively or too poorly? • Was Production too high quality or too little? 08/11/2016 ©odd.enterprises 94 Note: Electric car invented in 1835
  • 95. ODD 3D Pyramid Model 08/11/2016 ©odd.enterprises 95 Concurrent development of multiple systems requires we layer M-models of the systems. • Pyramid shaped for increasing number of elements at lower levels • Observable development progress measurement
  • 96. ODD Continuous Process Here we show 2 models which have been linked into a cyclic model. • Process repeats for continuous improvement • Further stages may be added • Proceed clockwise through each stage 08/11/2016 ©odd.enterprises 96
  • 97. ODD Systems Engineering 1 Further stages added as necessary to complete hardware system development linked through tests. • Safety Integrity Levels and Situation Analysis provide information on hazards • Supply and Assemble give hardware capabilities 08/11/2016 ©odd.enterprises 97
  • 98. ODD Systems Engineering 2 We can divide SIL tress into separate stages for additional error checks. • Situation Analysis identifies situations • Safety Integrity Levels process situations into hazards • Requirements analysis becomes similar to Specification 08/11/2016 ©odd.enterprises 98
  • 99. ODD Systems Engineering 3 For hardware we need to ensure that physical elements are supplied and assembled correctly. • Supply stage handles supply of physical hardware • Assemble stage handles assembly of physical hardware • Completed through creating and solving tests 08/11/2016 ©odd.enterprises 99
  • 100. ODD Systems Engineering 4 Steps to creating and maintaining a product are converted into an ODD stage with some thought. • Stages added should ideally come in pairs • Pairs of stages allow integration and decomposition • We can add, combine or reorder the stages as required 08/11/2016 ©odd.enterprises 100
  • 101. Obstacle Driven Evolution 2 Further divisions are added to the ODE model so we can demonstrate success or failure of that sector. • Branches may be added for other vehicle types e.g. trucks, buses • Ability to investigate past failures and plan future success • Extendable to other scientific disciplines 08/11/2016 ©odd.enterprises 101
  • 102. ODD OODA Col. John Boyd’s OODA method has been combined with ODD to produce new models. • OODA = Observe, Orient, Decide, Act • Used for military strategy for decades • Similarity to OODA effectively proves ODD 08/11/2016 ©odd.enterprises 102
  • 103. ODD OODA OODA methods have been used for many purposes. • Originally for developing military strategy • Adapted to Artificial Intelligence, business strategy and legislation • Adapted to be compatible with ODD 08/11/2016 ©odd.enterprises 103
  • 104. ODDSAP OODA Further stages are added to provide steps for hardware development. • Feedback from all stages to Analysis • Decision included to determine progression • Outside Information and Unfolding Circumstances are also analysed 08/11/2016 ©odd.enterprises 104
  • 105. Generic Model OBSA Comparing ODD with OODA resulted in a generic method to describe many things. • OBSA – Obstacle, Behaviour, Solution, Action 08/11/2016 ©odd.enterprises 105
  • 106. Other Uses Generic model may be used to create further models. • Shown is a model for healthcare adapted from ODDSAP OODA • Other methods for legislation & AI • Further methods to be identified 08/11/2016 ©odd.enterprises 106
  • 107. ODD Materials ODD is explained in further presentations. • Obstacle Driven Development • ODD: Requirements Analysis • ODD: Extending a Specification • ODD: Extending TDD • ODD: Extending V-models • ODD Is Not Agile or Waterfall ODD Is Not Agile or Waterfall Obstacle Driven Development ODD: Requirements Analysis ODD: Extending a Specification ODD: Extending V-models ODD: Extending TDD 08/11/2016 ©odd.enterprises 107
  • 108. Further Information and Questions Website Presentations Facebook Twitter Email 08/11/2016 ©odd.enterprises 108
  • 109. 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. 08/11/2016 ©odd.enterprises 109