Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What we talk about when we talk about software

Nat Pryce
October 05, 2017

What we talk about when we talk about software

Half-formed thoughts about metaphor, technical debt & Conway's law.

Presented at Software Craftsmanship London 2017

Video of the presentation: https://youtu.be/syLjjmRgTsE

Nat Pryce

October 05, 2017
Tweet

More Decks by Nat Pryce

Other Decks in Programming

Transcript

  1. What we talk about when
    we talk about software
    Half-formed thoughts about metaphor, technical debt & Conway's law
    Nat Pryce
    [email protected]
    @natpryce
    github.com/npryce
    speakerdeck.com/npryce

    View Slide

  2. A Layered Architecture Diagram
    Hardware
    Device Drivers
    Operating System
    Application Hardware
    Device Drivers
    Operating System
    Application
    Or?
    Which feels right?

    View Slide

  3. The Desktop User Interface

    View Slide

  4. Metaphor Stretched Ad Absurdum

    View Slide

  5. Block-based programming
    Image CC-BY-SA 2.0 Wikipedia user Infofiltrage

    View Slide

  6. Unix Pipes
    tr -cs A-Za-z '\n' |
    tr A-Z a-z |
    sort |
    uniq -c |
    sort -rn |
    sed ${1}q

    View Slide

  7. “Each XP software project is guided by a
    single overarching metaphor. Sometimes the
    metaphor is "naive". ... Sometimes the metaphor
    needs a little explanation.
    The words used to identify technical entities
    should be consistently taken from the chosen
    metaphor.”
    eXtreme Programming Explained, Kent Beck, 1999
    XP's System Metaphor

    View Slide

  8. An Experience with System Metaphor

    View Slide

  9. View Slide

  10. Figurative Metaphor
    Metaphors We Live By, Lakoff and Johnson, 1980.
    “...in getting us to try to understand
    how it could be true, it makes
    possible a new understanding…”

    View Slide

  11. Figurative Metaphor Has A Sell By Date
    iOS 6 iOS 7

    View Slide

  12. Idioms: Metaphors that have Kicked the Bucket
    Figurative metaphors can become
    common phrases in language
    When we forget the original meaning of
    the phrase, it loses its explanatory
    power.
    The phrase fossilises as an idiom

    View Slide

  13. Technical Idioms
    Library Patch Log

    View Slide

  14. Figurative metaphor is
    technical debt

    View Slide

  15. Cognitive Metaphor
    We live
    ➢ in the physical world
    ➢ in social groups
    We conceptualise anything
    more abstract as metaphor

    View Slide

  16. Example: MORE IS UP
    From The Guardian website, 15/05/2014:
    “OVO Energy raises prices 3%”
    “...soaring values have revived idea of selling
    part of property portfolio...”
    “...nation's top 10% owning 44% of household
    wealth...”
    “Ministry of justice figures show number of
    convictions fell by only 69...”
    “Labour's nosedive in the opinion polls…”

    View Slide

  17. Cognitive Metaphor Domains
    Up/Down, Close/Far, Facing towards/away
    Large/Small
    Inside/Outside, Boundary, Surface
    Extent, Covering, …
    Light/Heavy
    Bright/Dark
    Parent/Child, Siblings, ...
    ...
    Orientation
    Size
    Containment
    Surface
    Weight
    Shade
    Family
    ...

    View Slide

  18. A Layered Architecture Diagram
    Hardware
    Device Drivers
    Operating System
    Application Hardware
    Device Drivers
    Operating System
    Application
    Or?
    Which feels right?

    View Slide

  19. Did I predict correctly?
    Hardware
    Device Drivers
    Operating System
    Application
    User Interface

    View Slide

  20. Mapping onto Different Target Domains
    Up
    Down
    etc.
    More
    Less
    Happy
    Sad
    Pure
    Corrupt
    Abstract
    Concrete
    People
    Animals
    Controlling
    Controlled

    View Slide

  21. Vertical Orientation in UML
    Or?
    Shape
    Circle
    Rectangle
    Shape
    Circle
    Rectangle
    Which feels right?

    View Slide

  22. Vertical Orientation
    ABSTRACT IS UP
    CONTROL IS UP
    PEOPLE IS UP
    HARDWARE IS DOWN
    (STATIC) DEPENDENCIES POINT
    DOWNWARDS
    ...

    View Slide

  23. Containment
    PROGRAMMING LANGUAGES ARE CONTAINERS
    CONTROL AT THE CENTER
    VULNERABLE IN THE CENTER
    “The system is in Java”
    Encapsulation
    Leaky abstractions
    Privilege ring levels
    ...

    View Slide

  24. User-facing features
    Front-end developer
    Database back-end
    Externally facing services
    ...
    Orientation: Facing Towards Something
    THE SYSTEM FACES THE USER
    THE SYSTEM FACES OTHER SYSTEMS

    View Slide

  25. Size
    Big Data
    “Big Iron” (mainframes)
    Software design diagrams
    could make better use of
    BIG IS IMPORTANT
    BIG IS IMPORTANT
    BIG IS POWERFUL

    View Slide

  26. Example: Size Related to Importance
    https://en.wikipedia.org/wiki/Sociogram

    View Slide

  27. Entailment and Coherence
    Read: “Following the report,
    shares in XYZ Plc took a
    nosedive and were in
    freefall by close of trading.”
    Think: “I should bail out of
    my investment in XYZ Plc.
    before the stock hits rock
    bottom.”

    View Slide

  28. Database
    ORM
    Domain Model
    UI
    Or?
    Database
    ORM
    Domain Model
    UI
    Which feels right?
    Inadvertent Entailment: Layers, Balance, Size

    View Slide

  29. Metaphorical Blinkers
    Image CC-BY-SA 2.0 Pete Markham
    Metaphors We Live By, Lakoff and Johnson, 1980.
    “In allowing us to focus on one
    aspect of a concept, a metaphorical
    concept can keep us from focusing
    on other aspects of the concept that
    are inconsistent with the metaphor.”

    View Slide

  30. How we describe a system affects how
    we plan to build it
    Publication
    Payment
    Licensing
    Decision
    Peer
    review
    Reviewer
    invitation
    Quality
    check
    Manuscript
    Submission
    Rejection
    Rejection
    A linear timeline, led to linear development and a big-bang release of all functionality

    View Slide

  31. An alternative depiction
    Reformulate the solution in terms of containment & facing

    View Slide

  32. Conway's Law
    Any organization that designs a system
    (defined broadly) will produce a design
    whose structure is a copy of the
    organization's communication structure.
    – Melvin Conway

    View Slide

  33. Conway's Law rephrased
    If you have four groups working on
    a compiler, you'll get a four-pass
    compiler.
    – Eric S. Raymond

    View Slide

  34. Conway's Law rephrased
    If you have four groups working on
    a compiler, you'll get a four-pass
    compiler.
    – Eric S. Raymond

    View Slide

  35. Conway's Law rephrased
    If you have four groups working on
    a compiler, you'll get a four-pass
    compiler.
    – Eric S. Raymond

    View Slide

  36. Conway's Law rephrased
    If you have four groups working on
    a compiler, you'll get a four-pass
    compiler.
    – Eric S. Raymond
    A metaphor

    View Slide

  37. Metaphor precedes
    Conway's Law

    View Slide

  38. Summary
    ❖ Metaphor helps and hinders
    ❖ Figurative metaphor is technical debt
    ❖ Cognitive metaphor is inescapable
    ❖ Metaphor precedes Conway's Law

    View Slide