Thursday, March 5, 2020

Email Engineering and Duress-Driven Design

Two observations for you. If you're busy, you can just go ahead and agree with me now and move along.

Engineering by Email is Evil

Have you ever been part of an email thread at work that starts out with an innocent question like, "what's CPU usage on cluster alphabet?" but then devolves into a highly technical planning session with multi-paragraph diatribes about design decisions and flimsy, off-the-cuff justifications? It usually spirals into chaos soon thereafter as disagreement abounds. And decisions are made based on who replied to the thread (which is saved by everyone as a "get out of jail free" card).

This is engineering by email. And it is pure evil.

I've developed an informal method for determining when engineering by email is occurring: I look at the height of the scrollbar relative to the height of the window. If the scrollbar's height is 1/4 or less of the window's height: run. And let's not even talk about how horizontal scrolling is widely understood to be a bad UX idea.

Engineering is a process, just like design, digestion, and the Xiphoid. Ok, maybe not just like those things. But it's a process nonetheless. It requires a deep understanding of your requirements, constraints, assumptions, and other influences. It can't simply be typed into existence in response to an email. And email is certainly not a suitable repository for such documentation.

“But no one uses email anymore! We use slack! We use Teams! We used Cisco Webex Teams! We use HipChat!”

Oh shut up already. Everyone uses email for work. No temporal walled garden app will kill email. But I’ll entertain that thought a moment and tell you that if you use any of these messaging platforms as your primary source of inter- and intra-office communications, then the same applies.

In many ways, we’ve lost the true meaning of engineering. It’s a process, not a product. A science, not a suggestion. Engineering isn’t a one-line message that says, “Maybe we can use the DR site since it has excess capacity?” That’s an idea, part of a brainstorming effort. It can influence engineering, but on its own this is NOT engineering.

Duress-Driven Design

You can't build something out of fear. Your motivation can't be to not get fired or publicly shamed. These conditions lead to duress-driven design. And like engineering by email, it is also pure evil.

Your project timeline needs to reflect the enormity of the problem you're solving. While we all like to take our turn as the superhero that saves the day by delivering an amazing solution in a highly compressed time frame, we’ll only burn out all the faster for it. And bypassing development, or feverishly condensingit, is never a good idea.

What's the Point?

The point is that if you work in an enterprise environment where the two items above are not only tolerated but heralded as "working hard," you should get the fuck out as soon as possible.

Wednesday, January 22, 2020


It's the warmest New Year's Day I can remember, but as I recently shared with my wife, I can't remember things like weather from one year to the next anymore. I can't remember if I ever remembered such a thing as fleeting and uninteresting as the weather. Sometimes I record the temperature and the sunniness of a given day in one corner of the too infrequent entries in my beekeeping journal, if I remember. But sometimes, I don't.

New Year's Day is a good day for optimists, and I continue to be one. You imagine a whole year laid out before you. You schedule successes and celebrations. You anticipate the positive results of challenges that you don't yet see coming. You hope that this warm winter weather is a seasonal fluke, and not the harbinger of irreversible climate change. Optimists aren't naive, we're just hopeful.

Even pessimists find a reason to be joyous on January 1st. If nothing else, it's a milestone at which you can stop and turn around, look at the road behind you, and be glad it's behind you. If nothing else.

Optimism isn't foolish head-in-the-clouds dimwittedness, though my cantankerous coworkers would certainly disagree. It's the result of a constant accounting of experience, of failures and defeats, of missed opportunities and unexpected wins. This optimist recounts these ups and downs on a near hourly basis, likely the result of undiagnosed ADHD and a persistent feeling of having left a pot on the burner last night.

My bees did not survive the winter. I've lost two hives in two seasons. But I'll try again this spring. Each failure instructs. Maybe the hives swarmed, and the frozen bees in the deeps were just the remnants of the colony. Or maybe I starved them because I don't yet understand how to sustain bees through the single-digit colds of the mid-Atlantic. My beekeeping gloves are turning a mesmerizing shade of amber, and my hive tool is starting to look like an old tool. I like how old tools look. I look at my hands, and they look like old tools, too.

I ran two half marathons in two weeks last fall: one on asphalt, the other on earth. Trail running is fine, but it's not for me and my declining vision. Depth perception is important when navigating roots and rocks, and I still haven't had my glasses repaired since I fell face-first in the single track around Loch Raven. My mind is twenty but my body is twice that and some.

Being an optimist means compiling a list of things that you'll likely fail at over the next twelve months, and doing them anyway. So raise a glass of the mead you'd like to brew in the fall. We drink, dear friends, to future failures.