{"name":"Explaining Software Design","short_name":"Explaining Software Design","start_url":"https:\/\/explaining.software\/archive\/","description":"by  Zach Tellman \n\nFor the past few years, I've been working on a book about software design. Its thesis is fairly simple: \n\n> Software development can be reduced to a single, iterative action. Almost everything we do in the course of a day \u2014 the pull requests, the meetings, the whiteboard diagrams, the hallway conversations \u2014 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. \n\nIn 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: \n\n* practical definitions for simplicity and complexity \n* names and metaphors \n* the history of software design \n* language models as software developers, and vice-versa \n\nIf any of this sounds interesting, you should check out the [introductory post](https:\/\/explaining.software\/archive\/a-brief-introduction\/) and subscribe.","icons":[{"src":"https:\/\/static-assets.buttondown.com\/images\/icons\/icon@48.png","sizes":"48x48","type":"image\/png"},{"src":"https:\/\/static-assets.buttondown.com\/images\/icons\/icon@72.png","sizes":"72x72","type":"image\/png"},{"src":"https:\/\/static-assets.buttondown.com\/images\/icons\/icon@96.png","sizes":"96x96","type":"image\/png"},{"src":"https:\/\/static-assets.buttondown.com\/images\/icons\/icon@144.png","sizes":"144x144","type":"image\/png"},{"src":"https:\/\/static-assets.buttondown.com\/images\/icons\/icon@192.png","sizes":"192x192","type":"image\/png"},{"src":"https:\/\/static-assets.buttondown.com\/images\/icons\/icon@512.png","sizes":"512x512","type":"image\/png"}],"background_color":"#FAFAFB","theme_color":"#0069FF","display":"standalone","orientation":"portrait-primary"}