SlideShare a Scribd company logo
1 of 38
Download to read offline
If your team is an object,
what is its API?
(Object-Oriented Team Design)
Andrew Annett
@akannett
November 30, 2017
PLEASE NOTE
SLIDES ≠ PRESENTATION
• These slides are designed to be viewed in
conjunction with a human being talking and
interacting with you.
• They may not make much sense to you if you
were not at the live session.
Ex-roughneck
Ex-programmer
Ex-project/program manager
Life-long learner
Coach
Lean change advocate
Conversation partisan
(+Offshore sailor)
Who is Andrew?
Please hold your questions
until you have one
The Simple idea:
Let’s talk with teams about
organizing work in terms they use
every day – object-oriented
design.
It’s a simple idea but not a small
one...
Why is this important to software?
…object-oriented design is
fundamentally different … it
produces
software architectures
that are largely outside the realm of
structured design culture.
- Grady Booch, 1991
Why is this important to teams?
…object-oriented design is
fundamentally different … it
produces
organizational architectures
that are largely outside the realm of
structured design culture.
- Me, 2017
Private Kitchen methods + knowledgeMessagesPublic Restaurant Interface
Diner – Kitchen Object Relationship
Relationship is the infrastructure for tasks
Methods
An object is autonomous and can DO
stuff:
An object KNOWS (private) stuff:
Methods
Variables
Because it has
behaviour, an
object can be
thought of as an
“animated data
store”
Methods
Variables
Interface
An object interacts with others
via messages.
Methods
Variables
Interface
“You don’t send messages
because you have objects, you
have objects because you send
messages” – Sandi Metz
An object's autonomy doesn't
extend to choices
in shared
standards and
protocols.
Methods
Variables
Interface
An object's autonomy doesn't
extend to choices
in shared
standards and
protocols.
Methods
Variables
Interface
Team objects
coordinate via
behavioural,
technical, and
cultural standards.
What is an API*?
Technically, an API is a set
of rules that two sides of
an interaction agree to
follow. It’s implemented as
a public INTERFACE.
* Application Programming Interface
The value of an API
It separates how an object works
from the way it’s used
It makes future (internal) change
easier
! Bypassing it to depend on a
private method is a form of technical
(and organizational) debt
Taking advantage of an API
Create public interfaces that allow
senders to get (or do) what they
want without knowing how your
team implements its behavior.
POST
GET
PUT
DELETE
RESTful* messages types
* REpresentational State Transfer
Work on this initiative
Add this team memberPOST
Typical RESTful messages sent to Teams
Work on this initiative
Add this team member
Do this thing differently
Can you also do this thing?
POST
PUT
Typical RESTful messages sent to Teams
Work on this initiative
Add this team member
Do this thing differently
Can you also do this thing?
What are you working on?
When will you be done?
What skillsets are needed?
Who is dependent on you?
What skillsets does your team have?
What risks are you accepting?
What are your dependencies?
What will be delivered?
How is team morale?
POST
GET
PUT
Typical RESTful messages sent to Teams
Work on this initiative
Add this team member
Do this thing differently
Can you also do this thing?
What are you working on?
When will you be done?
What skillsets are needed?
Who is dependent on you?
What skillsets does your team have?
What risks are you accepting?
What are your dependencies?
What will be delivered?
How is team morale?
Stop working on current item(s)
Reduce team size
POST
GET
PUT
DELETE
Typical RESTful messages sent to Teams
Work on this initiative
Add this team member
Do this thing differently
Can you also do this thing?
What are you working on?
When will you be done?
What skillsets are needed?
Who is dependent on you?
What skillsets does your team have?
What risks are you accepting?
What are your dependencies?
What will be delivered?
How is team morale?
Stop working on current item(s)
Reduce team size
POST
GET
PUT
DELETE
Story map, options board
Working Agreement
Story map, options board
Release plan
Story map
Skills matrix
Release plan
Risk assessment
Defect density plot
Throughput histogram
Dependency graph
Cumulative Flow Diagram
Happiness Index
Dependency graph
Skills matrix
Useful METHODS to respond to messages
Show Defect Density
Your Code as a Crime Scene: Adam Tornhill
Make risk visible
Make risk visible
Show capability – Skills Matrix
Show capability – Skills Matrix
Show Throughput
Troy McGinnis - https://github.com/FocusedObjective
Map dependencies
Show team health – Sentiment Maps
Make your work visible – Story Maps
Make your work visible – Cumulative Flow
If you’re a reader:
David A Taylor
Business Engineering
with Object Technology
Dave Grey
The Connected
Company
David West
Object Thinking
Sandi Metz
Practical Object-
Oriented Design in
Ruby
Helpful OOD principles
S ingle Responsibility….
L iscov Substitution…
O pen/Closed (Extension/Modification)…
D ependency Inversion…
I nterface segregation……………
Unhelpful non-OOD principles
S ingleton
T ight Coupling
U ntestable
P remature Optimization
I ndescriptive naming
D uplication
Thanks for your attention!
@akannett
andrew@leanintuit.com

