Thursday, September 28, 2017

Save Your Work

Here's a useful habit I've picked up as a software engineer. Every time you do something difficult, create a reproducible artifact that can be used to do it more easily next time, and shared with others.

Some examples of this:

  • You spent all afternoon debugging a thorny issue. Write down the monitoring you checked and the steps you took to reach the conclusion you did. Put these details in the issue tracker, before moving on to actually fix it.
  • You figured out what commands to run to get the binary to work properly. Turn the commands into a short script and check it into source control.
  • You spent a day reading the code and figuring out how it works. Write yourself some notes and documentation as you go. At the end, take half an hour to clean it up and send it to your boss or teammates who might find it helpful. Maybe even put up a documentation website if that seems appropriate.

This makes it easier to pick up where you left off for next time (for you or someone else), and makes it easier to prove that the work you're doing is difficult and has value.

Wednesday, September 13, 2017

Nonfiction I've Been Reading Lately

The Seven Principles for Making Marriage Work (Goodreads) - This book gave me a mental concept that I've been using all the time since: All the conflict resolution skills in the world won't help you if you don't like someone. And if you like them, then conflict resolutions suddenly becomes tremendously easier. See also: Simple Affection and Deep Truth.

I recommend this book to anyone trying to build and maintain close long-term relationships with other people, romantic or not.

Selfish Reasons to Have More Kids (Goodreads) - A short read, and remarkably convincing. The author makes a ton of effort to emphasize that he is NOT saying that you should have kids if you don't want them. It's restricted to a very narrow claim, which is: if you already know you want kids, and you like kids, and you're not having more because of what a huge cost they would be, maybe you should consider having more, because they're probably not as costly as you think.

Eating Animals (Goodreads) - This book makes a credible attempt to be a discussion of the practice of eating animals without saying "... and so you should obviously be a vegetarian." I found the discussion of small, humanely-minded farms and slaughterhouses particularly interesting.

Your Money Or Your Life (Goodreads) - A great perspective on how to treat money not as a measure of worth, not as a natural phenomenon that rises and falls like the tide, but as a resource which can be both accumulated and wielded to do what you want. I especially like the framing that money is "something you trade your life energy for."

Even as someone who's already drunk the Kool-Aid on frugality and financial independence, I found it helpful. I haven't tried the specific techniques of tallying up actual net worth and income and expenses, but I've been feeling unsure about my level of impulse spending lately, and this seems like a great way to handle that.

I also really liked the start of the book, which is about changing your relationship with money while you're still working for wages. While working towards early retirement, it's often easy to lose sight of the fact you're living your life now (as seen in this Reddit post, and the commenters there). You can't wait until you have "enough money" to start living it well.

The Commitment (Goodreads) - I was expecting this book to be about commitment and the experience of deciding to commit to someone. It wasn't that at all. It was about having decided to spend the rest of your life with someone already, and then deciding whether to go through the social motions of having a ""wedding"", with all the baggage entailed in that.

Lots of funny anecdotes, though Dan Savage's humor is sometimes cruel (nominative determinism strikes again!).

This book might be very moving to someone who is struggling with the question of what the social institution of "marriage" means beyond the commitment to another person. For me, it was an interesting reflection on a problem I don't have.

Monday, September 11, 2017

Meritocracy vs. Trust

[Partially a response to The Craft is not the Community.]

Whenever a group of humans get together to accomplish some goal, there's a fundamental tension between meritocracy and trust.

If I know you can reject me for lack of skill, I may worry about this and lose confidence. But if I know you never will, I may phone it in and stop caring about my actual work output.

Both meritocracy and trust contribute to a functioning project, which is what makes this difficult to balance.

Trust Improves Productivity

Psychological safety is the sense an employee has that they are able to make mistakes in front of their coworkers and not be immediately rejected. According to internal studies of teams at Google, psychological safety is a major predictor of team productivity.

This makes sense to me from the inside, because I've done much better work on teams where I feel safe enough to ask lots of questions. If I don't feel that way, it often means I waste tons of time struggling with questions or problems that would have been easy if I'd asked for help.

This is acutely important in software development, where every person tends to have their own fiefdom of special knowledge with no application to anywhere else, and which is extremely time-consuming to acquire. In such an environment, asking a question can be tremendously more time-efficient in total than every person acquiring the knowledge themselves.

But if an employee worries that they'll be perceived as less efficient or productive when they ask questions, they may not ask the question. This is bad from everyone's perspective, but especially the employer's.

... But So Does Meritocracy

But employers need to be able to fire poor performers, and sometimes being a poor performer means having to ask for help more than you should.

As an employer, you have to figure out how to design incentives so that your employees trust each other enough, but you can enact consequences when you need to.

Minimum Hiring Bars and Other Solutions

One solution is to lie to your employees and tell them you'll love them no matter what, while holding a checklist of "Bad Employee Traits" behind your back. This doesn't work very well, because people aren't stupid.

A solution for employees is to have a team that trusts each other, but not upper management; in this way, they will be able to ask each other for help, while knowing that their team members will cover for them if necessary. This can have bad long-term effects, because poor performers with lots of friends may be protected from consequences, ultimately dragging down the organization.

Another solution is to give up completely on one in order to maximize the other. For example, Netflix takes the extreme end of the "meritocracy" question (and pays people a ton of money to make up for it).

The solution that the plurality of tech employers use: Have a minimum hiring or entry bar. Get all your meritocracy out of the way first. Once you're in the club, you're in the club, and we'll trust you to get things done however you need to. The downside here is that when employees start on a downhill slide, it'll take you longer to react to it, because you're giving them the benefit of the doubt.