Slide 1

Slide 1 text

Bild:[December 21, 1944], HQ Twelfth Army Group situation map https://www.loc.gov/item/2004630293
 @Tom_Asel
 Applying Wardley Maps …
 
 … to YOUR domain!
 Battle of Antietam, Md., LoC https://www.loc.gov/item/gvhs01.vhs00259/


Slide 2

Slide 2 text

What is YOUR domain?

Slide 3

Slide 3 text

https://www.uml-diagrams.org My domain: Software Architecture https://www.uml-diagrams.org https://jaxenter.de/domain-driven-design-2 https://alistair.cockburn.us/hexagonal-architecture475 https://twitter.com/NathanLee/status/890136808109027328

Slide 4

Slide 4 text

? 
 Considerations
 In my domain...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … what types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 5

Slide 5 text

? 
 Considerations
 In my domain ...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … which types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 6

Slide 6 text

• Don't get bogged down in the complexity of your domain. • Start with a schema that helps to identify Users and needs in your context. Explore your domain!
 Focus on the essentials!
 Purpose
 Scope
 User (Anchors)
 Needs
 Moral imperative “Why of Purpose” What is on scope, What not? Find Focus! Who are The Users within Scope? “Know your Users” What are their needs?

Slide 7

Slide 7 text

Purpose
 Scope
 User (Possible Anchors)
 Needs


Slide 8

Slide 8 text

! 
 Purpose
 Scope
 User
 Needs
 We produce high quality software products by providing just enough architecture to get the Job done in Time! Always! IN: Development Operations Project Mngmt OUT: Marketing Customer Care Sales Developer Functioning Workspace Quality culture Start small
 ! 


Slide 9

Slide 9 text

Anchor
 Foo
 Bar
 Baz
 Boo
 Visibility
 Start small
 Need
 • Start with a single user and only few needs. • You can always add more to the map later on. • Do so, if the map proofs to be valuable only. • Collect potentially useful capabilities • Keep in mind: There is no such thing as a perfect map. • Don’t waste too much time on trying to create on

Slide 10

Slide 10 text

A clean start ...
 … simplifies further mapping
 Visibility
 Novel
 Best
 Evolution
 Emerging
 Good
 Dev-Team
 Foo
 Bar
 Baz
 
 
 
 Boo
 Modifiability
 Time behaviour


Slide 11

Slide 11 text

? 
 Considerations
 In my domain...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … what types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 12

Slide 12 text

Evolution & Movement
 Evolution
 Uncharted Domain
 Industrialised Domain
 Chaotic
 Uncertain
 Unpredictable
 Changing
 Different
 Exciting
 Future Worth
 Unusual
 Rare
 Poorly Understood
 Experimentation
 Differential
 Competitive Advantage
 
 
 Ordered Known Measured Stable Standard Obvious Low Margin Essential Ubiquitous Defined Volume Operations Operational Efficiency Cost of Doing Business Past
 Future


Slide 13

Slide 13 text

What is the state of evolution for this?
 Evolution
 Uncharted Domain
 Industrialised Domain
 Chaotic
 Uncertain
 Unpredictable
 Changing
 Different
 Exciting
 Future Worth
 Unusual
 Rare
 Poorly Understood
 Experimentation
 Differential
 Competitive Advantage
 
 
 Ordered Known Measured Stable Standard Obvious Low Margin Essential Ubiquitous Defined Volume Operations Operational Efficiency Cost of Doing Business Architectural component


Slide 14

Slide 14 text

Characterize evolution!
 Architectural component
 Our understanding of code
 Testability
 Robustness
 Available Support
 Stability
 Code Quality
 Maturity of technologies used
 Available Resources
 Knowledge of technologies used
 • Find the characteristics of the components of your domain • Collect, map, brainstorm, … them!

Slide 15

Slide 15 text

Visibility
 Experimental
 Sustainable Planning
 Evolution
 Usable
 Efficient
 • Characteristics change as capabilities evolve • Find appropriate names for the stages of evolution Characterize evolution!


Slide 16

Slide 16 text

Visibility
 Evolution
 Uncharted Domain
 Industrialised Domain
 Efficient
 Usable
 Experimental
 A map of a systems architectural building blocks
 + testing + robustness Web-UI
 Contract Handling
 Authorization
 Message Broker 
 lack of knowledge of modern technologies AI-Advisor
 Contract-System Adapter
 Maintenance-Team
 REST API
 Sustainable Planning


