Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

The Desktop User Interface

Slide 4

Slide 4 text

Metaphor Stretched Ad Absurdum

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

“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

Slide 8

Slide 8 text

An Experience with System Metaphor

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

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…”

Slide 11

Slide 11 text

Figurative Metaphor Has A Sell By Date iOS 6 iOS 7

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Technical Idioms Library Patch Log

Slide 14

Slide 14 text

Figurative metaphor is technical debt

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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…”

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Metaphor precedes Conway's Law

Slide 38

Slide 38 text

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