SlideShare a Scribd company logo
A Case for Outside-In Design
@sandromancuso
Bias: inclination or prejudice for
or against someone or something
in way that is considered unfair.
We all have software design biases.
Structural Biases
• Code matches the sequence which requirements were described.
• Developers focus on implementing the behaviour, without worrying about mapping domain
concepts.
Procedural
• Starts with an analysis on how data across features relate. A static view of the system is created.
• Data model is used to create the database structure and entities. Behaviour away from data model.Data
• Nouns are identified and become the center piece of the design. Verbs are then attached to nouns.
• Behaviour is encapsulated in objects. Objects send messages to each other in order to collaborate.Object
• Focus on a sequence of data transformations, internal steps first. Complex behaviour via
composition.
• Side effects and mutability are controlled and isolated from the main logic
Functional
• Focus on behaviour of the business features and then the data needed for that behaviour.
• Verbs are more important than the nouns and are considered to provide the real business value.Service
• Focus on not only the actions but also all events before and after each significant action of the
system.
• Events are a key design building block. Decoupling is a key aspect of design.
Event
Operational & Architectural
Design Biases
Performance
Architectural
Patterns
Scalability CQRS/ES
Micro
Services
SOAThroughput
Containers
Actor Model Plugin etc…
Hexagonal
Design Direction Biases
•Persistence >> Domain Model >> User Interface.
•Data, and the way it is stored, is the most important aspect of the design.Persistence
•Domain Model >> Persistence >> User Interface. (a.k.a. Inside-Out)
•Domain Model is the main focus. Persistence and user interface are details of
implementation.
Domain
•User Interface >> Domain Model >> Persistence.
•Usability is the main focus. Domain Model and Persistence should only exist to
satisfy the external needs.
User
Interface
•Similar to UI. Focus on incremental design and continuous delivery, splitting
requirements in thin vertical slices. Describes how users interact with the system.
•Tests, design, and execution flow point to the same direction (outside >> inside)
Incremental
Outside-In
Design techniques and their impact.
(internal vs. external perspective)
Domain
Model
An insider’s perspective
Domain
Model
An outsider’s perspective
Domain
Model
Adapter layer and accidental complexity
Adapter
Layer
Are we over or under engineering?
Domain Model is a much wider concept than what we
see in the middle of a hexagon.
Product Backlog
(small intersection)
Small intersection, big problem
The goal of software design is to
enable companies to continuously
achieve their business goals.
A Case for Outside-In Design
The usefulness of a domain model
needs to be evaluated from an outside
(business) perspective.
Clients & Company
Functional Areas
Services ecosystem
Service
Modules
(OUTSIDE) Real domain / value
(INSIDE) Abstract sub-domain model
Strategic design
(business alignment)
Software implementation
(delivery mechanisms,
use cases, sub-domain
models, infrastructure, etc)
So, where do we start if we want to build a new
system or a set of features related to a business
outcome?
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Identifying High Cohesive Functional Areas
(birds-eye view)
Product Box
• Omni-channel, with sales over the web,
mobile, physical stores, and external
market places.
• Catalogue management per country.
• Multi-warehouse management.
• Product and supplier management.
• Orders management and support.
• Customers wish lists and favourites.
• Multiple delivery options.
• Multiple payment methods and anti-
fraud detection.
• Customer information management.
• Sales and promotion.
• Marketplace for franchisees.
Functional areas
• Basket
• Catalogue
• Warehouse
• Product
• Supplier
• Order
• Customer
• Delivery
• Payment
• Sales
• Marketplace
• Omni-channel, with sales over the web,
mobile, physical stores, and external
market places.
• Catalogue management per country.
• Multi-warehouse management.
• Product and supplier management.
• Orders management and support.
• Customers wish lists and favourites.
• Multiple delivery options.
• Multiple payment methods and anti-
fraud detection.
• Customer information management.
• Sales and promotion.
• Marketplace for franchisees.
Product Box
Product Box
Goal: Identify the most important goals and features
of the system and their respective functional areas.
Benefits:
• Creation of product roadmaps or portfolio level backlog.
• Organize the architecture according to functional areas.
• Help teams and POs to map features to functional areas.
• Enable teams organisation and planning.
• Help with the prioritisation of features related to strategic
areas.
Frequency: 1 session every 6 to 12 months. Duration: 3 hours
People involved: Business and development team
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Finding answers to the following
questions:
- What should we build in the next few months?
- Which features would give us a higher impact?
- How do we identify bounded contexts and high
level architecture?
- How do we enable teams to work in parallel?
- How do we show a plan of action to our
stakeholders?
- How do we reduce dependencies and plan for
continuous delivery?
Impact Mapping
Goal
Actor 1
Impact 1
Deliverable 1
Deliverable 2
Impact 2 Deliverable 3
Actor 2
Impact 3
Deliverable 4
Deliverable 5
Impact 4
Deliverable 6
Deliverable 7
Let’s see a real example
A Case for Outside-In Design
A Case for Outside-In Design
A Case for Outside-In Design
Impact Mapping results
• Business focus on high value features.
• Bounded Contexts defined in collaboration with
the business, enabling the ubiquitous language.
• Service candidates and high-level architecture.
• Technology stack of each bounded context /
service can be discussed in isolation.
• Easier to parallelize work across teams.
• Concrete plan of action to stakeholders.
• Easier to achieve continuous delivery due to
system modularisation.
Frequency: 1 session for each milestone (3/4 months). Duration: 1 day
People involved: Business and development team
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Functional Mapping
The goal is to understand:
• External world (users/systems) interactions with
our system(s).
• Business flows.
• Interactions between functional areas.
• Separation of concerns across functional areas.
• Define which functional areas should become
services.
Functional Mapping - Catalogue
Functional Mapping – View Catalogue
Functional Mapping – Add to Cart
Functional Mapping – View Cart
Functional Mapping – Check Out
Functional Mapping – Make the payment
Helps to identify the behaviour of each Functional Area
and the relationship among them.
Functional Mapping
Analysing
Functional
Coupling
Changes worth
considering.
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Mockups and APIs
The goal is to:
•Identify the behaviour (actions/use cases) each
service will need to provide to the external world.
•Identify the scope of the delivery mechanism.
•Define the granularity and contract of end-points
Let’s see a example
Mockups and APIs
Mockups and APIs
API Contract
Mockups
Help us identify the entry points (actions/use cases)
of our domain model.
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Outside-TDD / Design
The goal is to:
•Implement the specified behaviour in each service.
•Build features in small vertical slices.
•Use just-in-time design to build the delivery
mechanism and domain model.
•Build just enough well-designed and tested code to
satisfy the external need.
Outside-TDD
A Case for Outside-In Design
Incremental Development
Product box
Impact Mapping
Functional Mapping
User Interaction via Mockups
Outside-In TDD/Design
Omni-channel, with
sales over the web,
Catalog management
per country.
Outside-In Design Domain Modeling PracticesLevelofabstraction
Product Box
• Every 6/12
months
Impact
Mapping
• Every 3/4
months
(milestone)
Functional
Mapping
• Around once
a month
(when
exploring
new flows)
Mockups
• Once every 1
or 2 weeks
(when
building new
screens)
Outside-In
TDD
• Daily (while
building
software)
Frequency of each practice
Where do we go from here?
Business
product design
Technology
software design
We need to widen the intersection
Aligning product and software design
https://www.youtube.com/user/codurance
https://cleancoders.com/videos/comparativeDesign
Thank you
sandro@codurance.com
@sandromancuso

