humancode.us

Keep Your Eyes on the Horizon

December 14, 2018

One of the most valuable lessons one learns when driving on a racetrack is to keep one’s eyes on the horizon. You become a smoother and faster driver when you position yourself for the next turn while you negotiate the present one.

As an engineer, the tempt­ation is strong to focus intently on the tasks at hand; to over­emphasize a small list of items of immediate concern. It’s the equi­valent of staring at the road directly in front of you as your drive at speed.

Take time each day to look up at the horizon. Be aware of where you are in the schedule. Observe deadlines and obstacles approach­ing. Anti­cipate the needs of other teams that interface with your compo­nents. Maneu­ver yourself into the best position to handle the next challenge. Paradox­ically, the more factors you are aware of, the better you will be at figuring out what needs to be done in the immediate future.

Hold Your Standards

November 16, 2018

Code and design reviews are events where your standards and guidelines actually get enforced. Apply your standards clearly during review, then hold the line. An author should have to justify why you should bend the rules for their submission.

Conceding too early to an exemption (out of simple expediency, or worse, pity for the author) erodes your product’s quality. Every premature concession is an admission that you don’t really believe that your standards are necessary to build your product.

The Midway

November 12, 2018

The Midway

View this photo in my flickr photostream

The Midway neon sign at Dave and Busters in Milpitas, CA.

📷 Nikon D800, Nikon 24–70mm f/2.8. 24mm, f/2.8, 1/80s, ISO 1250

Doing Better With Technical Terms

November 10, 2018

As the engineering profession becomes more inclusive, we need replacements for terms that may conjure up prejudice or bias. Here are some suggestions for improvements:

Instead of… Use…
whitelist/blacklist allow-list/deny-list
yes-list/no-list
master/slave primary/secondary
main/backup (backup is not used until main fails)
director/performer (director tells performers what to do)
leader/follower (leader performs action, followers mimic behavior)
overview/detail (overview provides navigation, detail shows…details)
male connector plug, tab, prong, pin
female connector port, socket, receptacle1, slot
sanity test robustness test, basic operations test (specify what you’re testing)
blackout power outage, power failure
brownout partial power outage, voltage dropout

What other terms can you think of?

  1. Avoid using the term “jack” to mean “receptacle”, because the term may cause confusion between the US and UK. 

Don’t Hire a Smart Asshole

November 8, 2018

You may be tempted to hire a smart asshole into your team. Think long and hard before you do this. Don’t underestimate an asshole’s natural ability to ruin your team’s morale; to intimidate junior engineers; to become territorial about code and ideas; and to turn a productive hallway into a toxic environment.

Is an asshole’s genius really worth more than the loss of a good team dynamic? In twenty years I have never seen a single instance where a team wouldn’t be better off without them. Your odds are probably about the same.

Great reference: The No Asshole Rule