8. What is ODD? v. What do you want ODD to be?
16/03/2015 Šodd.enterprises 8
9. Background
Ideas of Obstacle Driven Development (ODD) are based on
numerous development processes including:
⢠ISO V-model
⢠Test Driven Development
⢠ISO specifications
⢠Requirements analysis spiral
⢠Agile principles
16/03/2015 Šodd.enterprises 9
10. Obstacle Driven Development 1
Tests used to verify and validate
code in TDD are extended and
adapted to create a new
development model.
⢠Applications to hardware,
software and embedded
⢠Links stages with tests used for
verification and validation
16/03/2015 Šodd.enterprises 10
Verify
Solution
Solution for
Obstacle
Validate
Solution
Obstacle
11. Obstacle Driven Development 2
Obstacle Driven Development finds
solutions to obstacles.
An obstacle is solved and product
created through four stages of
development.
⢠Analysis
⢠Specification
⢠Solution
⢠Production
16/03/2015 Šodd.enterprises 11
Verify
Solution
Solution for
Obstacle
Validate
Solution
Obstacle
12. Obstacle Driven Development 3
An ODD Process is expressed using
four stages in sequence.
The diagram is simplified to
demonstrate a basic ODD process.
⢠Analysis
⢠Specification
⢠Solution
⢠Production
16/03/2015 Šodd.enterprises 12
Specification
Solution
Production
Analysis
13. Obstacle Driven Development 4
Verification and validation are
applied to link stages and provide
feedback.
⢠Verification is ensuring a product
is built in the right way
⢠Validation is ensuring a product is
built right
⢠Creating and solving tests give
verification and validation
16/03/2015 Šodd.enterprises 13
14. ODD Flow Chart
Flow chart to demonstrate a
generic ODD process implemented
with appropriate testing.
⢠Flow chart is adapted to give
testing required for each stage
⢠Select Obstacle refers to an
element from a previous stage
⢠Create Test and Create Solution
are adapted for verification and
validation of each element
16/03/2015 Šodd.enterprises 14
15. ODD M-model 1
M-models demonstrate how
development is divided into stages
and testing processes.
Each stage also has a checkpoint.
⢠Requirements
⢠Documents
⢠Prototype
⢠Product
16/03/2015 Šodd.enterprises 15
16. ODD M-model 2
Testing processes are to the left of
each stage.
⢠Analysis
â Utilisation and elicitation
⢠Specification
â Verification and validation
⢠Solution
â Testing and design
⢠Production
â Quality assurance and control
16/03/2015 Šodd.enterprises 16
17. Waterfall Development
Waterfall development is
considered a traditional method of
software development.
⢠Each stage is âfixedâ before
moving to the next
⢠Flexibility is an issue with fixed
stages
⢠Testing is late in the development
16/03/2015 Šodd.enterprises 17
18. ODD is not Waterfall
ODD is different to Waterfall in a
number of ways.
⢠Development stages are not fixed
⢠Testing is implicit throughout
with unit tests
⢠Testing implemented between
each stage
16/03/2015 Šodd.enterprises 18
19. Agile Development
Agile is a relatively recent approach
to product development designed
to be efficient and adaptable.
⢠12 principles to guide
development teams in
implementing Agile projects
⢠Various methodologies including
SCRUM and Feature Driven
Development
16/03/2015 Šodd.enterprises 19
20. ODD is not Agile
ODD is different to Agile in a
number of ways.
⢠Specification implemented
⢠Tests are created first
⢠ODD is suitable for hardware,
software and embedded
⢠Four stages to product
development
16/03/2015 Šodd.enterprises 20
21. Agile Manifesto
The Agile manifesto describes what
is important for an Agile project.
⢠Invented by Kent Beck, James
Grenning et al.
⢠While both are important Agile
values the left over the right
⢠ODD uses a modified version
⢠Individuals and interactions over
processes and tools
⢠Working software over
comprehensive documentation
⢠Customer collaboration over
contract negotiation
⢠Responding to change over
following a plan
Š Kent Beck, James Grenning et al.
16/03/2015 Šodd.enterprises 21
22. ODD Manifesto
The manifesto used for ODD is a
reworking of the Agile manifesto.
⢠Over is replaced by terms
illustrating how one can help
with others
⢠Emphasis on linking and
encouraging ODD processes
⢠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
16/03/2015 Šodd.enterprises 22
23. Success from Failure
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.
16/03/2015 Šodd.enterprises 23
24. Learning from Failure
ODD is different to traditional and
achieves success by identifying,
correcting and preventing failures.
⢠Success is a lack of failure
⢠Failure is easy to prove and
understand
⢠Tests give definitive answers for
success or failure
16/03/2015 Šodd.enterprises 24
25. The Tests Are Out There
If you donât test your product then
your customers will.
⢠Tests are out there and waiting
for your product
⢠Product utilisation has wider
scope than testing
⢠Single failure has potential to
cause failure of a product
16/03/2015 Šodd.enterprises 25
26. Fail Early, Fail Often
Achieving success with ODD is
through identifying, correcting and
preventing failure.
⢠Undiscovered errors can cost 10x
more to fix in the next
development phase
⢠Errors become expensive to solve
⢠2 stages missed â 100x
⢠3 stages missed â 1000x
16/03/2015 Šodd.enterprises 26
27. ODD Specification Importance
A specification can improve
development of a product.
⢠Product cost is reduced with an
improved specification process
⢠Using a full specification can
prevent errors from propagating
⢠Creating and editing a
specification is low cost
16/03/2015 Šodd.enterprises 27
28. SCRUM 1
SCRUM is a developmental method
for Agile developments.
SCRUM was first defined in 1986 as
⢠a flexible, holistic product
development strategy where a
development team works as a
unit to reach a common goal
⢠Teams organised to achieve
required result
16/03/2015 Šodd.enterprises 28
29. SCRUM 2
SCRUM is used to plan and manage
sprints which facilitate
development.
⢠Sprints can be between a week
and a month (30 days shown)
⢠Meetings to demonstrate
progress and discuss problems
⢠Sprints allow consistent and
sustained progress
16/03/2015 Šodd.enterprises 29
30. SCRUM Master
Scrum Master is responsible for
ensuring a team works to values
and practices of Scrum.
⢠Facilitates Scrum events
⢠Process owner for team
⢠Ensures Scrum is understood and
followed
⢠Removes impediments to
progress
16/03/2015 Šodd.enterprises 30
31. Sprints
Sprints ensure a smooth flow of
work for the duration of a
development.
⢠Developments are divided into
sprints
⢠Each sprint has discovery, design,
development and testing
⢠Each sprint is required to be
integrated
16/03/2015 Šodd.enterprises 31
32. Burndown Chart 1
Burndown charts help measure and
plan development through tasks
completed and remaining.
⢠Green line is expected
development schedule
⢠Effort is measured using time
⢠If remaining tasks and effort are
above ideal then development is
behind schedule
16/03/2015 Šodd.enterprises 32
33. Burndown Chart 2
Simple burndown chart where the
blue line is an ideal or expected
burndown.
⢠Easy to see if a project is
expected to overrun
⢠If actual tasks line is above ideal
tasks then a project is behind
schedule
16/03/2015 Šodd.enterprises 33
34. Tests as Sprints
ODD Sprints are creating, solving
and passing tests for various stages.
⢠Creating a test ensures an
obstacle to be solved is known
⢠Passing a test ensures an
obstacle is solved
⢠Measurable progress achieved
16/03/2015 Šodd.enterprises 34
35. ODD Elements 1
⢠Elements are generic and
describe all parts of
development
16/03/2015 Šodd.enterprises 35
⢠Elements of each stage are
situations, behaviours,
solutions and production
36. ODD Elements 2
⢠Elements are practical levels
of a product and integrated
or decomposed
16/03/2015 Šodd.enterprises 36
⢠Elements are solutions of
tests generated by a previous
stage
37. Linking Elements 1
Elements ensure development links
throughout the stages.
⢠Each stage has different and
separate elements
⢠Height of elements indicates level
from material to product
⢠Unit testing links each stage
16/03/2015 Šodd.enterprises 37
38. Linking Elements 2
Elements are used to create a test
and link elements in the next stage.
⢠Unit testing implemented
through traffic lights
⢠Levels should link to related
elements of next stage
⢠Short distance between stages
indicates a close link
16/03/2015 Šodd.enterprises 38
39. Linking Elements 3
Production stage allows elements
to link up for continuous
development.
⢠Product analysis for identification
of remaining errors
⢠Informs future developments
⢠Solution is created many times
with quality assured and
controlled
16/03/2015 Šodd.enterprises 39
40. Linking Tests 1
Tests link behaviours with solutions
through testing and design.
⢠Solutions are designed according
to tests created from behaviours
⢠Each solution is a single element
of a product
⢠Unit testing is applied
⢠Test suite created and ran when
changes occur
16/03/2015 Šodd.enterprises 40
41. Linking Tests 2
Testing and design concerns
solutions created from behaviours
in a specification.
⢠Customers are involved for
utilisation and elicitation
⢠Each solution implements 1 or
more behaviours
⢠Tests suite ran for any changes or
additions
16/03/2015 Šodd.enterprises 41
42. Creating Tests 1
Creation of solutions from a
specification is inspired by
Behaviour Driven Development.
⢠Often tests can be created by
simply rewriting a behaviour
⢠Designing a solution according to
tests reduces debugging
⢠Creation of tests and designs may
continue until all behaviours are
implemented
16/03/2015 Šodd.enterprises 42
43. Creating Tests 2
Full test suite created using each
behaviour contained in a
specification.
⢠Creating a test first ensures an
objective is understood
⢠Design according to passing tests
reduces ambiguity
⢠Passing a test ensures behaviour
is implemented
16/03/2015 Šodd.enterprises 43
44. ODD Process 1
ODD uses a traffic light model with
each stage linked through creating,
solving and passing tests.
⢠Demonstrates links to elements
from a previous stage
⢠Process uses unit tests to ensure
all obstacles are solved
⢠Easy to understand and view
progress
16/03/2015 Šodd.enterprises 44
45. ODD Process 2
Feedforward and feedback
processes are used to ensure stages
are linked.
⢠Feedforward is creating tests to
link next stage
⢠Feedback is solving and passing
tests from previous stage
⢠Allows full linkage of stages
16/03/2015 Šodd.enterprises 45
46. Verification and Validation
Testing processes are used for
verification and validation and to
link stages of development.
⢠Stages given appropriate
verification and validation
⢠Each stage used to verify next
through creating tests
⢠Previous stage used for validation
by solving and passing tests
16/03/2015 Šodd.enterprises 46
47. ODD Combined Model
An ODD process and an M-model
give a combined model.
⢠Demonstrates how each stage is
linked to next
⢠Each traffic light set models a
unit testing process
⢠Linking of a stage is achieved
when all green lights
16/03/2015 Šodd.enterprises 47
48. ODD Organisation
Four stages structure a
developments organisation.
⢠Overview of all stages and
verification and validation
⢠Each stage and linking is
observed and managed
⢠Partnerships between colleagues
are managed and maintained
16/03/2015 Šodd.enterprises 48
49. ODD Master
An ODD master is given a title and
responsibilities similar to a SCRUM
master.
⢠Attention paid to linking stages
through verification and
validation
⢠Has management control over
development stages
⢠Interacts and supervises each
and all stages
16/03/2015 Šodd.enterprises 49
50. ODD Sprints
ODD Sprints are creating, solving
and passing a test.
⢠Measurable and testable
progress in a sprint
⢠Tests completed and remaining
give estimate of progress
⢠Tests completed are an accurate
way of measuring progress
16/03/2015 Šodd.enterprises 50
51. ODD Burndown Chart
An ODD burndown chart simply
replaces tasks to be completed with
tests to be passed.
⢠Tests to pass used as an estimate
for time remaining
⢠Tasks not tested may result in
errors leading to overrun
16/03/2015 Šodd.enterprises 51
52. ODD Generic Flow Chart
Each stage of ODD has an adaption
of this generic flow chart.
Flow chart is adapted to provide:
⢠Analysis - Utilisation and
Elicitation
⢠Specification â Verification and
Validation
⢠Solution - Testing and Design
⢠Production â Quality Assurance
and Control
16/03/2015 Šodd.enterprises 52
53. ODD Analysis
Utilisation and elicitation verify and
validate product features.
⢠Once product features are
utilised then elicitation can
proceed as validation
⢠Process links stages and allows
continuous improvement and
adaption
16/03/2015 Šodd.enterprises 53
Customer
Utilisation
Situation
Analysis
Elicit
Customers
Feature
54. ODD Analysis Flowchart
Flow chart designed to explain
creation of ODD Analysis stage.
1. Product feature selected to be
analysed in situations
2. Elicitation test is created
3. Product is utilised
4. If fail repeat Stage 3
5. Repeat Stages 1 â 4 until
elicitation is complete
16/03/2015 Šodd.enterprises 54
55. ODD Specification
Specification describes behaviours
which cover expected situations
and requirements.
⢠Tests verify and validate whether
behaviours cover requirement
⢠Once expected situations are
covered and tests verified a
specification is complete
16/03/2015 Šodd.enterprises 55
Verify
Specification
Specify
Behaviour
Validate
Specification
Requirement
56. ODD Specification Flowchart
Flow chart designed to explain
creation of ODD Specification stage.
1. Requirement selected to be
covered by a behaviour
2. Verification test is created
3. Behaviour is specified
4. If fail repeat Stage 3
5. Repeat Stages 1 â 4 until all
behaviours are specified
16/03/2015 Šodd.enterprises 56
57. ODD Solution
Specification allows creation of
tests and solutions based on
described behaviours.
⢠Solution describes individual and
integrated designs
⢠If a solution is designed to pass
tests then testing becomes easier
⢠Unit testing and test suites used
16/03/2015 Šodd.enterprises 57
Create Test
Design
Solution
Pass
Test
Behaviour
58. ODD Solution Flowchart
Flow chart designed to explain
creation of ODD Solution stage.
1. Behaviour selected to be
covered by a solution
2. Unit test is created
3. Solution is designed
4. If fail repeat Stage 3
5. Repeat Stages 1 â 4 until all
behaviours are specified
16/03/2015 Šodd.enterprises 58
59. ODD Production
Production organised directly from
a solution to give assured and
controlled quality.
⢠Solution ensures continuous and
predictable quality
⢠Quality assurance tests are
created
⢠Number of passes a measure for
quality control
16/03/2015 Šodd.enterprises 59
Assure
Product
Quality
Produce
Product
Control
Product
Quality
Solution
60. ODD Production Flowchart
Flow chart designed to explain
creation of ODD Production stage.
1. Solution selected to be
produced
2. Quality assurance test created
3. Production process
4. If fail repeat Stage 3
5. Repeat Stages 1 â 4 until all
production is assured
16/03/2015 Šodd.enterprises 60
61. ODD Agile Flowchart 1
Combining flowcharts without
checkpoints gives a process similar
to Agile development.
⢠Begins by selecting a situation
from analysis to specify
behaviours
⢠Each ODD flowchart is combined
to produce flowchart for entire
process
16/03/2015 Šodd.enterprises 61
63. ODD Waterfall Flowchart 1
Combining flowcharts gives a
process which can be presented
similarly to Waterfall development.
⢠Begins with selecting a feature to
process requirements
⢠Each ODD flowchart has been
combined with checkpoints
16/03/2015 Šodd.enterprises 63
65. ODD Waterfall with Feedback 1
Full flowchart model of an ODD
development.
⢠Decisions added to give options
when tests are not passing
⢠Branch in lighter colour is a
repetition of analysis stage
⢠Indicates how development can
be continued or adapted
16/03/2015 Šodd.enterprises 65
67. Further Information and Questions
⢠Website
⢠Presentations
⢠Facebook
⢠Twitter
⢠Email
16/03/2015 Šodd.enterprises 67
68. Legal Stuff
References
Test Driven Development for Embedded C
James Grenning, 2011
Digging into âFail fast, fail often.â
http://agile.dzone.com/articles/digging-fail-fast-fail-often
Agile vs. Waterfall: How to Approach your Web Development Project
http://www.commonplaces.com/blog/agile-vs-waterfall-how-approach-
your-web-development-project
The Scrum Master Performance Review
http://illustratedagile.com/2011/12/13/the-scrum-master-
performance-review-preparation/
ScrumMaster
http://www.mountaingoatsoftware.com/agile/scrum/scrummaster
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.
16/03/2015 Šodd.enterprises 68