Building Memory Palaces From Ontological Slime

Software is complex and made from slime.

It is complex both in the everyday sense, and in the more technical sense used by complexity science. It is slime in that software is continually forced to engage with real world systems very unlike the laws of highschool physics, systems where rules are very local and contingent. William Wimsatt calls this "ontological slime".

This complexity is why agile software development and design are effective, including the usefulness of human feedback and of reducing localised complexity in code. We also have an agile idea, from Peter Naur, that a large part of programming is building and improving a model of the system in the programmer’s head. What does that imply about the worldview of an effective programmer? Because software is a complex system, a great developer needs survival techniques for navigating and building beautiful machines out of causal thickets and ontological slime.


Outline/Structure of the Talk

  1. 00-15 min Intro and Background
    1. Software Is Complex, Has meaning determined by use
    2. Programming is
      1. Engineering in computational materials - Feathers / Ainsworth
      2. Theory building - it happens mostly in your head, in dialogue/game with code as artifact
    3. This tells us something about the world … Or at least the worldview we need for programming
    4. Agile and pragmatic philosophy
  2. 15-30min Software as complex system - Ladyman and Crutchfield’s 8 criteria for a complex system (main place to cut down if needed)
  3. 30-45min Slime and Causal Thickets
    1. William C. Wimsatt - Re-engineering Philosophy for Limited Beings
      1. Some physical regularities, like gravity, seem to extend throughout the universe; others may be more local
      2. causal thickets, “ontological primal slime”
    2. The everyday work of a programmer is building theories out of ontological slime: Wimsatt + Naur
      1. Hospital example - intersecting complex domains
    3. Refactoring - when common structural elements in code are found across these local pockets of understanding, complexity radically reduces
      1. Parnas / Feathers
    4. Software development is construction from both planes of regularity and vast quantities of refined ontological slime

Learning Outcome

Lightning strike of inspiration into the very nature of software. Skills gained: causal thicket identification and ontological slime gardening. A good way to survive being lost in a forest of thorns is to realise you are in one.

Target Audience

Developers, Managers, Testers, Designers, Lost Philosophers

Prerequisites for Attendees

Development experience and some patience with a handful of colourful and useful jargon from philosophy of science.

schedule Submitted 1 year ago

Public Feedback

    • Liked Vered Netzer

      Vered Netzer - agile Leadership - why the army is the most agile organisation I've ever been in

      20 Mins

      It is time to talk about ‘agile Leadership’.

      Reflecting on 7 years of experience in the Israeli army I’ll be sharing stories and insights about how the army REALLY operates.

      The army is not as ‘Command & Control’ as people commonly expects – it is much more empowering and agile than you’d think.

      At the army, I’ve learnt the true meaning of cross functional teams, the importance of reflection, feedback, creative problem solving, trust, teamwork, conflict resolution, resilience & responding to change.

      This talk will be intertwined with army (and civilian) war stories & tips for leaders in an agile world. This talk aims to inspire a new wave of Agile Leaders, through sharing examples of effective leadership, it draws on real, lived experiences and concepts (directly from the ‘horse mouth’) as well as useful takeaways that attendees can take back and apply to their work.