Everett 2.0

November 21, 2019 • #

Today is Everett’s 2nd birthday! Hard to believe the boy is growing up so fast.

Everett age 2

This year’s gone by like lightning. Since he started walking before he hit the 1 year mark, he’s gotten now to where he’ll climb anything and try almost anything his sister does (he says “I twy, I twy” when he wants a turn). We’re still working on the words — he’s got a few dozen in his repertoire, and it really feels like we’re on that cusp where suddenly in the next couple months he’ll be saying full sentences.

Like I did last year, let’s recount a few things he’s into as he reaches version 2.0:

  • Gets snacks out by himself from the cabinets and pantry
  • Wakes up too early
  • Doesn’t nap enough (I hear he has my “no sleeping” gene)
  • Climbs anything on the playground
  • Loves the zoo and the animals
  • Started riding his scooter
  • Beginning to talk better
  • Just about to move to a full size bed, the crib can’t contain him, climbs out easily

Soon we’ll be starting him in an “early 2s” class at the school with his sister, which he’ll love. Any opportunity to play with new toys or other peoples’ stuff is incredible to him.

Happy birthday, bro!

Balancing Power and Usability

November 18, 2019 • #

This is another one from the archives, written for the Fulcrum blog back in 2016.

Engineering is the art of building things within constraints. If you have no constraints, you aren’t really doing engineering. Whether it’s cost, time, attention, tools, or materials, you’ve always got constraints to work within when building things. Here’s an excerpt describing the challenge facing the engineer:

The crucial and unique task of the engineer is to identify, understand, and interpret the constraints on a design in order to produce a successful result. It is usually not enough to build a technically successful product; it must also meet further requirements.

In the development of Fulcrum, we’re always working within tight boundaries. We try to balance power and flexibility with practicality and usability. Working within constraints produces a better finished product — if (by force) you can’t have everything, you think harder about what your product won’t do to fit within the constraints.

Microsoft Office, exemplifying 'feature creep' Microsoft Office, exemplifying ‘feature creep’

The practice of balancing is also relevant to our customers. Fulcrum is used by hundreds of organizations in the context of their own business rules and processes. Instead of engineering a software product, our users are engineering a solution to their problem using the Fulcrum app builder, custom workflow rules, reporting, and analysis, all customizable to fit the goals of the business. When given a box of tools to build yourself a solution to a problem, the temptation is high to try to make it do and solve everything. But with each increase in power or complexity, usability of your system takes a hit in the form of added burden on your end users to understand the complex system — they’re there to use your tool for a task, finish the job, and go home.

This balance between power and usability is related to my last post on treating causes rather than symptoms of pain. Trying too hard to make a tool solve every potential problem in one step can (and almost always does) lead to overcomplicating the result, to the detriment of everyone.

In our case as a product development and design team, a powerful suite of options without extremely tight attention on implementation runs the risk of becoming so complex that the lion’s share of users can’t even figure it out. GitHub’s Ben Balter recently wrote a great piece on the risks of optimizing your product for edge cases1:

No product is going to satisfy 100% of user needs, although it’s sure tempting to try. If a 20%-er requests a feature that isn’t going to be used by the other 80%, there’s no harm in just making it a non-default option, right?

We have a motto at GitHub, part of the GitHub Zen, that “anything added dilutes everything else”. In reality, there is always a non-zero cost to adding that extra option. Most immediately, it’s the time you spend building feature A, instead of building feature B. A bit beyond that, it’s the cognitive burden you’ve just added to each user’s onboarding experience as they try to grok how to use the thing you’ve added (and if they should). In the long run, it’s much more than maintenance. Complexity begets complexity, meaning each edge case you account for today, creates many more edge cases down the line.

This is relevant to anyone building something to solve a problem, not just software products. Put this in the context of a Fulcrum data collection workflow. The steps might look something like this:

  1. Analyze your requirements to figure out what data is required at what stage in the process.
  2. Build an app in Fulcrum around those needs.
  3. Deploy to field teams.
  4. Collect data.
  5. Run reports or analysis.

What we notice a surprising amount of the time is an enormous investment in step 2, sometimes to the exclusion of much effort on the other stages of the workflow. With each added field on a survey, requirement for data entry, overly-specific validation, you add potential hang-ups for end users responsible for actually collecting data. With each new requirement, usability suffers. People do this for good reason — they’re trying to accommodate those edge cases, the occasions where you do need to collect this one additional piece of info, or validate something against a specific requirement. Do this enough times, however, and your implementation is all about addressing the edge problems, not the core problem.

