The Power of a Limited Toolset

It’s easy to drown in the sea of frameworks and methodologies available to programmers. Numerous authors speak out about against the constant swarming between them. However, now I have a concrete expression for both why it hurts and why fewer solutions can be better.

December 13, 2020 · 4 min

The Cycles of TDD Diagram

The Cycles of TDD by Robert Martin is the most wholistic explanation of TDD I’ve read. It helped me to put the pieces together and understand how TDD can drive a good design process from end-to-end. Here’s an attempt to visualize it.

November 13, 2020 · 1 min

What's Your Duck?

The Pragmatic Programmer tells the now legendary tale of talking with a rubber duck to overcome programming problems. This sounds a bit silly, but programming is a design activity all the way down to the source code implementations. Problems and possibilities often won’t reveal themselves until we try to communicate them. Every programmer needs a duck. So what is yours?

October 2, 2020 · 5 min

System Language

The Language of the System by Rick Hickey is an illuminating talk about why systems differ from programs. It provides a clear framework for understanding and addressing the differences. I believe these same ideas underpin some of the recent movements in software design philosophy. Let’s explore.

September 4, 2020 · 6 min

Test Api In Practice

A friend of mine, Paul Spoon, wrote a delightful article about using the Anti-Corruption Layer pattern as a tool for more stable tests. I tried the pattern with skepticism, and will now never go back. Let’s take a brief look at the pattern then dive into the benefits I’ve experienced.

August 21, 2020 · 6 min

Righting Software - Project Design Summary

Part 2 of Righting software presents the most complete theory of project management I’ve seen: the Critical Path Method.

July 16, 2020 · 12 min

Righting Software Visual Summary

Thus far this only includes the System Design portion of the book.

July 3, 2020 · 2 min