More Related Content

Similar to If your team is an object what is its API?

Martin folwer
Martin folwerMartin folwer
Martin folwerShiraz316
 
Intranet design strategies2011 (nx power lite)
Intranet design strategies2011 (nx power lite)Intranet design strategies2011 (nx power lite)
Intranet design strategies2011 (nx power lite)Sara Durning, MDes
 
Designing for insight
Designing for insightDesigning for insight
Designing for insightAaron Silvers
 
Scaling an Engineering Team
Scaling an Engineering TeamScaling an Engineering Team
Scaling an Engineering TeamDashlane
 
Cat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project ManagementCat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project ManagementNeil Chue Hong
 
Towards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanTowards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanEllis Pratt
 
Assessing Your Current DesignOps Practice: A Heuristic Model - Dave Malouf
Assessing Your Current DesignOps Practice: A Heuristic Model - Dave MaloufAssessing Your Current DesignOps Practice: A Heuristic Model - Dave Malouf
Assessing Your Current DesignOps Practice: A Heuristic Model - Dave MaloufWeb à Québec
 
Measuring & Evaluating Your DesignOps Practice
Measuring & Evaluating Your DesignOps PracticeMeasuring & Evaluating Your DesignOps Practice
Measuring & Evaluating Your DesignOps PracticeDave Malouf
 
The subtle art of recommendation
The subtle art of recommendationThe subtle art of recommendation
The subtle art of recommendationSimon Belak
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersSarah Dutkiewicz
 
Machine Learning Product Managers Meetup Event
Machine Learning Product Managers Meetup EventMachine Learning Product Managers Meetup Event
Machine Learning Product Managers Meetup EventBenjamin Schulte
 
Odile the organisation designer
Odile the organisation designerOdile the organisation designer
Odile the organisation designerIntersection Group
 
Case study: UX Concept for project management tool for LinkedIn by Amanda Wise
Case study: UX Concept for project management tool for LinkedIn by Amanda Wise Case study: UX Concept for project management tool for LinkedIn by Amanda Wise
Case study: UX Concept for project management tool for LinkedIn by Amanda Wise AWise14
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture conceptsPaul Preiss
 
What needs to be true? Patterns of engineering agility
What needs to be true? Patterns of engineering agilityWhat needs to be true? Patterns of engineering agility
What needs to be true? Patterns of engineering agilityAndy Norton
 
Key Issues and Applications of Social Networking Technologies in Libraries
Key Issues and Applications of Social Networking Technologies in LibrariesKey Issues and Applications of Social Networking Technologies in Libraries
Key Issues and Applications of Social Networking Technologies in LibrariesMeredith Farkas
 
Software Development Analytics Intro. Twitter OSS workshop
Software Development Analytics Intro. Twitter OSS workshopSoftware Development Analytics Intro. Twitter OSS workshop
Software Development Analytics Intro. Twitter OSS workshopManrique Lopez
 