More Related Content

PPTX
Solid principles
PPT
Domain Driven Design (DDD)
PPTX
Solid Prensipleri
PDF
Outside-in Test Driven Development - the London School of TDD
PPTX
Domain Driven Design
PDF
Scrum + bdd + ddd
PPTX
Applying Domain-Driven Design to craft Rich Domain Models
PDF
Domain Driven Design
Solid principles
Domain Driven Design (DDD)
Solid Prensipleri
Outside-in Test Driven Development - the London School of TDD
Domain Driven Design
Scrum + bdd + ddd
Applying Domain-Driven Design to craft Rich Domain Models
Domain Driven Design

What's hot (20)

PPTX
Jira overview
PPTX
Software Architecture Patterns
PDF
Introduction to JIRA
PPTX
Domain Driven Design(DDD) Presentation
PPTX
Introduction to DDD
PPSX
Domain Driven Design
PPTX
SOLID Principles
PPTX
Introduction to Agile Software Development
PDF
Clean Code na Prática
PPTX
Feature driven development (FDD)
PDF
2018 01-code review
PPTX
Introduction to JIRA
PPT
SOLID Design Principles
PPTX
Domain driven design
PDF
Domain Driven Design
PPTX
clean code book summary - uncle bob - English version
PPTX
Whitebox testing of Spring Boot applications
PPTX
JIRA System Admin Traning
PDF
Angular
Jira overview
Software Architecture Patterns
Introduction to JIRA
Domain Driven Design(DDD) Presentation
Introduction to DDD
Domain Driven Design
SOLID Principles
Introduction to Agile Software Development
Clean Code na Prática
Feature driven development (FDD)
2018 01-code review
Introduction to JIRA
SOLID Design Principles
Domain driven design
Domain Driven Design
clean code book summary - uncle bob - English version
Whitebox testing of Spring Boot applications
JIRA System Admin Traning
Angular
Ad

