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
A Layered Architecture Diagram Hardware Device Drivers Operating System Application Hardware Device Drivers Operating System Application Or? Which feels right?
“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
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…”
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
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…”
A Layered Architecture Diagram Hardware Device Drivers Operating System Application Hardware Device Drivers Operating System Application Or? Which feels right?
Containment PROGRAMMING LANGUAGES ARE CONTAINERS CONTROL AT THE CENTER VULNERABLE IN THE CENTER “The system is in Java” Encapsulation Leaky abstractions Privilege ring levels ...
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
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.”
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.”
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
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