When you’re building a tool to solve a problem, think about how you may be impacting the core solution when you add knobs and settings for the edge cases. Best-fit solutions require testing your product against the complete ideal life cycle of usage. Start with something simple and gradually add complexity as needed, rather than the reverse.

  1. Ben’s blog is an excellent read if you’re into software and the relationship to government and enterprise. 

Weekend Reading: Darwinian Gastronomy, Humboldt, and Taxes

November 16, 2019 • #

🌶 Darwinian Gastronomy

Turns out cultures from warmer climates evolved a taste for spicy foods to combat the presence of more diverse bacteria:

Alas, nothing in nature turns out to be that simple. Researchers now suggest that a taste for spices served a vital evolutionary purpose: keeping our ancestors alive. Spices, it turns out, can kill poisonous bacteria and fungi that may contaminate our food. In other words, developing a taste for these spices could be good for our health. And since food spoils more quickly in hotter weather, it’s only natural that warmer climates have more bacteria-killing spices.

🌲 The Pioneering Maps of Alexander von Humboldt

The German scientist Alexander von Humboldt is one of the most important figures in conservation and geography. He was one of the first scientists to use maps as a critical tool for communicating his discoveries and ideas:

Another of Humboldt’s groundbreaking illustrations came out of his five-year voyage to Central and South America with the French botanist Aimé Bonpland. In 1802, Humboldt and Bonpland ascended Chimborazo, a volcano just below the equator that was believed at the time to be the highest mountain in the world (at 20,564 feet, it’s more than 8,000 feet shorter than Mount Everest). The pair documented the mountain’s plant life, from the tropical rainforest at its base to the lichen clinging to rocks above the treeline. The image below, which Humboldt called Tableau Physique in the French version of his original publication, organizes these observations in an intuitively visual way, showing Chimborazo in cross-section, with text indicating which species lived at different elevations on the mountain.

💰 Connecting Some Dots on Taxes

There was a roil over a Bill Gates interview from the recent DealBook conference, specifically around his comments on the upcoming election and his uncertainties around the Democratic candidates’ tax policies and consequences they might have. As is usual for Twitter, the rage machine was in full effect around Gates’s comments about “how much he’d have left” if Elizabeth Warren had her way.

The notion commonly tossed around with regard to billionaires is that there’s no way that level of wealth accumulation could happen through non-nefarious (or illegal) means. Kevin Williamson does a good job in this piece picking apart the logic here (or lack thereof) around “wealth transfer” — a disingenuous way to describe a phenomenon where there was no coercion involved.

The idea that there is some big national slop bucket marked “income” and that Gates et al. are grabbing up more than their fair share is breathtakingly primitive. A relatively small number of high-growth firms has accounted for a very large share of economic growth in the United States in the past several decades. That represents wealth creation, not a wealth transfer.

Checking In On Tool Restoration YouTube

November 13, 2019 • #

I’ve been home the past couple days to attend to some projects — getting an aluminum patio cover installed and having shutters put in on most of the windows. My time’s been occupied by holiday season preparation, general housecleaning, and shuttling the kids to their activities. In the downtime I’ve dropped back into a few of my favorite tool restoration YouTube channels to see what’s new.

I watched this great new one from Black Beard Projects where he restores a 1950s-era bench grinder. Degreaser, paint stripper, electrolysis, and a load of elbow grease convert this thing back into a fully functional grinder you could put right back to regular use. I love the new tool he’s got for corrosion removal from small parts: an ultrasonic cleaner:

This one from the LADB channel was great: an antique corn sheller that goes from having spent a number of decades exposed to the elements back to its original yellow glory:

It’s hard to watch that beautiful, deep metallic oiled steel get covered up with paint. But I suppose if it’s about restoring a 100 year-old tool to be alive for another century, I guess I see the point.

And one close to my personal interests: the My Mechanics channel restoring an old coffee grinder. I’ve watched a ton of these videos and I’m surprised that this one’s the first where I’ve seen a sandblaster for cleaning parts. Maybe since most of these folks are doing this in their garages that’s too specialized of a tool, but it seriously reduces the labor required in cleaning many smaller parts. This restore is pretty extreme; he even machines his own screws with a CNC lathe.

I’d love to try my hand at some simple stuff restoring small hand tools and see what I could do.