Similar to If your team is an object what is its API? (20)

Martin folwer
Martin folwerMartin folwer
Martin folwer
 
Intranet design strategies2011 (nx power lite)
Intranet design strategies2011 (nx power lite)Intranet design strategies2011 (nx power lite)
Intranet design strategies2011 (nx power lite)
 
Designing for insight
Designing for insightDesigning for insight
Designing for insight
 
Self11
Self11Self11
Self11
 
Scaling an Engineering Team
Scaling an Engineering TeamScaling an Engineering Team
Scaling an Engineering Team
 
Cat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project ManagementCat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project Management
 
Towards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanTowards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from Lean
 
Whole Agile
Whole AgileWhole Agile
Whole Agile
 
Assessing Your Current DesignOps Practice: A Heuristic Model - Dave Malouf
Assessing Your Current DesignOps Practice: A Heuristic Model - Dave MaloufAssessing Your Current DesignOps Practice: A Heuristic Model - Dave Malouf
Assessing Your Current DesignOps Practice: A Heuristic Model - Dave Malouf
 
Measuring & Evaluating Your DesignOps Practice
Measuring & Evaluating Your DesignOps PracticeMeasuring & Evaluating Your DesignOps Practice
Measuring & Evaluating Your DesignOps Practice
 
The subtle art of recommendation
The subtle art of recommendationThe subtle art of recommendation
The subtle art of recommendation
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
World Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for DevelopersWorld Usability Day 2014 - UX Toolbelt for Developers
World Usability Day 2014 - UX Toolbelt for Developers
 
Machine Learning Product Managers Meetup Event
Machine Learning Product Managers Meetup EventMachine Learning Product Managers Meetup Event
Machine Learning Product Managers Meetup Event
 
Odile the organisation designer
Odile the organisation designerOdile the organisation designer
Odile the organisation designer
 
Case study: UX Concept for project management tool for LinkedIn by Amanda Wise
Case study: UX Concept for project management tool for LinkedIn by Amanda Wise Case study: UX Concept for project management tool for LinkedIn by Amanda Wise
Case study: UX Concept for project management tool for LinkedIn by Amanda Wise
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture concepts
 
What needs to be true? Patterns of engineering agility
What needs to be true? Patterns of engineering agilityWhat needs to be true? Patterns of engineering agility
What needs to be true? Patterns of engineering agility
 
Key Issues and Applications of Social Networking Technologies in Libraries
Key Issues and Applications of Social Networking Technologies in LibrariesKey Issues and Applications of Social Networking Technologies in Libraries
Key Issues and Applications of Social Networking Technologies in Libraries
 
Software Development Analytics Intro. Twitter OSS workshop
Software Development Analytics Intro. Twitter OSS workshopSoftware Development Analytics Intro. Twitter OSS workshop
Software Development Analytics Intro. Twitter OSS workshop
 

Recently uploaded

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 

Recently uploaded (20)

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 

