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

Designed Stickiness

Designed Stickiness

NCrafts 2016, Paris

330627d5f564b710721236077903ed60?s=128

Mathias Verraes

May 13, 2016
Tweet

Transcript

  1. Designed Stickiness @mathiasverraes

  2. @mathiasverraes verraes.net Student of Systems Meddler of Models Labourer of

    Legacy
  3. None
  4. Let's talk about metaphors that stick

  5. Great metaphors create opportunity

  6. ( ... even if it takes a while )

  7. «Breakthrough: An opportunity opens up to transform your software into

    something more expressive and versatile than you expected.»1 1 "Domain-Driven Design", Eric Evans, 2004
  8. Breakthroughs are often linguistic.

  9. Language is not a tool like metalworking or writing It's

    how our brains are wired2 2 "The Language Instinct - How the Mind Creates Language", Steven Pinker, 1994
  10. Some language is more sticky Advertisers learned this a long

    time ago
  11. Ceci n'est pas le Ping-Pong.

  12. Microservices vs SCS-architecture

  13. The optimistic age of OOP Objects as a thinking tool4

    Anthropomorphic objects5 Objects as projections of the mind ... 5 "Object Design: Roles, Responsibilities, and Collaborations", Rebecca Wirfs-Brock & Alan McKean, 2003 4 "Object Thinking", David West, 2004
  14. Mainstream OOP: Objects as a way to structure imperative code

  15. Logger { log(...) { ... } }

  16. Execution in the Kingdom of Nouns6 6 http://steve-yegge.blogspot.be/2006/03/execution-in- kingdom-of-nouns.html

  17. A healthy obsession with language

  18. None
  19. Log { append(...) { ... } }

  20. Metaphors as objects

  21. «His people are completely literal. Metaphors go over his head.»

  22. «Nothing goes over my head. My reflexes are too fast,

    I would catch it.»
  23. Example: Data Matching Paying money based on usage of content

    Determine ownership based on matches in data
  24. Data sources: Own research by employees Off shore data cleaning

    Public wiki-style Public but curated Private, paid Direct submissions from individuals Agencies representing owners
  25. Lots of incentives for fraud

  26. Is this our Core Domain? ✗ It's just technical data

    imports ⬜ ⬜ ⬜ ⬜
  27. Is this our Core Domain? ✗ It's just technical data

    imports ✗ Business is not interested ⬜ ⬜ ⬜
  28. Is this our Core Domain? ✗ It's just technical data

    imports ✗ Business is not interested ✔ Money changing hands ⬜ ⬜
  29. Is this our Core Domain? ✗ It's just technical data

    imports ✗ Business is not interested ✔ Money changing hands ✔ The code you keep secret ⬜
  30. Is this our Core Domain? ✗ It's just technical data

    imports ✗ Business is not interested ✔ Money changing hands ✔ The code you keep secret ✔ Oldest code in the system
  31. Event Storming

  32. Temporality The quality of data changes over time, based on

    who changes it
  33. Missing concept: Matching Data => ?

  34. Missing concept: Matching Data => Earning Trust

  35. Trust as a sticky metaphor Adopted by business

  36. Adopted into Ubiquitous Language

  37. The business started getting interested and involved

  38. What if Trust was a tangible thing in our domain

    model?
  39. Trust as a Value Object

  40. Trust can be passed around

  41. Trust attracts behaviour

  42. Strategies for changing Trust Event-based workflows

  43. 0 <-> 5 <-> 10

  44. A Trust Arithmetic Invented by the business 0 <-> 5

    <-> 10 Group (closure, associativity, identity, invertibility)
  45. «Habitable software (...) enables people to understand its construction and

    intentions and to change it comfortably and confidently.»7 Programmers are not the only ones inhabiting our systems 7 "Patterns of Software", Richard P. Gabriel, 1996
  46. Example: Phone call bill rating

  47. Price per minute, price after the 60th minute Bundles: Credit

    minutes, lower rates Subscriptions: recurring bundles Promotions and incentives End of month transfers, expiries Flexible rating strategies in different markets
  48. "It's just an algorithm"

  49. Missing Metaphor: Buckets

  50. None
  51. None
  52. Mental Model ~ Visual Model ~ Implementation Model

  53. New opportunity: Long lead time to change pricing => Lively

    experimentation with pricing
  54. System Metaphors (XP) are too ambitious

  55. Metaphors are not specifications

  56. Small, local metaphors

  57. How to find metaphors? It's not magic, it's awareness

  58. Modelling is spending time with the problem

  59. Obsess over language

  60. Visualise different models (structural, temporal, spatial...)

  61. Grasp the underlying principles of the problem and the domain

  62. «[A paradigm change] can happen in a millisecond. All it

    takes is a click in the mind, a falling of scales from the eyes, a new way of seeing.»8 8 "Thinking in Systems", Donella H. Meadows, 2008
  63. Thank you — verraes.net @mathiasverraes verraes.net/workshops dddeurope.com