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

What we talk about when we talk about software

What we talk about when we talk about software

Programmers often use figurative metaphors to help others understand their novel designs. Research by cognitive linguists, such as George Lakoff, shows that metaphors are more fundamental to the way we think: the only way we can conceive of and communicate about abstract concepts is to relate them, by metaphor, to our physical selves. And you don't get much more abstract than software! We usually do not notice the metaphors we are using when describing software. However, careless use of metaphor can hinder how we design software, communicate about software design and organise ourselves to collaborate on software development. If we cannot avoid metaphor we must use it to our advantage and avoid its pitfalls. I'll share some of my own experiences of metaphor on software projects, both successful and unsuccessful.

Presented at NewCrafts 2018, Paris.

Video here: http://videos.ncrafts.io/video/275530146

Nat Pryce

May 18, 2018
Tweet

More Decks by Nat Pryce

Other Decks in Programming

Transcript

  1. What we talk about when
    we talk about software
    Evolving 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. In software, metaphor maps
    not just names but affordances
    from the familiar to the unfamiliar

    View Slide

  10. View Slide

  11. 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

  12. Figurative metaphor has a sell-by date
    iOS 6 iOS 7

    View Slide

  13. 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

  14. Technical idioms
    Library Patch Log

    View Slide

  15. Figurative metaphor is
    technical debt

    View Slide

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

    View Slide

  17. 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

  18. 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

  19. A layered architecture diagram
    Hardware
    Device Drivers
    Operating System
    Application Hardware
    Device Drivers
    Operating System
    Application
    Or?
    Which feels right?

    View Slide

  20. Where do you draw the user interface?
    Hardware
    Device Drivers
    Operating System
    Application
    User Interface

    View Slide

  21. Mapping onto different target domains
    Up
    Down
    etc.
    More
    Less
    Happy
    Sad
    Pure
    Corrupt
    Abstract
    Concrete
    People
    Animals
    Controlling
    Controlled

    View Slide

  22. Vertical orientation in UML
    Or?
    Shape
    Circle
    Rectangle
    Shape
    Circle
    Rectangle
    Which feels right?

    View Slide

  23. Vertical orientation
    ABSTRACT IS UP
    CONTROL IS UP
    PEOPLE IS UP
    HARDWARE IS DOWN
    (STATIC) DEPENDENCIES POINT
    DOWNWARDS
    ...

    View Slide

  24. Containment
    PROGRAMMING LANGUAGES ARE CONTAINERS
    CONTROL AT THE CENTER
    VULNERABLE IN THE CENTER
    “The code is written in Java”
    Encapsulation
    Leaky abstractions
    CPU & peripherals
    ...

    View Slide

  25. 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

  26. 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

  27. Example: size related to importance
    https://en.wikipedia.org/wiki/Sociogram

    View Slide

  28. 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

  29. Database
    ORM
    Domain Model
    UI
    Or?
    Database
    ORM
    Domain Model
    UI
    Which feels right?
    Inadvertent entailment: layers, balance, size

    View Slide

  30. 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

  31. How we describe a system affects how
    we plan to build it
    Linear metaphor led to linear development and a big-bang release of all functionality
    Publication
    Payment
    Licensing
    Decision
    Review
    Reviewer
    invitation
    Quality
    check
    Manuscript
    Submission

    View Slide

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

    View Slide

  33. 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

  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

    View Slide

  37. 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

  38. Metaphor precedes
    Conway's Law

    View Slide

  39. Summary
    ❖ Metaphor maps behaviour from one domain to another
    ❖ Metaphor helps and hinders
    ❖ Figurative metaphor is technical debt
    ❖ Cognitive metaphor is inescapable
    ❖ Metaphor precedes Conway's Law

    View Slide