If your team is an object what is its API?

  • 1. If your team is an object, what is its API? (Object-Oriented Team Design) Andrew Annett @akannett November 30, 2017
  • 2. PLEASE NOTE SLIDES ≠ PRESENTATION • These slides are designed to be viewed in conjunction with a human being talking and interacting with you. • They may not make much sense to you if you were not at the live session.
  • 3. Ex-roughneck Ex-programmer Ex-project/program manager Life-long learner Coach Lean change advocate Conversation partisan (+Offshore sailor) Who is Andrew?
  • 4. Please hold your questions until you have one
  • 5. The Simple idea: Let’s talk with teams about organizing work in terms they use every day – object-oriented design. It’s a simple idea but not a small one...
  • 6. Why is this important to software? …object-oriented design is fundamentally different … it produces software architectures that are largely outside the realm of structured design culture. - Grady Booch, 1991
  • 7. Why is this important to teams? …object-oriented design is fundamentally different … it produces organizational architectures that are largely outside the realm of structured design culture. - Me, 2017
  • 8. Private Kitchen methods + knowledgeMessagesPublic Restaurant Interface Diner – Kitchen Object Relationship Relationship is the infrastructure for tasks
  • 9. Methods An object is autonomous and can DO stuff:
  • 10. An object KNOWS (private) stuff: Methods Variables
  • 11. Because it has behaviour, an object can be thought of as an “animated data store” Methods Variables Interface
  • 12. An object interacts with others via messages. Methods Variables Interface
  • 13. “You don’t send messages because you have objects, you have objects because you send messages” – Sandi Metz
  • 14. An object's autonomy doesn't extend to choices in shared standards and protocols. Methods Variables Interface
  • 15. An object's autonomy doesn't extend to choices in shared standards and protocols. Methods Variables Interface Team objects coordinate via behavioural, technical, and cultural standards.
  • 16. What is an API*? Technically, an API is a set of rules that two sides of an interaction agree to follow. It’s implemented as a public INTERFACE. * Application Programming Interface
  • 17. The value of an API It separates how an object works from the way it’s used It makes future (internal) change easier ! Bypassing it to depend on a private method is a form of technical (and organizational) debt
  • 18. Taking advantage of an API Create public interfaces that allow senders to get (or do) what they want without knowing how your team implements its behavior.
  • 19. POST GET PUT DELETE RESTful* messages types * REpresentational State Transfer
  • 20. Work on this initiative Add this team memberPOST Typical RESTful messages sent to Teams
  • 21. Work on this initiative Add this team member Do this thing differently Can you also do this thing? POST PUT Typical RESTful messages sent to Teams
  • 22. Work on this initiative Add this team member Do this thing differently Can you also do this thing? What are you working on? When will you be done? What skillsets are needed? Who is dependent on you? What skillsets does your team have? What risks are you accepting? What are your dependencies? What will be delivered? How is team morale? POST GET PUT Typical RESTful messages sent to Teams
  • 23. Work on this initiative Add this team member Do this thing differently Can you also do this thing? What are you working on? When will you be done? What skillsets are needed? Who is dependent on you? What skillsets does your team have? What risks are you accepting? What are your dependencies? What will be delivered? How is team morale? Stop working on current item(s) Reduce team size POST GET PUT DELETE Typical RESTful messages sent to Teams
  • 24. Work on this initiative Add this team member Do this thing differently Can you also do this thing? What are you working on? When will you be done? What skillsets are needed? Who is dependent on you? What skillsets does your team have? What risks are you accepting? What are your dependencies? What will be delivered? How is team morale? Stop working on current item(s) Reduce team size POST GET PUT DELETE Story map, options board Working Agreement Story map, options board Release plan Story map Skills matrix Release plan Risk assessment Defect density plot Throughput histogram Dependency graph Cumulative Flow Diagram Happiness Index Dependency graph Skills matrix Useful METHODS to respond to messages
  • 25. Show Defect Density Your Code as a Crime Scene: Adam Tornhill
  • 28. Show capability – Skills Matrix
  • 29. Show capability – Skills Matrix
  • 30. Show Throughput Troy McGinnis - https://github.com/FocusedObjective
  • 32. Show team health – Sentiment Maps
  • 33. Make your work visible – Story Maps
  • 34. Make your work visible – Cumulative Flow
  • 35. If you’re a reader: David A Taylor Business Engineering with Object Technology Dave Grey The Connected Company David West Object Thinking Sandi Metz Practical Object- Oriented Design in Ruby
  • 36. Helpful OOD principles S ingle Responsibility…. L iscov Substitution… O pen/Closed (Extension/Modification)… D ependency Inversion… I nterface segregation……………
  • 37. Unhelpful non-OOD principles S ingleton T ight Coupling U ntestable P remature Optimization I ndescriptive naming D uplication
  • 38. Thanks for your attention! @akannett andrew@leanintuit.com