Explaining Software Design

Subscribe
Archives

Explaining Software Design

by Zach Tellman

For the past few years, I've been working on a book about software design. Its thesis is fairly simple:

Software development can be reduced to a single, iterative action. Almost everything we do in the course of a day — the pull requests, the meetings, the whiteboard diagrams, the hallway conversations — is an explanation. Our job is to explain, over and over, the meaning of our software: what it is, and what we expect it to become.

In this newsletter, I'll be sharing some excerpts from my still-incomplete manuscript. I'll also share some tangential thoughts that didn't make the cut. Topics will include:

  • practical definitions for simplicity and complexity
  • names and metaphors
  • the history of software design
  • language models as software developers, and vice-versa

If any of this sounds interesting, you should check out the introductory post and subscribe.

This email brought to you by Buttondown, the easiest way to start and grow your newsletter.