SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
System Mapping
Discover, Explore & Communicate the Real Complexity
of Your Systems
Colin Panisset @nonspecialist
@nonspecialist
Real-time Feedback
https://is.gd/last18realtime
Law of 2 feet
@nonspecialist
Runsheet (ish)
● What even are we on about here?
● Why on earth would you do this thing?
● Ok, I’m listening, how does it work?
● Show me some examples!
● I’m here for the shiny tools
● That’s lovely, tell me about some real times it helped
● Where are the tricky bits?
● I’m convinced; tell me more!
What even are we
on about here?
If this turns out to be a
presentation for a timeshare, I’ll
be quite put out
“The map is not the territory”
Alfred Korzybski
@nonspecialist
System Mapping: what is it?
A way to reveal hidden complexity
Communication and collaboration tool
Discovery
Sharing knowledge within and across teams
Documentation
Build a common understanding
Maps as Code (the why of this later)
@nonspecialist
Example 1 - microservice dependencies
@nonspecialist
Example 1 - microservice dependencies
@nonspecialist
Example 2 - software change flows
@nonspecialist
Example 2 - software change flows
@nonspecialist
Example 3
Team workflow
@nonspecialist
Why on earth
would you do this
thing?
I’m still not convinced this isn’t
about timeshares
“Ask ‘why’ five times about every
matter”
Taiichi Ohno
@nonspecialist
Why to Map?
Technology can reveal some things; e.g. distributed tracing,
but:
Takes time to implement
Requires support in software
Doesn’t cross non-technical boundaries
Can miss infrequent/unlikely connections
Only maps data flows, not process flows
@nonspecialist
Why to Map 2?
As much about the journey as the destination
Build shared understanding of the system
Not just discover data dependencies -- map change flows, or
team workflows … process mapping as well
@nonspecialist
Why to Map 3?
Discover, describe and visualise the complexity:
● show points of coupling
● bottlenecks
Discover, describe and visualise the risks:
● Dependencies with specific names, like Emma or Nathan
● Flows of data/communication with fragile path
components
@nonspecialist
Why to Map 4?
Extract and capture the hidden oral tradition; see where the
bodies are buried.
I’ve never created a map that hasn’t had someone in a team go
“wait, I had no idea that was there” or “I thought we
decommissioned that?”
Brings clarity and common understanding to great complexity
@nonspecialist
Why to Map 5?
You can map both technical and non-technical things in a
manner which is accessible, comprehensible, relevant and
informative for all sorts of people in an organisation.
Maps are far more useful for quick “at a glance”
understanding
Maps work better for people who are visual learners
The IKEA principle: collaborative mapping builds collective
ownership of the system
OK, I’m listening,
how does it work?
You aren’t trying to sell me a tool
or a package or something, are
you?
“I always want to know how things
work. Had I been Aladdin, I am
certain that just after one wish or
two, I'd have taken that old lamp
apart to see if I could make another,
better lamp.”
Walter P. Chrysler
@nonspecialist
Doing the do
Address the elephant in the room: “it can’t work in my
organisation, because … “
Start anywhere
Ask people to tell you what they know
Capture it
Get feedback and corrections
Rinse and repeat
@nonspecialist
Practical tips
Small groups and teams work better to fill in specific domains
Print it out and hang it in a high-traffic area to generate buzz
Hang it next to a sign that says “Probably wrong, please fix”
with a pen on a string
Collect it after a week (or two, or a day), incorporate the
hand-drawn bits, print and re-hang
Finding the right level of granularity can be hard; experience
helps, but refactoring is OK as well
@nonspecialist
Practical tips 2
The “right level” of granularity depends on context; in
extreme cases, printing on A0 paper so the fonts are still
legible has been known
Use of colour and shape is critical: node fill colour is most
important, then line (edge) colour, then boundary colour (you
might use that to indicate ownership)
Show me some
examples!
The plural of “anecdote” isn’t
“data”
“The greatest value of a picture is
when it forces us to notice what we
never expected to see”
John Tukey
@nonspecialist
A worked example
I’m here for the
shiny tools
See! I knew you were trying to
sell me a tool!
“The alchemists in their search for
gold discovered many other things of
greater value.”
Schopenhauer
@nonspecialist
Handy Tools
I use all open source (see, not trying to sell anything):
Graphviz
Git
xdot
Graphviz “dot” language is easy to start with
Complexity can grow rapidly
The “random” layout is a feature
Other tools have similar capabilities but UI-based ones tend
to make it hard to share as code
@nonspecialist
Why Graphviz?
It’s how I started out (so there’s an inertia, for me)
Graph as code allows you to generate different
views/visualisations from the same set of relationships
Its history, the fact that it’s code, and its (moderate) barrier to
entry actually makes it more acceptable to highly-technical
individuals and teams (leaps over the technical elitism bar)
There are some good web-based versions too
@nonspecialist
Example 1a - dependencies (alt view)
@nonspecialist
Example 1a - dependencies (alt view)
@nonspecialist
Example 1a - dependencies (alt view)
@nonspecialist
Example 1a - dependencies (alt view)!!!
@nonspecialist
Toolchain suggestions
Your Favourite Editor (YFE) -> graphviz -> git -> build pipeline
-> PNG/SVG -> static website
YFE -> graphviz -> xdot (for team interaction)
@nonspecialist
Why not Graphviz?
Many other potential tools for capturing this kind of
information; so long as they can record arbitrary
relationships, and you can focus on the connections instead of
where the things are in the map. However, might not be able
to use different visualisations of the relationships
Some examples:
https://conceptmap.io
https://www.lucidchart.com/pages/examples/concept-maps
(likely many more, too … just none that are quite the same)
That’s lovely, tell
me about some
real times it
helped
This is the point of the talk where
I’d like to hear some horror
stories
“Those who do not remember the
past are condemned to repeat it.”
George Santayana
@nonspecialist
Real world stories
Finding the people in the system (billing system A, payroll
system B)
Discovery of a dependency: the system that nearly got away
Visualisation wins: why we can’t have Nice Things
@nonspecialist
Why we (couldn’t) have Nice Things
@nonspecialist
Why we (couldn’t) have Nice Things
@nonspecialist
Sorry
Where are the
tricky bits?
There are always tricky bits
“Stamping out fires is a lot of fun, but
it is only putting things back the way
they were.”
W. Edwards Deming
@nonspecialist
Caveats
Needs a committed curator
Takes time -- definitely not an overnight fix (but what is?)
Point-in-time snapshot; keeping updated often hard (though
arguably it’s served its purpose by then)
Tooling isn’t hugely user-friendly (it’s not bad but the DSL isn’t
terribly modern)
I’d like to learn
more …
Where does he get all those
wonderful toys?
“Your ideas are intriguing to me and I
wish to subscribe to your
newsletter.”
H. Simpson
@nonspecialist
References
Graphviz: https://www.graphviz.org/
xdot: https://github.com/jrfonseca/xdot.py
Mapping System Couplings and Dependencies for Fun and Profit:
https://cevo.com.au/tools/devops/methods/2016/11/27/mapping-system
-coupling.html
The exercise repo:
https://github.com/cevoaustralia/LASTconf-2018-system-mapping.git
https://dreampuf.github.io/GraphvizOnline/
@nonspecialist
Photo Credits
What is mapping:
https://www.publicdomainpictures.net/en/view-image.php?image=151698&picture=ancient-world-
map-from-1689
Why map 1: https://www.flickr.com/photos/usmcarchives/6049891451
Why map 2: Photo by Bobby Stevenson on Unsplash
Why map 3: Photo by Juan Cruz Mountford on Unsplash
Why map 4: Photo by Linus Sandvide on Unsplash
Why map 5: Photo by Ben White on Unsplash
Doing the do: Photo by Hans-Peter Gauster on Unsplash
Practical tips: Photo by hao wang on Unsplash
Practical tips 2: Photo by Shaouraav Shreshtha on Unsplash
Handy tools: Photo by Barn Images on Unsplash
Why (and why not) graphviz: Photo by Chanakya on Unsplash
Toolchain suggestions: Photo by Fré Sonneveld on Unsplash
Real world stories: Photo by lee dahye on Unsplash
Caveats: Photo by Ricardo Rocha on Unsplash
References: Photo by Giammarco Boscaro on Unsplash
Photo credits: Photo by Mahir Uysal on Unsplash
Thank you!
Colin Panisset @nonspecialist

