Creating simplicity is the hardest problem of all

In a former life, I was a ‘nuke’ - a nuclear engineer. No “ifs, ands or buts about it”, nuclear engineering is complicated and I was attracted to the field because of this complexity. While I was there, family and new acquaintances were always awed when I said what I did. In fact, when I was fundraising for Artsicle, saying “former nuclear engineer” was often enough to convince VCs I was “smart.” It felt really good

The problems in nuclear engineering are complex. On my team, we created mathematical solutions to prove, without a shadow of a doubt, that a particular piece of piping wouldn’t crack over 80 years. This required months of hard work, spanning disciplines from fracture mechanics to applied mathematics, and using fun tools like FORTRAN and super computing clusters. This level of complexity made everything harder and slower. New employees required months of onboarding to understand our process. Iterations were painfully slow. One analysis I wrote required 3 days to run, meaning a single trivial bug in my code could cost a week of work.

Was all this complexity needed?

No. The complexity made it sexy, but left the industry blind to opportunities to simplify their processes and make more progress. When you have the hardest problems in town, you can attract great talent who are drawn to big, sexy problems. You can keep smart people occupied, hard at work and not asking hairy questions like “why are we working on this in the first place?”.

Or you can try a different road - the road to simplicity. It’s easy to get excited about sexy hard problems, but I believe the really hard work is building simple, useful solutions.

Let’s take the pythagorean theorem as an example. It looks like a a stroke of genius:

256px-Pythagoras_Euclid.svg.png

a2 + b2 = c2

What we don’t see is all the hard work it took Pythagoras to make that proof happen, by simplifying it down to its most basic parts. You don’t see the painful moments of asking questions, feeling inadequate and striving for the simplest solution. By taking the time to simplify, Pythagoras created a formula that is infinitely more powerful, used for generations.

Many times, we take the other path - the road to complexity. We revel in our complex problems, creating equally complex solutions that require days to run and months to explain. We feel smart, because no one understands what we do. It’s too complex to explain anyway.

Many engineering teams today have this kind of culture, which I believe is contrary to our real purpose of simplification. We shouldn’t be trying to look sexy - we should be trying to simplify everything to create the best solutions. How do you do this?

First, you create a culture of teaching. By hiring junior engineers and regularly rotating individuals among teams, you are constantly needing to teach others. Teaching is a fast way to identify complexity and opportunities to simplify. Every time you find a point of friction in your teaching, take the time to simplify your processes, code or concepts.

And second, celebrate simple. I believe simple is the sexiest solution. A truly simple solution is often hardest to attain and provides the most value. It makes change, refactoring, abstracting, onboarding and a whole lot of other ‘ings’ easier. When we celebrate simple, we celebrate the sexy work of chipping away at problems and making real, measurable progress.

 
16
Kudos
 
16
Kudos

Now read this

Premature optimization is the root of all evil

Relevant XKCD This past week a valuable conversation came up with our DevOps team at Andela that I’d like to share here. For context, they were building out a method to automate our development environment using Ansible which is a... Continue →