Similar to A Case for Outside-In Design (20)

PDF
Power Up - Your Influence on Non-Design Deliverables
PDF
Design for business Impact: How design triggers transformation
PDF
PDF
Ni week no designer, no problem
PDF
User Experience 2: Talk@Stabilo
PPTX
Akendi
PDF
Diverge, converge, and shape - Red Hat Summit 2019
PDF
Return on Design: The business value of design for services
PDF
Look Around You - Influences on UX (UX Sofia)
PDF
1st Conference - Catherine Hills - Service Design and Design Thinking
PDF
Beyond the customer journey
PDF
Design Thinking
PPT
Why Usability Should Never Come First
PPT
Upa why usability shouldn't come first
PDF
UX-Lx -a tour of non-design deliverables
PDF
Product Design & Development Process By- Achia Nila
PDF
LPCx Barcelona: How to use the design thinking methodology to revamp your API?
PDF
2014 Evolving Your UX Process 1up
PDF
Influences on UX (Amsterdam UX Cocktail Hour)
PDF
User Experience Design: 5 Techniques for Creating Better Websites and Applica...
Power Up - Your Influence on Non-Design Deliverables
Design for business Impact: How design triggers transformation
Ni week no designer, no problem
User Experience 2: Talk@Stabilo
Akendi
Diverge, converge, and shape - Red Hat Summit 2019
Return on Design: The business value of design for services
Look Around You - Influences on UX (UX Sofia)
1st Conference - Catherine Hills - Service Design and Design Thinking
Beyond the customer journey
Design Thinking
Why Usability Should Never Come First
Upa why usability shouldn't come first
UX-Lx -a tour of non-design deliverables
Product Design & Development Process By- Achia Nila
LPCx Barcelona: How to use the design thinking methodology to revamp your API?
2014 Evolving Your UX Process 1up
Influences on UX (Amsterdam UX Cocktail Hour)
User Experience Design: 5 Techniques for Creating Better Websites and Applica...
Ad

More from Sandro Mancuso (9)

PDF
Software Modernisation: a strategic approach
PDF
Aligning Product and Software Design
PPTX
Crafted Design - LJC World Tour Mash Up 2014
PPTX
Crafted Design - ITAKE 2014
PPTX
Crafted Design - GeeCON 2014
PPTX
Legacy Code Hands-on Session
PPTX
Software Craftsmanship
PPT
How much do we know about Object-Oriented Programming?
PPT
Software Craftsmanship - JAX London 2011
Software Modernisation: a strategic approach
Aligning Product and Software Design
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - ITAKE 2014
Crafted Design - GeeCON 2014
Legacy Code Hands-on Session
Software Craftsmanship
How much do we know about Object-Oriented Programming?
Software Craftsmanship - JAX London 2011

