Explaining Software Design
Subscribe
RSS
Archive
the simplicity of a fractal
September 10, 2024
Previously, we've looked at code generation in both Rails and Thrift. But unlike Thrift, the code generated by Rails is meant to be changed. Any change is...
the simplicity of a limb
September 3, 2024
In their paper on Evolvability, Marc Kirschner and John Gerhart discuss the separation of concerns within our genetic code. They pay special attention to...
better explanations through coupling
August 27, 2024
Previously, we explored how coupling and cohesion are not separable concepts. When our software is cohesive, everything fits. Each part is shaped by its...
glossary
August 23, 2024
complexity The sum of every explanation. Weighted heavily towards future explanations. Measured in bits, but only relative to your audience's expectations....
coupling as co-explanation
August 20, 2024
Previously, I provided a brief introduction to this newsletter, and then analyzed the structure of explanations in software development. For many in the...
the anatomy of an explanation
August 12, 2024
Previously, I provided a brief introduction to the ideas that will be covered in this newsletter. Software development can be reduced to a single, iterative...
a brief introduction
August 6, 2024
As software designers, our goal is to reduce complexity. We want our software to be easier to understand, and easier to change. These are not distinct...