Slide 17

Slide 17 text

? 
 Considerations
 In my domain...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … what types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 18

Slide 18 text

“Everything evolves through supply and demand competition”
 
 - Simon Wardley


Slide 19

Slide 19 text

Advice: 
 Investigate domain-specific effects on evolution
 • What enables or hinders movement? De-Accelerators
 Accelerators
 + Movement

Slide 20

Slide 20 text

Visibility
 Evolution
 Uncharted Domain
 Industrialised Domain
 Product
 Custom
 Genesis
 What forces affect evolution?
 Commodity
 Platform
 + Competition

Slide 21

Slide 21 text

Visibility
 Evolution
 Uncharted Domain
 Industrialised Domain
 Efficient
 Usable
 Experimental
 What forces affect evolution?
 Sustainable Planning
 Platform
 + Competition Architectural component
 Software Aging
 Past success with legacy infrastructure


Slide 22

Slide 22 text

? 
 Considerations
 In my domain...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … what types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 23

Slide 23 text

Map your understanding!
 ● Anchor: Yourself / Team / …
 
 ● Visibility: Relevance for you / Team / …
 
 ● Evolution: Degree of your understanding
 
 ● Choose appropriate names for the stages of evolution (e.g. Practice)
 
 ● Movement: What can be done to improve your understanding
 Visibility
 Novel
 Best
 Evolution
 Emerging
 Good


Slide 24

Slide 24 text

Visibility
 Evolution
 Uncharted Domain
 Industrialised Domain
 Good
 Emerging
 Novel
 How well is our understanding of the building blocks of a system?
 Dev-Team
 Best
 Web UI
 AI-Advisor
 (experimental)
 Authorization
 
 
 
 
 
 Contracting Module
 
 
 
 
 
 
 Messaging-System
 Adapter
 
 
 
 
 
 
 Message Broker
 (COTS, Standards)
 REST API


Slide 25

Slide 25 text

Use symbols for different types of capabilities
 Visibility
 Genesis
 Commodity
 Evolution
 Custom
 Product
 Novel
 Best
 Emerging
 Good
 Experimental
 Sustainable Planning
 Usable
 Efficient
 • For example: • Products: What we use • Understanding: What we know • Artifacts: What we create • Name the stages of evolution to fit the capability types characteristics • Provide a visual legend Artifacts:
 Understanding:
 Products:


Slide 26

Slide 26 text

Visibility
 Evolution
 Uncharted Domain
 Industrialised Domain
 Good
 Product
 Emerging
 Custom
 Novel
 Genesis
 Map: Intended strategy to improve our knowledge
 Contracting Module
 Dev-Team
 Best
 Commodity
 Process
 Know-How
 Understanding of Contract Platform Platform Documentation
 Contracting-
 Platform (Commercial product)
 Missing knowledge of contracting platform
 Expert knowledge on processes not yet established
 + Training, Onboarding
 + Workshop with Platform Provider
 + Demand adequate
 documentation
 + Cross-Functional Team 
 with Domain Experts
 Efficient
 Usable
 Experimental
 Sustainable Planning


Slide 27

Slide 27 text

? 
 Considerations
 In my domain...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … what types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 28

Slide 28 text

Patterns of YOUR domain!


Slide 29

Slide 29 text

Patterns of YOUR domain!
 !! ! ! ! ! ! !!! ! ! !!! ! ! !!! ! ! ! !! !!! !!!

Slide 30

Slide 30 text

Create a library of patterns for your domain!
 • Find the patterns that can be of value in your domain • Enhance them with existing domain knowledge. • Define new patterns specific to your domain • Don't be afraid to leave out things that don't apply to your domain. • Ditch what is not of use but challenge your assumptions!

Slide 31

Slide 31 text

? 
 Considerations
 In my domain...
 ● … which capabilities are of strategic importance?
 ● … what are the characteristics of evolution?
 ● … what forces drive evolution?
 ● … what types of capabilities are relevant?
 ● … what patterns do apply?
 ? 


Slide 32

Slide 32 text

! 
 Don’t explain the method beforehand.
 Just use it. 
 ● “Nobody cares about your precious framework”
 - Ben Mosior
 
 ● Let the other person decide if they want to dive deeper.


Slide 33

Slide 33 text

TOM ASEL
 @Tom-Asel
 Tom Asel
 Tom Asel
 [email protected]
 +49 6252 6033 536
 www.tom-asel.de
 Q & A