Recently uploaded (20)

PDF
System and Network Administration Chapter 2
PDF
Understanding Forklifts - TECH EHS Solution
PDF
medical staffing services at VALiNTRY
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administration Chapter 2
Understanding Forklifts - TECH EHS Solution
medical staffing services at VALiNTRY
Design an Analysis of Algorithms II-SECS-1021-03
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
How to Choose the Right IT Partner for Your Business in Malaysia
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
System and Network Administraation Chapter 3
Design an Analysis of Algorithms I-SECS-1021-03
PTS Company Brochure 2025 (1).pdf.......
Wondershare Filmora 15 Crack With Activation Key [2025
Which alternative to Crystal Reports is best for small or large businesses.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Softaken Excel to vCard Converter Software.pdf
How Creative Agencies Leverage Project Management Software.pdf
CHAPTER 2 - PM Management and IT Context
Internet Downloader Manager (IDM) Crack 6.42 Build 41

A Case for Outside-In Design

  • 1. A Case for Outside-In Design @sandromancuso
  • 2. Bias: inclination or prejudice for or against someone or something in way that is considered unfair.
  • 3. We all have software design biases.
  • 4. Structural Biases • Code matches the sequence which requirements were described. • Developers focus on implementing the behaviour, without worrying about mapping domain concepts. Procedural • Starts with an analysis on how data across features relate. A static view of the system is created. • Data model is used to create the database structure and entities. Behaviour away from data model.Data • Nouns are identified and become the center piece of the design. Verbs are then attached to nouns. • Behaviour is encapsulated in objects. Objects send messages to each other in order to collaborate.Object • Focus on a sequence of data transformations, internal steps first. Complex behaviour via composition. • Side effects and mutability are controlled and isolated from the main logic Functional • Focus on behaviour of the business features and then the data needed for that behaviour. • Verbs are more important than the nouns and are considered to provide the real business value.Service • Focus on not only the actions but also all events before and after each significant action of the system. • Events are a key design building block. Decoupling is a key aspect of design. Event
  • 5. Operational & Architectural Design Biases Performance Architectural Patterns Scalability CQRS/ES Micro Services SOAThroughput Containers Actor Model Plugin etc… Hexagonal
  • 6. Design Direction Biases •Persistence >> Domain Model >> User Interface. •Data, and the way it is stored, is the most important aspect of the design.Persistence •Domain Model >> Persistence >> User Interface. (a.k.a. Inside-Out) •Domain Model is the main focus. Persistence and user interface are details of implementation. Domain •User Interface >> Domain Model >> Persistence. •Usability is the main focus. Domain Model and Persistence should only exist to satisfy the external needs. User Interface •Similar to UI. Focus on incremental design and continuous delivery, splitting requirements in thin vertical slices. Describes how users interact with the system. •Tests, design, and execution flow point to the same direction (outside >> inside) Incremental Outside-In
  • 7. Design techniques and their impact. (internal vs. external perspective)
  • 10. Domain Model Adapter layer and accidental complexity Adapter Layer
  • 11. Are we over or under engineering?
  • 12. Domain Model is a much wider concept than what we see in the middle of a hexagon.
  • 13. Product Backlog (small intersection) Small intersection, big problem
  • 14. The goal of software design is to enable companies to continuously achieve their business goals.
  • 15. A Case for Outside-In Design
  • 16. The usefulness of a domain model needs to be evaluated from an outside (business) perspective.
  • 17. Clients & Company Functional Areas Services ecosystem Service Modules (OUTSIDE) Real domain / value (INSIDE) Abstract sub-domain model Strategic design (business alignment) Software implementation (delivery mechanisms, use cases, sub-domain models, infrastructure, etc)
  • 18. So, where do we start if we want to build a new system or a set of features related to a business outcome?
  • 19. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 20. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 21. Identifying High Cohesive Functional Areas (birds-eye view)
  • 22. Product Box • Omni-channel, with sales over the web, mobile, physical stores, and external market places. • Catalogue management per country. • Multi-warehouse management. • Product and supplier management. • Orders management and support. • Customers wish lists and favourites. • Multiple delivery options. • Multiple payment methods and anti- fraud detection. • Customer information management. • Sales and promotion. • Marketplace for franchisees.
  • 23. Functional areas • Basket • Catalogue • Warehouse • Product • Supplier • Order • Customer • Delivery • Payment • Sales • Marketplace • Omni-channel, with sales over the web, mobile, physical stores, and external market places. • Catalogue management per country. • Multi-warehouse management. • Product and supplier management. • Orders management and support. • Customers wish lists and favourites. • Multiple delivery options. • Multiple payment methods and anti- fraud detection. • Customer information management. • Sales and promotion. • Marketplace for franchisees. Product Box
  • 24. Product Box Goal: Identify the most important goals and features of the system and their respective functional areas. Benefits: • Creation of product roadmaps or portfolio level backlog. • Organize the architecture according to functional areas. • Help teams and POs to map features to functional areas. • Enable teams organisation and planning. • Help with the prioritisation of features related to strategic areas. Frequency: 1 session every 6 to 12 months. Duration: 3 hours People involved: Business and development team
  • 25. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 26. Finding answers to the following questions: - What should we build in the next few months? - Which features would give us a higher impact? - How do we identify bounded contexts and high level architecture? - How do we enable teams to work in parallel? - How do we show a plan of action to our stakeholders? - How do we reduce dependencies and plan for continuous delivery?
  • 27. Impact Mapping Goal Actor 1 Impact 1 Deliverable 1 Deliverable 2 Impact 2 Deliverable 3 Actor 2 Impact 3 Deliverable 4 Deliverable 5 Impact 4 Deliverable 6 Deliverable 7
  • 28. Let’s see a real example
  • 32. Impact Mapping results • Business focus on high value features. • Bounded Contexts defined in collaboration with the business, enabling the ubiquitous language. • Service candidates and high-level architecture. • Technology stack of each bounded context / service can be discussed in isolation. • Easier to parallelize work across teams. • Concrete plan of action to stakeholders. • Easier to achieve continuous delivery due to system modularisation. Frequency: 1 session for each milestone (3/4 months). Duration: 1 day People involved: Business and development team
  • 33. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 34. Functional Mapping The goal is to understand: • External world (users/systems) interactions with our system(s). • Business flows. • Interactions between functional areas. • Separation of concerns across functional areas. • Define which functional areas should become services.
  • 35. Functional Mapping - Catalogue
  • 36. Functional Mapping – View Catalogue
  • 37. Functional Mapping – Add to Cart
  • 40. Functional Mapping – Make the payment
  • 41. Helps to identify the behaviour of each Functional Area and the relationship among them. Functional Mapping
  • 44. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 45. Mockups and APIs The goal is to: •Identify the behaviour (actions/use cases) each service will need to provide to the external world. •Identify the scope of the delivery mechanism. •Define the granularity and contract of end-points
  • 46. Let’s see a example
  • 50. Mockups Help us identify the entry points (actions/use cases) of our domain model.
  • 51. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 52. Outside-TDD / Design The goal is to: •Implement the specified behaviour in each service. •Build features in small vertical slices. •Use just-in-time design to build the delivery mechanism and domain model. •Build just enough well-designed and tested code to satisfy the external need.
  • 56. Product box Impact Mapping Functional Mapping User Interaction via Mockups Outside-In TDD/Design Omni-channel, with sales over the web, Catalog management per country. Outside-In Design Domain Modeling PracticesLevelofabstraction
  • 57. Product Box • Every 6/12 months Impact Mapping • Every 3/4 months (milestone) Functional Mapping • Around once a month (when exploring new flows) Mockups • Once every 1 or 2 weeks (when building new screens) Outside-In TDD • Daily (while building software) Frequency of each practice
  • 58. Where do we go from here?
  • 60. Aligning product and software design https://www.youtube.com/user/codurance