Skip to content

PatternLanguageOutline

Ben Christel edited this page Aug 20, 2021 · 8 revisions

This page sketches some ideas that may turn into a whole 'nother website. It outlines a value set, process, pattern language, and geometry for software development. The goal is to provide a complete, end-to-end view of the most effective way I know to create software.

As far as I know, nothing like this has been attempted before. Many pattern languages for software have of course been written, including:

Various attempts have also been made at defining a set of values for software development—for example Kent Beck's Extreme Programming Explained. The Unix Philosophy, documented by Eric Raymond in The Art of Unix Programming, describes the values and principles underlying Unix programs.

However, I don't think anyone has yet tried to provide an end-to-end view.

Values

Some software organizations say they have values. In practice, their values often sound more like principles to me: the ways they choose to work toward their values. The values themselves are left unstated.

For example, here are GitLab's stated values:

  • Collaboration
  • Results
  • Efficiency
  • Diversity, Inclusion, and Belonging
  • Iteration
  • Transparency

Now, these are just buzzwords chosen to spell "CREDIT" so perhaps GitLab can be forgiven for not having the perfect word choices here. But, on the face of it, most of these things just are not values. Inclusion and Belonging get close. Transparency, maybe. But the rest are means to an end. They leave us asking, "to what end?"

Your real values are not something you hang up by the door when you leave the office. They pervade your whole life. They underlie your vision of the world you wish was real, and they bend your actions toward that vision.

Here are my values:

  • Belonging
    • community, kinship, and connectedness to others
  • Enthusiasm
    • joy and awe
  • Autonomy
    • diversity and local adaptation
  • Mastery
    • getting better all the time
  • Involved caring
    • doing small things with great love
  • Non-harm
    • the thingier a thing is, the more right it has to keep on being thingy.

See how those, aren't, like, strictly work-related? That's how you know they're actual values, and not corporate buzzwords. The fact that this spells "BEAM IN" is pure coincidence.

Geometry

  • Shallow Hierarchies
  • Levels of Scale
  • Local Symmetry / Alternating Repetition
  • Echoes
  • Intensive Centers
  • Boundaries
  • Roughness
  • Simplicity
  • Not-separateness
Clone this wiki locally