Más contenido relacionado

Similar a System Mapping: Discover Hidden Complexity

IWMW 2008 Mashup Workshop
IWMW 2008 Mashup WorkshopIWMW 2008 Mashup Workshop
IWMW 2008 Mashup WorkshopMike Ellis
 
BL Labs 2014 Symposium: The Mechanical Curator
BL Labs 2014 Symposium: The Mechanical CuratorBL Labs 2014 Symposium: The Mechanical Curator
BL Labs 2014 Symposium: The Mechanical Curatorbenosteen
 
Thinking Through Visualization Tools
Thinking Through Visualization ToolsThinking Through Visualization Tools
Thinking Through Visualization ToolsSam Pottinger
 
Network Mapping & Data Storytelling for Beginners
Network Mapping & Data Storytelling for BeginnersNetwork Mapping & Data Storytelling for Beginners
Network Mapping & Data Storytelling for BeginnersRenaud Clément
 
Cloudera Breakfast: Advanced Analytics Part II: Do More With Your Data
Cloudera Breakfast: Advanced Analytics Part II: Do More With Your DataCloudera Breakfast: Advanced Analytics Part II: Do More With Your Data
Cloudera Breakfast: Advanced Analytics Part II: Do More With Your DataCloudera, Inc.
 
State Mapping Redux
State Mapping ReduxState Mapping Redux
State Mapping ReduxDante Murphy
 
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Sam Livingston-Gray
 
Touchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: NotesTouchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: NotesVisnja Milidragovic
 
'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham ThomasTEST Huddle
 
Usability Testing
Usability TestingUsability Testing
Usability TestingAndy Budd
 
Explaining SSI to C-suite executives, and anyone else for that matter
Explaining SSI to C-suite executives, and anyone else for that matterExplaining SSI to C-suite executives, and anyone else for that matter
Explaining SSI to C-suite executives, and anyone else for that matterSSIMeetup
 
Creating Clarity 3.0: How to Design Great Visual Communication
Creating Clarity 3.0: How to Design Great Visual CommunicationCreating Clarity 3.0: How to Design Great Visual Communication
Creating Clarity 3.0: How to Design Great Visual CommunicationBarry Casey
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018
Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018
Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018Calin Constantinov
 
Data Science Accelerator Program
Data Science Accelerator ProgramData Science Accelerator Program
Data Science Accelerator ProgramGoDataDriven
 
Data visualisations as a gateway to programming
Data visualisations as a gateway to programmingData visualisations as a gateway to programming
Data visualisations as a gateway to programmingMia
 
Phase III Presentation
Phase III PresentationPhase III Presentation
Phase III PresentationGrey Vaisius
 
Sketching user experiences: Getting the design right and the right design
Sketching user experiences: Getting the design right and the right designSketching user experiences: Getting the design right and the right design
Sketching user experiences: Getting the design right and the right designMerve Aydın
 

Similar a System Mapping: Discover Hidden Complexity (20)

IWMW 2008 Mashup Workshop
IWMW 2008 Mashup WorkshopIWMW 2008 Mashup Workshop
IWMW 2008 Mashup Workshop
 
BL Labs 2014 Symposium: The Mechanical Curator
BL Labs 2014 Symposium: The Mechanical CuratorBL Labs 2014 Symposium: The Mechanical Curator
BL Labs 2014 Symposium: The Mechanical Curator
 
Thinking Through Visualization Tools
Thinking Through Visualization ToolsThinking Through Visualization Tools
Thinking Through Visualization Tools
 
Network Mapping & Data Storytelling for Beginners
Network Mapping & Data Storytelling for BeginnersNetwork Mapping & Data Storytelling for Beginners
Network Mapping & Data Storytelling for Beginners
 
