$30 off During Our Annual Pro Sale. View Details »

Metaphors are everywhere: Ideas to Improve Software Development

Metaphors are everywhere: Ideas to Improve Software Development

Let’s embark on a journey together - a journey in which we’ll weave together the realms of basketball, fiction writing, game development and trading card games to explore how these seemingly unrelated domains surprisingly intersect with the world of software development, offering fresh perspectives and insights.

Discover how concepts, strategies, and principles from these diverse domains can enhance your software development skills and creativity. Let’s celebrate the power of interdisciplinary thinking, revealing how diverse interests can invigorate your approach to software development.

Tobias Pfeiffer

October 23, 2023
Tweet

More Decks by Tobias Pfeiffer

Other Decks in Programming

Transcript

  1. Today...

    View Slide

  2. How did we get here?

    View Slide

  3. Stress

    View Slide

  4. No Sports

    View Slide

  5. There is no Escape

    View Slide

  6. Improper Carrying

    View Slide

  7. Move it, Tobi!

    View Slide

  8. View Slide

  9. No Games

    View Slide

  10. No Games
    No Programming

    View Slide

  11. No Games
    No Programming
    😭

    View Slide

  12. View Slide

  13. @spec run(map, keyword) :: any
    def run(jobs, config \\ []) when is_list(config) do
    config
    |> Benchee.init()
    |> Benchee.system()
    |> add_benchmarking_jobs(jobs)
    |> Benchee.collect()
    |> Benchee.statistics()
    |> Benchee.load()
    |> Benchee.relative_statistics()
    |> Formatter.output()
    |> Benchee.profile()
    end
    defp add_benchmarking_jobs(suite, jobs) do
    Enum.reduce(jobs, suite, fn {key, function}, suite_acc ->
    Benchee.benchmark(suite_acc, key, function)
    end)
    end

    View Slide

  14. METAPHORS ARE EVERYWHERE
    Ideas to Improve Software Development
    Tobi(as) Pfeiffer
    @PragTob
    Senior Staff Engineer @ Remote

    View Slide

  15. View Slide

  16. View Slide

  17. Learn

    View Slide

  18. Learn
    Helped in the past

    View Slide

  19. View Slide

  20. Inspired by architecture!

    View Slide

  21. Learn
    Helped in the past
    Open Questions

    View Slide

  22. Different Angle

    View Slide

  23. BASKETBALL

    View Slide

  24. THE NEW TEAM MATE

    View Slide

  25. THE NEW TEAM MATE
    Came down from first squad

    View Slide

  26. THE NEW TEAM MATE
    Came down from first squad
    ~1.95m

    View Slide

  27. THE NEW TEAM MATE
    Came down from first squad
    Arms like my legs!
    ~1.95m

    View Slide

  28. THE NEW TEAM MATE
    Came down from first squad
    Can dunk!
    Arms like my legs!
    ~1.95m

    View Slide

  29. THE NEW TEAM MATE
    Came down from first squad
    Can shoot the 3!
    Can dunk!
    Arms like my legs!
    ~1.95m

    View Slide

  30. THE NEW TEAM MATE
    Came down from first squad
    Can shoot the 3!
    Can dunk!
    Arms like my legs!
    ~1.95m
    Clearly our best player

    View Slide

  31. THE NEW TEAM MATE
    Came down from first squad
    Can shoot the 3!
    Can dunk!
    Arms like my legs!
    ~1.95m
    Clearly our best player
    Are we a
    better
    team?

    View Slide

  32. CHEMISTRY

    View Slide

  33. CHEMISTRY
    Focus

    View Slide

  34. CHEMISTRY
    Focus
    Goodbye

    View Slide

  35. BASKETBALL DEV
    ↔ DEV

    View Slide

  36. Winning vs Losing
    BASKETBALL DEV
    ↔ DEV

    View Slide

  37. Winning vs Losing
    Statistics
    BASKETBALL DEV
    ↔ DEV

    View Slide

  38. Winning vs Losing
    Statistics
    One Ball
    BASKETBALL DEV
    ↔ DEV

    View Slide

  39. HUSTLE PLAYER

    View Slide

  40. Defense
    HUSTLE PLAYER

    View Slide

  41. Defense
    All the small plays
    HUSTLE PLAYER

    View Slide

  42. Defense
    All the small plays
    Set up others
    HUSTLE PLAYER

    View Slide

  43. Glue guy!

    View Slide

  44. View Slide

  45. TEAM FIT

    View Slide

  46. BASKETBALL

    View Slide

  47. BASKETBALL
    Team Composition

    View Slide

  48. BASKETBALL
    Team Composition
    Player Types

    View Slide

  49. BASKETBALL
    Team Composition
    Player Types
    Being Glue

    View Slide

  50. FICTION WRITING

    View Slide

  51. Meet Brandon Sanderson!

    View Slide

  52. “Duh, it’s writing Tobi”

    View Slide

  53. “Duh, it’s writing Tobi”
    Single Author

    View Slide

  54. “Duh, it’s writing Tobi”
    Single Author
    Entertainment

    View Slide

  55. There are patterns!

    View Slide

  56. There are patterns!
    Tropes

    View Slide

  57. SPOILERS

    View Slide

  58. The Outsider
    TROPES

    View Slide

  59. The Outsider
    The mentor and why they… disappear
    TROPES

    View Slide

  60. There are patterns!
    Tropes
    Know why + when to use

    View Slide

  61. WORLD BUILDING

    View Slide

  62. Logical Consistency
    WORLD BUILDING

    View Slide

  63. Logical Consistency
    Bugs!
    WORLD BUILDING

    View Slide

  64. WORLD BUILDING

    View Slide

  65. Editors
    WORLD BUILDING

    View Slide

  66. Revisions!
    Editors
    WORLD BUILDING

    View Slide

  67. Revisions!
    Writing Groups!
    Editors
    WORLD BUILDING

    View Slide

  68. Revisions!
    Writing Groups!
    Spikes!
    Editors
    WORLD BUILDING

    View Slide

  69. LIMITATIONS > POWER

    View Slide

  70. HANDING OVER

    View Slide

  71. We do this… all the time?
    HANDING OVER

    View Slide

  72. FICTION WRITING

    View Slide

  73. FICTION WRITING
    (Ab-)use of Patterns

    View Slide

  74. FICTION WRITING
    (Ab-)use of Patterns
    Limitations

    View Slide

  75. FICTION WRITING
    (Ab-)use of Patterns
    Limitations
    Consistency

    View Slide

  76. FICTION WRITING
    (Ab-)use of Patterns
    Limitations
    Consistency
    Vision

    View Slide

  77. GAME DEVELOPMENT

    View Slide

  78. VISION

    View Slide

  79. COLLABORATION

    View Slide

  80. Inspiring each other
    COLLABORATION

    View Slide

  81. Inspiring each other
    Everybody Playtests
    COLLABORATION

    View Slide

  82. Every game as a reaction to the last game

    View Slide

  83. Bastion - 2011 Transistor - 2014
    Pyre -2017 Hades- 2018-2020
    Every game as a reaction to the last game

    View Slide

  84. GAME DEVELOPMENT

    View Slide

  85. GAME DEVELOPMENT
    Reaction to Last Job

    View Slide

  86. GAME DEVELOPMENT
    Reaction to Last Job
    Vision & Collaboration

    View Slide

  87. CARD GAMES

    View Slide

  88. Deck: Tech Stack / Company

    View Slide

  89. Deck: Tech Stack / Company
    Hand/Mana: Resources Available

    View Slide

  90. Deck: Tech Stack / Company
    Hand/Mana: Resources Available
    Board: Resources Deployed/Problems

    View Slide

  91. DECK BUILDING

    View Slide

  92. DECK BUILDING
    Win Condition?

    View Slide

  93. DECK BUILDING
    Win Condition?
    Matchups?

    View Slide

  94. DECK BUILDING
    Win Condition?
    Matchups?
    Weaknesses vs. Win More?

    View Slide

  95. DECK BUILDING
    Win Condition?
    Matchups?
    Weaknesses vs. Win More?
    Synergies?

    View Slide

  96. LET’S PLAY

    View Slide

  97. LET’S PLAY
    Tempo vs. value

    View Slide

  98. THE META

    View Slide

  99. THE META
    What is currently played?

    View Slide

  100. THE META
    What is currently played?
    Balance Patches & new Releases

    View Slide

  101. THE META
    What is currently played?
    Anti-Meta
    Balance Patches & new Releases

    View Slide

  102. THE META
    What is currently played?
    Anti-Meta
    Balance Patches & new Releases

    View Slide

  103. THE META
    What is currently played?
    Anti-Meta
    Balance Patches & new Releases

    View Slide

  104. THE META
    What is currently played?
    Anti-Meta
    != best decks
    Balance Patches & new Releases

    View Slide

  105. WHY CARD GAMES?

    View Slide

  106. Changes often
    WHY CARD GAMES?

    View Slide

  107. Changes often
    Testing takes days, not years
    WHY CARD GAMES?

    View Slide

  108. CARD GAMES

    View Slide

  109. CARD GAMES
    Deck Building

    View Slide

  110. CARD GAMES
    Deck Building
    Meta

    View Slide

  111. View Slide

  112. THE META

    View Slide

  113. THE META
    Basketball Play Style

    View Slide

  114. THE META
    Basketball Play Style
    Writing Style

    View Slide

  115. THE META
    Basketball Play Style
    Writing Style
    Game Design
    Writing Style

    View Slide

  116. THE META
    Basketball Play Style
    Writing Style
    Game Design
    Writing Style
    Decks Played

    View Slide

  117. FIT

    View Slide

  118. FIT
    Player Fit

    View Slide

  119. FIT
    Player Fit
    Characters, Setting & Plot

    View Slide

  120. FIT
    Player Fit
    Characters, Setting & Plot
    Game Play, Narrative, Visuals & Sound

    View Slide

  121. FIT
    Player Fit
    Characters, Setting & Plot
    Game Play, Narrative, Visuals & Sound
    Deck Building

    View Slide

  122. IT’S ALL CONNECTED

    View Slide

  123. METAPHORS ARE EVERYWHERE
    Ideas to Improve Software Development
    Tobi(as) Pfeiffer
    @PragTob
    Senior Staff Engineer @ Remote

    View Slide

  124. @PragTob
    THANKS FOR LISTENING

    View Slide

  125. View Slide

  126. Image Credit

    Erik Drost, CC BY 2.0, via Wikimedia Commons

    globalite, CC BY-SA 2.0, via Wikimedia Commons

    Keith Allison, CC BY-SA 2.0, via Wikimedia Commons

    View Slide