Leaky Abstractions Aren’t Always Bad

A team goes out and installs a new lawn at a customer’s property. They’ve been there since 6am, it’s now 8pm, and they’ve finally got all the sod laid. The last step in the runbook says to program the sprinkler system. But the sprinkler system is broken, and nobody on the team can get it […]

Build for the People Who Use It

Years ago I worked on a software project for specialist users. They hated it. Absolutely despised this application. When I finally got the chance to visit the dev team in Long Beach, what I discovered what that almost none of them had ever actually used the software they were building. Some had never even seen […]

Let’s Talk About Reuse

I have previously discussed the concept of “reuse”, from an engineering perspective. Something I actually learned really early in my career is that there’s a subtlety to the implementation of this concept. It all begins the first time you learn about functions, or objects, or libraries. There’s this idea that code can be written once […]

Your Problem Has Probably Already Been Solved

The interesting thing about not-invented-here syndrome (NIH), is that it surfaces itself in a financial way. Projects end up taking a lot longer than they needed to because some developer or team decided to try and build some solution themselves instead of utilizing reuse. Digging into this, my experience says it is either one of […]

Classical Engineering Principles are Still Relevant

At this point I’ve been working with AWS technology almost exclusively for nine years. So that makes me a bit of an expert at it. Yet I’m still amazed at how fundamental principles surface themselves within this “newfangled” technology. Let’s discuss. I am re-reading an old favorite of mine, The Mythical Man-Month, by Fred Brooks. […]