Cloudera Breakfast: Advanced Analytics Part II: Do More With Your Data
Cloudera Breakfast: Advanced Analytics Part II: Do More With Your DataCloudera Breakfast: Advanced Analytics Part II: Do More With Your Data
Cloudera Breakfast: Advanced Analytics Part II: Do More With Your Data
 
State Mapping Redux
State Mapping ReduxState Mapping Redux
State Mapping Redux
 
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
 
Touchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: NotesTouchpoint 2012 Symposium on Interaction Design: Notes
Touchpoint 2012 Symposium on Interaction Design: Notes
 
'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas
 
Usability Testing
Usability TestingUsability Testing
Usability Testing
 
Explaining SSI to C-suite executives, and anyone else for that matter
Explaining SSI to C-suite executives, and anyone else for that matterExplaining SSI to C-suite executives, and anyone else for that matter
Explaining SSI to C-suite executives, and anyone else for that matter
 
Creating Clarity 3.0: How to Design Great Visual Communication
Creating Clarity 3.0: How to Design Great Visual CommunicationCreating Clarity 3.0: How to Design Great Visual Communication
Creating Clarity 3.0: How to Design Great Visual Communication
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
Theseus' data
Theseus' dataTheseus' data
Theseus' data
 
Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018
Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018
Calin Constantinov - Neo4j - Bucharest Big Data Week Meetup - Bucharest 2018
 
Data Science Accelerator Program
Data Science Accelerator ProgramData Science Accelerator Program
Data Science Accelerator Program
 
Data visualisations as a gateway to programming
Data visualisations as a gateway to programmingData visualisations as a gateway to programming
Data visualisations as a gateway to programming
 
Ux for data exploration
Ux for data explorationUx for data exploration
Ux for data exploration
 
Phase III Presentation
Phase III PresentationPhase III Presentation
Phase III Presentation
 
Sketching user experiences: Getting the design right and the right design
Sketching user experiences: Getting the design right and the right designSketching user experiences: Getting the design right and the right design
Sketching user experiences: Getting the design right and the right design
 

Último

Dealing with Poor Performance - get the full picture from 3C Performance Mana...
Dealing with Poor Performance - get the full picture from 3C Performance Mana...Dealing with Poor Performance - get the full picture from 3C Performance Mana...
Dealing with Poor Performance - get the full picture from 3C Performance Mana...Hedda Bird
 
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607dollysharma2066
 
Call Now Pooja Mehta : 7738631006 Door Step Call Girls Rate 100% Satisfactio...
Call Now Pooja Mehta :  7738631006 Door Step Call Girls Rate 100% Satisfactio...Call Now Pooja Mehta :  7738631006 Door Step Call Girls Rate 100% Satisfactio...
Call Now Pooja Mehta : 7738631006 Door Step Call Girls Rate 100% Satisfactio...Pooja Nehwal
 
Agile Coaching Change Management Framework.pptx
Agile Coaching Change Management Framework.pptxAgile Coaching Change Management Framework.pptx
Agile Coaching Change Management Framework.pptxalinstan901
 
Continuous Improvement Infographics for Learning
Continuous Improvement Infographics for LearningContinuous Improvement Infographics for Learning
Continuous Improvement Infographics for LearningCIToolkit
 
situational leadership theory by Misba Fathima S
situational leadership theory by Misba Fathima Ssituational leadership theory by Misba Fathima S
situational leadership theory by Misba Fathima Smisbafathima9940
 
BDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Construction Project Management | Coursera 2024
Construction Project Management | Coursera 2024Construction Project Management | Coursera 2024
Construction Project Management | Coursera 2024Alex Marques
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girladitipandeya
 

Último (20)

Dealing with Poor Performance - get the full picture from 3C Performance Mana...
Dealing with Poor Performance - get the full picture from 3C Performance Mana...Dealing with Poor Performance - get the full picture from 3C Performance Mana...
Dealing with Poor Performance - get the full picture from 3C Performance Mana...
 
