Crayon Drawing Is a Vital Engineering Skill

Date Tuesday, 25 October, 2022 - 14:00–14:20
Presenter Murali Suriar, Snowflake
URL https://www.usenix.org/conference/srecon22emea/presentation/suriar-crayon

Abstract

Complex systems are difficult to understand, and such understanding, once obtained, is difficult to communicate to others. Both of these increase the difficulty of learning about the system, and increase the time it takes for new team members to feel comfortable proposing and making changes to such systems.

System overview diagrams are one tool which can be very helpful in mitigating these challenges. This talk will walk through system overview diagrams from different problem domains, and discuss the benefits such diagrams can yield.

Notes

  • Currently SRE at Snowflake
  • @msuriar on Twitter
  • Diagrams can make good abstractions to explain system structure
  • Standard diagrams build shared understanding
    • It’s less important for them to be 100% accurate. Being mostly accurate is often good enough.
  • System diagrams are good for:
    • onboarding
    • shared understanding
    • reasoning about the system
    • identifying potential changes
    • understanding impact of proposed changes to a system / the overall system design
  • msuriar himself has gone all-in on mermaidjs
  • Automatically creating diagrams is difficult, because thinking of the right abstractions is a human thing (the designers/operators tend to label which things are actually important, how to group related things together, etc)
  • Tip: when working with electronic diagrams, make use of hyperlinks. Make drawings of components link to their design docs or service pages.