Category Archives: Thinking about Thinking

Shared Vocabulary, Problem Solving, and Domain Driven Design

In The Science of Screwing Up, Wired Magazine discusses Kevin Dunbar: “a researcher who studies how scientists study things — how they fail and succeed”.

When Dunbar reviewed the transcripts of [a meeting involving people from numerous disciplines], he found that the intellectual mix generated a distinct type of interaction in which the scientists were forced to rely on metaphors and analogies to express themselves. (That’s because, unlike [his comparison group of specialists,] the E. coli group, the second lab lacked a specialized language that everyone could understand.) These abstractions proved essential for problem-solving, as they encouraged the scientists to reconsider their assumptions. Having to explain the problem to someone else forced them to think, if only for a moment, like an intellectual on the margins, filled with self-skepticism.

Interestingly, the Domain Driven Design book makes a similar plea:

When domain experts use this LANGUAGE in discussions with developers or among themselves, they quickly discover areas where the model is inadequate for their needs or seems wrong to them. The domain experts (with the help of the developers) will also find areas where the precision of the model-based language exposes contradictions or vagueness in their thinking.

However, I find the essence of the two discussions to be slightly different:

  • The Domain Driven Design book encourages developers and architects to move towards one language, that can be shared between the stakeholders.
  • Dunbar found that the process of “working around” the differences in the languages and concepts produced the real results, of finding a common understanding.
  • I think the correct solution lies somewhere between these two extremes.

    The Process of Everyday Things

    How do you decide to push on a door, or pull it?

    How is a fiction book structured? Does it even have a structure? Does structure destroy the writing’s artistry, or improve it? Does the author simply start at page one, and keep going until he/she is done? Can they plan the work? Or does it take shape over time as the story meanders?

    Have you ever read something which covers a seemingly-simple thing in incredible detail? Something so simple you take it for granted?

    How about something so complicated that you rely on your subconscious to figure it out?

    The snowflake model by Randall Ingermanson covers a process for writing fiction in great detail. As the author says: “Good fiction doesn’t just happen, it is designed.” I’ve never read any of his books, and probably wouldn’t want to given his subject matter, but none of his fiction books rank under 4 and a half stars on Amazon

    The Practice of Leadership blog covers how to read and digest a non-fiction book. Again in great detail. And the detail of it reminds me what opportunities I’m missing when I plough through non-fiction texts.

    The Manager Tools Podcasts cover the minutae of accepting an apology, in a discussion lasting about 30 minutes.

    Try imagine describing “how to accept an apology” to someone right now. How long does it last? Spread out your explanation a bit.. expand on it… have you got to 5 minutes yet?

    The Design of Everyday Things by Donald Norman is a classic book for programmers and designers of physical objects alike. It covers seemingly simple things, such as doors handles, in great detail. Sound boring? How about when he discusses that the same problems apply to levers in nuclear powerstations?

    Once you’ve read it, it changes the way you think about every door you come to and every button you press or lever you pull.

    These are all things that intrigue me.. and not just because of their subject matter. I can’t precisely say why, but I get a huge thrill when reading something that has been thought through rigorously, in great detail, and then explained well.

    And yet I generally think of myself as a “big picture” guy. Perhaps it’s because I love integrating this sort of information into a “bigger whole,” and actively do so continuously in my daily life.

    I think that’s why A Pattern Language by Christopher Alexander interests me so much. Where else can you find someone that’s worked though all of these items, and then covered all the levels between for extra measure.

    • The size of independent regions (countries), by taking the number of person-to-person links into account.
    • The height of ceilings, and their impact on social interactions.
    • The 13 variables of office space. (Examples are “Presence or absence of a wall immediately behind you”, “Distance to the nearest person,” and “Number of people you are aware of from your workplace”)

    So is it just me? Or is this universal?

    As an aside: I find my edition of “The Design of Everyday Things” incredibly difficult to read, due to horrible typefacing and layout choices. I’ve no idea why – and every person I’ve lent it to has remarked on the same thing.

    And I find the Pattern Language web site very difficult to navigate. Of course, the physical book works better than the website… but Christopher Alexander’s home page is about as unstructured as… minestrone soup.

    Oh – those that have read “The Design of Everyday Things” may figure out that my post’s title matches his original title – “The Psychology of Everyday Things” – which he chose because it’s cutesy abbreviation POET.