Imagine - HR; are handling the 'bad banter' - Stella Chandler.pdf
Imagine - HR; are handling the 'bad banter' - Stella Chandler.pdfImagine - HR; are handling the 'bad banter' - Stella Chandler.pdf
Imagine - HR; are handling the 'bad banter' - Stella Chandler.pdf
 
Rohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 16 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Peak Performance & Resilience - Dr Dorian Dugmore
Peak Performance & Resilience - Dr Dorian DugmorePeak Performance & Resilience - Dr Dorian Dugmore
Peak Performance & Resilience - Dr Dorian Dugmore
 
Leadership in Crisis - Helio Vogas, Risk & Leadership Keynote Speaker
Leadership in Crisis - Helio Vogas, Risk & Leadership Keynote SpeakerLeadership in Crisis - Helio Vogas, Risk & Leadership Keynote Speaker
Leadership in Crisis - Helio Vogas, Risk & Leadership Keynote Speaker
 
Intro_University_Ranking_Introduction.pptx
Intro_University_Ranking_Introduction.pptxIntro_University_Ranking_Introduction.pptx
Intro_University_Ranking_Introduction.pptx
 
LoveLocalGov - Chris Twigg, Inner Circle
LoveLocalGov - Chris Twigg, Inner CircleLoveLocalGov - Chris Twigg, Inner Circle
LoveLocalGov - Chris Twigg, Inner Circle
 
Discover -CQ Master Class - Rikita Wadhwa.pdf
Discover -CQ Master Class - Rikita Wadhwa.pdfDiscover -CQ Master Class - Rikita Wadhwa.pdf
Discover -CQ Master Class - Rikita Wadhwa.pdf
 
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607GENUINE Babe,Call Girls IN Baderpur  Delhi | +91-8377087607
GENUINE Babe,Call Girls IN Baderpur Delhi | +91-8377087607
 
Becoming an Inclusive Leader - Bernadette Thompson
Becoming an Inclusive Leader - Bernadette ThompsonBecoming an Inclusive Leader - Bernadette Thompson
Becoming an Inclusive Leader - Bernadette Thompson
 
Call Now Pooja Mehta : 7738631006 Door Step Call Girls Rate 100% Satisfactio...
Call Now Pooja Mehta :  7738631006 Door Step Call Girls Rate 100% Satisfactio...Call Now Pooja Mehta :  7738631006 Door Step Call Girls Rate 100% Satisfactio...
Call Now Pooja Mehta : 7738631006 Door Step Call Girls Rate 100% Satisfactio...
 
Agile Coaching Change Management Framework.pptx
Agile Coaching Change Management Framework.pptxAgile Coaching Change Management Framework.pptx
Agile Coaching Change Management Framework.pptx
 
Empowering Local Government Frontline Services - Mo Baines.pdf
Empowering Local Government Frontline Services - Mo Baines.pdfEmpowering Local Government Frontline Services - Mo Baines.pdf
Empowering Local Government Frontline Services - Mo Baines.pdf
 
Unlocking the Future - Dr Max Blumberg, Founder of Blumberg Partnership
Unlocking the Future - Dr Max Blumberg, Founder of Blumberg PartnershipUnlocking the Future - Dr Max Blumberg, Founder of Blumberg Partnership
Unlocking the Future - Dr Max Blumberg, Founder of Blumberg Partnership
 
Continuous Improvement Infographics for Learning
Continuous Improvement Infographics for LearningContinuous Improvement Infographics for Learning
Continuous Improvement Infographics for Learning
 
situational leadership theory by Misba Fathima S
situational leadership theory by Misba Fathima Ssituational leadership theory by Misba Fathima S
situational leadership theory by Misba Fathima S
 
BDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 99 Noida Escorts >༒8448380779 Escort Service
 
Construction Project Management | Coursera 2024
Construction Project Management | Coursera 2024Construction Project Management | Coursera 2024
Construction Project Management | Coursera 2024
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Ameerpet high-profile Call Girl
 
Call Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SERVICE
Call Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SERVICECall Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SERVICE
Call Girls Service Tilak Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SERVICE
 

System Mapping: Discover Hidden Complexity

  • 1. System Mapping Discover, Explore & Communicate the Real Complexity of Your Systems Colin Panisset @nonspecialist
  • 3. @nonspecialist Runsheet (ish) ● What even are we on about here? ● Why on earth would you do this thing? ● Ok, I’m listening, how does it work? ● Show me some examples! ● I’m here for the shiny tools ● That’s lovely, tell me about some real times it helped ● Where are the tricky bits? ● I’m convinced; tell me more!
  • 4. What even are we on about here? If this turns out to be a presentation for a timeshare, I’ll be quite put out “The map is not the territory” Alfred Korzybski
  • 5. @nonspecialist System Mapping: what is it? A way to reveal hidden complexity Communication and collaboration tool Discovery Sharing knowledge within and across teams Documentation Build a common understanding Maps as Code (the why of this later)
  • 6. @nonspecialist Example 1 - microservice dependencies
  • 7. @nonspecialist Example 1 - microservice dependencies
  • 8. @nonspecialist Example 2 - software change flows
  • 9. @nonspecialist Example 2 - software change flows
  • 12. Why on earth would you do this thing? I’m still not convinced this isn’t about timeshares “Ask ‘why’ five times about every matter” Taiichi Ohno
  • 13. @nonspecialist Why to Map? Technology can reveal some things; e.g. distributed tracing, but: Takes time to implement Requires support in software Doesn’t cross non-technical boundaries Can miss infrequent/unlikely connections Only maps data flows, not process flows
  • 14. @nonspecialist Why to Map 2? As much about the journey as the destination Build shared understanding of the system Not just discover data dependencies -- map change flows, or team workflows … process mapping as well
  • 15. @nonspecialist Why to Map 3? Discover, describe and visualise the complexity: ● show points of coupling ● bottlenecks Discover, describe and visualise the risks: ● Dependencies with specific names, like Emma or Nathan ● Flows of data/communication with fragile path components
  • 16. @nonspecialist Why to Map 4? Extract and capture the hidden oral tradition; see where the bodies are buried. I’ve never created a map that hasn’t had someone in a team go “wait, I had no idea that was there” or “I thought we decommissioned that?” Brings clarity and common understanding to great complexity
  • 17. @nonspecialist Why to Map 5? You can map both technical and non-technical things in a manner which is accessible, comprehensible, relevant and informative for all sorts of people in an organisation. Maps are far more useful for quick “at a glance” understanding Maps work better for people who are visual learners The IKEA principle: collaborative mapping builds collective ownership of the system
  • 18. OK, I’m listening, how does it work? You aren’t trying to sell me a tool or a package or something, are you? “I always want to know how things work. Had I been Aladdin, I am certain that just after one wish or two, I'd have taken that old lamp apart to see if I could make another, better lamp.” Walter P. Chrysler
  • 19. @nonspecialist Doing the do Address the elephant in the room: “it can’t work in my organisation, because … “ Start anywhere Ask people to tell you what they know Capture it Get feedback and corrections Rinse and repeat
  • 20. @nonspecialist Practical tips Small groups and teams work better to fill in specific domains Print it out and hang it in a high-traffic area to generate buzz Hang it next to a sign that says “Probably wrong, please fix” with a pen on a string Collect it after a week (or two, or a day), incorporate the hand-drawn bits, print and re-hang Finding the right level of granularity can be hard; experience helps, but refactoring is OK as well
  • 21. @nonspecialist Practical tips 2 The “right level” of granularity depends on context; in extreme cases, printing on A0 paper so the fonts are still legible has been known Use of colour and shape is critical: node fill colour is most important, then line (edge) colour, then boundary colour (you might use that to indicate ownership)
  • 22. Show me some examples! The plural of “anecdote” isn’t “data” “The greatest value of a picture is when it forces us to notice what we never expected to see” John Tukey
  • 24. I’m here for the shiny tools See! I knew you were trying to sell me a tool! “The alchemists in their search for gold discovered many other things of greater value.” Schopenhauer
  • 25. @nonspecialist Handy Tools I use all open source (see, not trying to sell anything): Graphviz Git xdot Graphviz “dot” language is easy to start with Complexity can grow rapidly The “random” layout is a feature Other tools have similar capabilities but UI-based ones tend to make it hard to share as code
  • 26. @nonspecialist Why Graphviz? It’s how I started out (so there’s an inertia, for me) Graph as code allows you to generate different views/visualisations from the same set of relationships Its history, the fact that it’s code, and its (moderate) barrier to entry actually makes it more acceptable to highly-technical individuals and teams (leaps over the technical elitism bar) There are some good web-based versions too
  • 27. @nonspecialist Example 1a - dependencies (alt view)
  • 28. @nonspecialist Example 1a - dependencies (alt view)
  • 29. @nonspecialist Example 1a - dependencies (alt view)
  • 30. @nonspecialist Example 1a - dependencies (alt view)!!!
  • 31. @nonspecialist Toolchain suggestions Your Favourite Editor (YFE) -> graphviz -> git -> build pipeline -> PNG/SVG -> static website YFE -> graphviz -> xdot (for team interaction)
  • 32. @nonspecialist Why not Graphviz? Many other potential tools for capturing this kind of information; so long as they can record arbitrary relationships, and you can focus on the connections instead of where the things are in the map. However, might not be able to use different visualisations of the relationships Some examples: https://conceptmap.io https://www.lucidchart.com/pages/examples/concept-maps (likely many more, too … just none that are quite the same)
  • 33. That’s lovely, tell me about some real times it helped This is the point of the talk where I’d like to hear some horror stories “Those who do not remember the past are condemned to repeat it.” George Santayana
  • 34. @nonspecialist Real world stories Finding the people in the system (billing system A, payroll system B) Discovery of a dependency: the system that nearly got away Visualisation wins: why we can’t have Nice Things
  • 38. Where are the tricky bits? There are always tricky bits “Stamping out fires is a lot of fun, but it is only putting things back the way they were.” W. Edwards Deming
  • 39. @nonspecialist Caveats Needs a committed curator Takes time -- definitely not an overnight fix (but what is?) Point-in-time snapshot; keeping updated often hard (though arguably it’s served its purpose by then) Tooling isn’t hugely user-friendly (it’s not bad but the DSL isn’t terribly modern)
  • 40. I’d like to learn more … Where does he get all those wonderful toys? “Your ideas are intriguing to me and I wish to subscribe to your newsletter.” H. Simpson
  • 41. @nonspecialist References Graphviz: https://www.graphviz.org/ xdot: https://github.com/jrfonseca/xdot.py Mapping System Couplings and Dependencies for Fun and Profit: https://cevo.com.au/tools/devops/methods/2016/11/27/mapping-system -coupling.html The exercise repo: https://github.com/cevoaustralia/LASTconf-2018-system-mapping.git https://dreampuf.github.io/GraphvizOnline/
  • 42. @nonspecialist Photo Credits What is mapping: https://www.publicdomainpictures.net/en/view-image.php?image=151698&picture=ancient-world- map-from-1689 Why map 1: https://www.flickr.com/photos/usmcarchives/6049891451 Why map 2: Photo by Bobby Stevenson on Unsplash Why map 3: Photo by Juan Cruz Mountford on Unsplash Why map 4: Photo by Linus Sandvide on Unsplash Why map 5: Photo by Ben White on Unsplash Doing the do: Photo by Hans-Peter Gauster on Unsplash Practical tips: Photo by hao wang on Unsplash Practical tips 2: Photo by Shaouraav Shreshtha on Unsplash Handy tools: Photo by Barn Images on Unsplash Why (and why not) graphviz: Photo by Chanakya on Unsplash Toolchain suggestions: Photo by Fré Sonneveld on Unsplash Real world stories: Photo by lee dahye on Unsplash Caveats: Photo by Ricardo Rocha on Unsplash References: Photo by Giammarco Boscaro on Unsplash Photo credits: Photo by Mahir Uysal on Unsplash
  • 43. Thank you! Colin Panisset @nonspecialist