The Software Developer's Career Handbook: A Guide to Navigating the Unpredictable
Date: 2023-01-31T05:09:19.204864+00:00
Description: At some point in your career, you'll realize there's more to being a software engineer than dealing with code. Is it time to become a manager? Or join a startup? In this insightful and entertaining book, Michael Lopp recalls his own make-or-break moments with Silicon Valley giants such as Apple, Slack, Pinterest, Palantir, Netscape, and Symantec to help you make better, more mindful career decisions. With more than 40 stand-alone stories, Lopp walks through a complete job lifecycle, starting with the interview and ending with the realization that it might be time to move on. You'll learn how t
Publisher: O'Reilly Media

The Software Developer’s Career Handbook

A Guide to Navigating the Unpredictable

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

Michael Lopp

The Software Developer’s Career Handbook
by Michael Lopp

Copyright © 2023 Michael Lopp. All rights reserved.

Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com.

- Acquisitions Editor: Melissa Duffield
- Development Editor: Jill Leonard
- Production Editor: Christopher Faucher
- Interior Designer: Monica Kamsvaag
- Cover Designer: Susan Thompson

- June 2023: First Edition

Revision History for the Early Release

- 2022-04-29: First Release

- 2022-11-15: Second Release

See http://oreilly.com/catalog/errata.csp?isbn=9781098116675 for release details.

The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. The Software Developer’s Career Handbook, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc.

The views expressed in this work are those of the author and do not represent the publisher’s views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-098-11661-3

Chapter 1. Invest in the Boring

A Note for Early Release Readers

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be the 15th chapter in the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at jleonard@oreilly.com.

I admit it. I love it when the sky is falling. There is no more delicious a state of being than the imminent threat of disaster.

During these times, I’ve done great work. I’ve taken teams from “We’re doomed” to “We made it.” Yeah, we had to cancel Christmas that one time, and there was that other time I didn’t leave the building for three days straight, but it was worth it because there’s no more exhilarating place to hang than the edge of chaos. We’re wired to escape danger.

There’s a reputation you get after successfully performing the diving saves, blocking disaster from striking your organization. You’re “the Fixer.” You’re the one they call when hope is lost, and while that’s a great merit badge to have, it’s a cover story. It’s spin. See, someone screwed up badly. Maybe it was you. When the sky falls, it means someone somewhere underestimated the project, didn’t make a decision, or let a small miss turn into a colossal disaster, and while fixing a disaster feels great, you’re not fixing anything.

Management by crisis is exhilarating, but it values velocity over completeness; it sacrifices creativity for the illusion of progress.

Still, right now, the sky is falling, and rather than let it fall, immediate action is necessary, and my first bit of advice is that everyone takes a deep breath.

Sigh

Your body has a distinct natural reaction when you see an impending crisis. When considering the crisis, you take a long, deep breath. You often don’t notice this, but if I sat next to you, I would hear you sigh.

A sigh is associated with despair. We’re screwed. Sigh. My interpretation is different; this long, deep breath is one of preparation. Let’s break it down: breathe in. Gather your strength. Oh shit, how am I going to deal with this? Hold it. Hold it. OK, breathe out. OK, not sure what the plan is, but let’s roll.

The interesting part of the deep breath is when you hold it. Try it right now: take a deep breath and hold it. What are you doing when you’re holding your breath? Well, first off, you’re slowly asphyxiating, but in that moment of life-threatening tension, you’re doing interesting work. It’s a subtle transformation from building tension to calm release. It can also be a deliberate moment of consideration.

You can let that breath out now.

It’s a metaphoric stretch, but it’s around the deep breath that I build my team’s communication structure. I’ll explain, but first, a story.

The team at the start-up was in a design crisis. The 1.0 version of the product was out and doing well, and everyone wanted to do...well, everything. Every feature was being considered. Unbridled ambition is an excellent problem to have for about a week. After a month, we had three different design directions in play with various levels of support. The creative rush of developing a new release was degrading into useless design meetings where different camps were building strategic fortifications rather than talking. Decisions were being made and not communicated. Confusion was replacing creativity.

In times of crisis, a few human behaviors can make everything worse:

- In the absence of direction, people make stuff up. Nature abhors a vacuum, and in the absence of solid information, people generate their own information to fill that vacuum. They’re not lying; they have no ill will; they’re just trying to build a semblance of structure amongst the confusion. This is only exacerbated by the fact that...

- Human beings provide mutual group therapy by endlessly talking about the crisis at hand. This isn’t the creation of new content; it’s just the regurgitation of the latest news. At the right time, this hallway cross-pollination is a great way to evolve an idea, but if all we’re doing is talking about the crisis, we’re scratching at the worry rather than dealing with it.

- Finally, everyone wants to know everything. Combine the communication vacuums and the group therapy creating a fire hose of additional questionable content, and it’s not surprising that everyone on the team wants to know everything. Before I proceed, I want total disclosure. I have something unique to add, and I better get a chance to do so.

It was an information communication disaster. There were brilliant ideas wandering the hallways, and there were stickies with great ideas hanging from monitors, but in the confusion that was our communication structure, everyone was running around panicking, and no one was taking a deep breath.

Three Meetings

Starting on a Monday, I imposed a new meeting structure. Let me first describe the meetings, then discuss the purpose. There were three types of meetings:

1:1s with my staff

Monday morning. First meeting of the week. Thirty minutes for the folks who are cruising. One hour for those in crisis. The agenda is a simple deep breath:

What are you worried about?

Here’s what I’m worried about.

And discuss....

Staff

With air from our 1:1s still in our lungs, I have my staff meeting. Two hours, right after the 1:1s are complete. It sounds like a long meeting, but when this meeting is run well and full of the right people, it’s almost always over before you know it.

Staff is where we can continue to worry publicly, but Staff is where I want to turn the corner, where we turn from inhale to exhale. OK, we’re worried a lot, but what will we do about it?

The tone and content for this meeting vary wildly by where we’re at in the development cycle. If we’re early in the cycle, we’re talking about the design state. If it’s late in the development cycle, we’re looking at confidence in the quality.

There are three buckets of topics that I work through at my Staff, and they’re increasingly slippery. We start with Operations (Where are we?), move on to Tactics (What are we going to do about that?), and finally, Strategy (No, really, what are we going to do about it?). I’ll explain each.

Operations: Where are we?

Operations topics are hard, nondebatable measures. How many bugs do we have? Where are we at with hiring? When are we moving? Charts. Graphs. Yay. Any hard piece of data that we collectively need to know. No debate, no discussion, just alignment. What gets measured gets fixed.

Tactics: What are we going to do about that?

Now we’re working. Tactics are changes, tasks, events, and things we’re going to do as a team over the next week to address the worry we found in our 1:1s. Like operational topics, tactics are measurable, consumable things, but these are not topics we’re reporting on; this is where we’re taking action. We will scrub every bug in the next product milestone to ensure it belongs. Jason is going to provide the new design by Thursday. By defining these tactics, you’re defining the agenda for the last meeting on my list, but we first need to talk strategy.

Strategy: No, really, what will we do about it?

All of these well-defined tactics are great. They are real work that, hopefully, by the end of the week, will define measurable progress. Go you. There are some organization, product, and people problems that you won’t be able to tackle in a week...or a month. Strategy involves deep changes to policy or culture. Our quality isn’t great, so we’re going to institute a code review culture. Our design is all over the place, so we’ll define a style guide. Strategic topics during Staff are my absolute favorite because they represent the most significant opportunity for substantive change in the group. They’re also the hardest to define as well as the hardest to measure.

Worse, strategic changes are also tricky to implement during sky-is-falling situations because everyone is working to prevent the sky from falling—they’re intensely and correctly tactical. This doesn’t mean strategic discussions aren’t important during Staff. You might not discover a strategic change, but just having the debate around the idea of change will give a glimmer of future hope to those who are hyperventilating.

When my Staff meeting is done, I’ve not only taken a deep breath, I’ve also begun the process of calmly exhaling...I now know what we need to do this week… This is generally where people screw up. They confuse the relief associated with the exhale with having a plan, with actual progress. You haven’t done anything yet, except sit through three hours of meetings, and we need one more.

“Look What We Built” meeting

4 p.m. on Friday. This meeting exists for one reason: to measure the tactics we defined at Staff. Did we do what we said we were going to do? From an agenda perspective, this meeting is a no-brainer. The list of topics and measurements were hopefully well-defined on Monday. Again, the content varies as a function of where we’re at in the development cycle, but some version of this meeting always occurs on Friday. Let’s review the design. Let’s look at the bug charts. Let’s confirm that we’ve made that big decision.

The “Look What We Built” meeting is the time to demonstrate progress, to show that even when the sky is falling, we know how to make progress. It’s also an excellent time to celebrate – briefly.

Invest in the Boring

It’s not just during a crisis that this calm, repetitive meeting pattern pays off—it’s always. I know you’ve been working with your favorite designer for three years. I know you believe you’re totally in each other’s heads, but this psychic confidence doesn’t mean you should skip your 1:1 with her, even when the sky isn’t falling.

Communication in a group of people is an endless exercise in alignment. No matter how well you know your team, you can never predict where the internal dialogue of your team’s internal dialogue will wander. What this meeting structure does is set organization expectations:

- Everyone knows when they will get their moment to speak in private.

- Everyone, whether in the meetings or not, knows the system by which a lot of information moves around the building.

- Everyone knows how we measure success weekly, and whether the sky is falling.

Equally important to these meetings’ existence is that they occur with obsessive, robotic regularity. Years from now, when your team has been disbanded, I want you to look at your clock at 10:15 a.m. on Monday and think, I’ve got my 1:1 with my boss in 15 minutes. This regularity is not a threat; it’s not a stick; it’s the basis for building trust in a team. I know I have a say.

And I haven’t even told you the best part yet.

This structure, all of this boring meeting repetition, exists to make room for something else. Whether you’re designing as an individual or as a team, when you’re being creative, you need two things: an environment that encourages the random and time to live there. An obsessive meeting schedule is an investment in the boring, but by defining a specific place for the boring to exist, you’re allowing every other moment to have creative potential. You’re encouraging the random, and random is how you’re going to win. Random is how you discover a path through a problem that no one else has found, and that starts with breathing deeply.

Chapter 2. Gaming the System

A Note for Early Release Readers

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be the 16th chapter in the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at jleonard@oreilly.com.

On my list of creative management solutions to dire situations, I offer the rolling whiteboard.

The rolling whiteboard was a curiosity at the start-up. Not a full-size whiteboard, but a door-sized whiteboard on wheels, suitable for rolling into conference rooms and cubicles alike. I never knew who owned it; I just grabbed it in a moment of desperation.

It was the end game. The time in the project where you pay for every single shortcut you’ve taken, for every specification you didn’t write, and for all the warnings from engineers that you’ve ignored. All the data is grim. Bug arrival rates are skyrocketing while bug resolution rates are pathetic because, uh, we are still finishing features.

Like I said, grim.

The endless stream of bad news was grating on everyone. We were already three weeks into working weekends with no end in sight. A normally pleasantly pessimistic engineering staff had gone uncomfortably quiet. Everyone was staring at “the date we can’t miss” and thinking, “I guarantee we’re missing it.”

I needed a game.

An Entertaining System

Engineers are system thinkers. We see the world as a very complex but knowable flowchart where there are a finite number of inputs that cause a similarly finite set of outputs. This impossible flowchart gives us a comfortable illusion of control and an understanding of a chaotic world , but its existence is a handy side effect of a life staring at, deducing, and building systems. It’s also why we love games—they’re just entertaining systems—and the more you understand this fascination with games, the better you’ll be at managing us.

As with all mental excursions with engineers, there’s a well-defined process by which we consume a game, and it goes like this:

- Discovery

- Optimization, Repetition, and Win

- Achievement

Discovery: From Confusion to Control

The initial joy of a game is discovery. This is a delicate balance of confusion and progressive disclosure. A game is initially attractive because it starts out chaotic and unknowable, but even in the chaos, there’s always a hint of the rules...of structure. What are the specific rules that govern this game? And how might I learn them?

We are searching for a single source of joy in this initial state. It’s the sense of discovery and progress toward a currently unknown goal. I want to see the engine that defines this particular universe...I want to know how it works. We’re looking for those edges because as soon as we find this wall, we know this is a containable and knowable place, and that is comforting because the game becomes a controllable thing.

There’s creative flexibility in rule discovery and pacing, and it tends to be a function of the size and the intent of the game. The beauty of Tetris is that the initial rules are immediately obvious. But the wonderful curse of a massive online game like World of Warcraft is that while there are rules, they are vast and, as we’ll see in a moment, they are changeable.

This discovery is the hook where we’re going to know in just a few minutes whether this particular game suits our particular appetite. But getting past the initial phases of discovery doesn’t mean you’ve successfully engaged us. The real test is...

Optimization, Repetition, and Win: A Paradox and a Warning

With the basic rule set discovered and defined, the process of optimization begins. OK, I get how it’s played, but how do I win? This is the phase where, now equipped with the rules, we attempt to use them to their advantage.

There’s a discoverable structure to the rules. There’s a correct order that, when followed, offers a type of reward. It’s the advantage of thinking three blocks ahead in Tetris or holding onto those beguiling hypercubes in Bejeweled. This is the advanced discovery of the system around the rules that leads to exponential weird joy.

There’s a paradox and a warning inside of optimization and repetition.

The paradox involves the implications of winning. We will furiously work to uncover the rules of a game and then use those rules to determine how they might win. But the actual discovery of how to win is a buzzkill. The thrill, the adrenaline, comes from the discovery, hunt, and eventual mastery of the unknown, which, confusingly, means if you want to keep us engaged in a game, you can’t let us win, even though that’s exactly what they think they want.

Think of it like this: does it bug you that there’s an absolute high score to Pac-Man? It bugs me.

To get around this entertainment-killing paradox in subscription-based games like World of Warcraft, game designers freely change rule sets as part of regular updates. The spin is, “We’re improving playability,” which translates into, “The community is close to figuring it out, and we can’t have that, because they’ll stop paying.”

This paradox does not apply to all games. It’s hard to argue that there is much more to learn about Tetris, but folks continue to play it incessantly, which leads to the warning.

There’s a socially frightening act inside of optimization that normal humans don’t get, and it’s the calming inanity of intense repetition. In a game like World of Warcraft, many of the tasks involve an exceptional amount of repetition. Repetition like, “Hey, go kill 1,000 of these guys and come back, and I’ll give you something cool.” Yeah, 1,000. If each kill takes a minute, you’re talking about 16 hours of mindless hacking and slashing. This is not a task that requires skill or thought...and that’s the point.

If you walked in and looked over my shoulder at troll kill #653, you’d think I’d dropped into a twitchy, fugue-like mental state, and I have. I am...a machine. Machines don’t have a care in the world, and that’s a fine place to be. This is the act of mentally removing ourselves from a troubled planet full of messy people, combined with our ability to find pleasure in the act of completing a small, well-defined task. This is our ability to lose ourselves in repetition, and it is a task at which we are highly effective.

In the defense of game designers, there are no quests that read, “Go waste 16 hours of your life doing nothing.” They are more elegant with their descriptions; they splice all sorts of different tasks together to distract you from the dull inanity of large, laborious tasks. But they know that part of what makes us tick is the micro-pleasure we get from obsessively scratching the task itch in pursuit of the achievement.

As I’ve never designed and shipped a game, I can confidently and ignorantly say the compelling magic in games comes from the design in optimization and repetition. This is the portion of the game where we spend the most time and effort and derive the most pleasure. It is this abstract mental state we long for when we’re not playing.

But there is one last phase to consider: achievement.

Achievement: Who Cares if You Win by Yourself?

Once we’ve learned the game by discovering how to win, we become interested in advanced winning. We’re interested in how our win fits into the rest of the world. We want to compare and measure and answer the social question, “Is my pile of win bigger than yours?” We believe we’ve mastered the game, but reputation—achievement—is nothing unless someone else can see and acknowledge it.

Before the Internet, winning was a private thing. You entered your three-letter name into the local Pac-Man machine and then anonymously stumbled off in search of Donkey Kong. In an interconnected world, games became social, and once we discovered each other in these virtual worlds, we looked for a means to compare our feats. We began to understand that achievement was not just becoming great at a game, but also being recognized for being great.

Achievement can be as simple as a score, a numeric means of comparison, but the more sophisticated the game, the more complex the achievements. In World of Warcraft, you’ll be busily into your seventh hour of mind-numbing troll extinction when you see that night elf run by with...what’s that? A staff...where the hell did she get that staff? It’s sweet. My world will not be complete until I own that staff. Now, what was four more hours of troll killing becomes the quest for the staff.

There’s no well-defined rule that says, “To win, you need this staff.” Sure, it might make those next 200 kills easier, but that is not your entire motivation. For you, the staff is your own personal badge of mastery, and you don’t wear a badge for yourself; you wear it for others to see.

Most achievements do have an empirical value, but that’s not what makes them important. The point of an achievement is to have someone you know or don’t know look at your Violet Proto-Drake and say, “Holy crap, do you know what he had to do to pull that off?” It’s wondering exactly how far you’ll go to get the Legendary badge on Stack Overflow.

In a world where we spend a ton of time with people we’ll never meet, achievements are the currency of respect and identity.

The Rules of the Game

Now that we understand how games float the engineer’s boat, we can tease out rules you can use to build your own business-centric games. This will take a creative leap on your part, because I don’t know in what way your particular situation is grim. Perhaps your bug count is crap like mine? Maybe you can’t hire fast enough? Maybe you can’t measure how screwed you are? I don’t know what game you need, but I know you need to follow the universal rules of games.

The rules need to be clear.

Whatever game you design must stand up to scrutiny. Test the rules with selected team members before you roll it out. Find the holes in your game before you’re standing in front of the team describing a game that makes no sense. Ambiguity, contradiction, and omission are the death of any good game.

The rules must be inviolable.

Enforce rules with an iron fist. A rule not followed is twice as bad as a poorly defined one. A violation of the rules is an affront to an engineer. They react violently to violations of the rules because it’s an indication that the system is not working. Rules make a game fair, and when they stop being followed, the engineers stop playing.

The playing of the game must be inclusive, visible, and broadcasted.

Include everyone on the team. Those not on the team should be aware of the progress and implications.

Use money as a reward only as a last resort.

It’s a knee-jerk management move to use money as an incentive. Problem is, money creates drama. Money makes everyone serious, and while you may be in dire straits as you design your game, you don’t want the team stressing about who is getting paid; you want them to stress about the work.

This is not to say that rewards in a motivational game are verboten, but step away from the money and think about achievements. One of the best trophies I’ve awarded was a horrifically ugly ceramic blue rhino the size of a pit bull. The winner proudly displayed the rhino achievement in his office for years.

It’s not a game.

Just because I’m using the word “game” all over this chapter doesn’t mean it’s trivial, simple, or something not to be taken seriously. Your team will treat the game as a motivational tool as seriously as you choose to treat it in building and rolling it out—because they want to win.

The Whiteboard Game

Everyone was working on a Sunday night as I stared at the blank portable whiteboard in my office. A weekend of hallway conversations, bug scrubbing, and informal testing confirmed what I already knew: the product was shaky, the bugs we were discovering were alarmingly bad, and there were too many of them.

OK, a game. The game will be called Focus, and it will concentrate and structure our attention on the worst parts of the product. I thought of the 10 worst bugs I’d found during the weekend and listed them on the board. Next to each bug, I drew four boxes:

- Root cause

- Fix identified

- Fixed

- Tested

I grabbed a handful of dry erase pens, rolled the board into the architect’s office and said, “This is all we’re working on.”

He stared at the board for 10 minutes and finally nodded, “Good, but each person needs their own color, and you should assign points for each of the boxes. 10 points for root cause and fix identification, 5 for fixes and tests.”

“Points for what?”

“Points for points. We’re engineers.”

“And everyone has their own color?”

“Yeah, so we know who has the most points. Give me a blue pen, I’ve already got root cause on bug #3.”

“Blue?”

“Yeah, I’m always blue.”

Chapter 3. Your People

A Note for Early Release Readers

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be the 19th chapter in the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at jleonard@oreilly.com.

In your career there’s a list of essential career intangibles. These are the things you need to do in order to be successful, which are also maddeningly difficult to measure. There is no direct correlation between completing these activities and a raise. It’s unlikely that accomplishing these indefinite tasks will end up in your review, but via organizational and social osmosis, you’ve learned these intangibles are essential in order to grow.

I want to talk about one: networking.

There are two types of networking. Basic networking is what you do at work. It’s a target-rich environment with coworkers, your manager, and those of interest in close proximity. It’s work, but it’s easy work because your day is full of those you depend on, and you’ve learned that professionally befriending these people keeps you comfortably in the know.

I’m going to call the other type “people networking,” and it’s harder work. This is when you put yourself out there. It’s attending a conference where you know no one. It’s driving to the city to sit in a coffee shop with 10 strangers bonded by a programming language. It’s a leap for the socially awkward, but the infrequent reward is that you discover Your People.

I don’t have a good definition for these people, so I made a list. My hope is that as you read this list you’ll think of at least one person you know who is already Your People:

- Your connection with Your People is instant and obvious; it transcends age and experience.

- The best way to discover whether someone is Your People is absence. If, when they return, it’s as if they never left, they are Your People.

- There are more of them than you expect, but their number is disguised by the ebb and flow of their presence in your life.

- An investment of time with them will be repaid, but not in a way you can predict or expect. That is the point.

- Your People will piss you off because the relationship is genuine. They do not coddle and they do not spin. Consequently, Your People error-correct you in ways that others cannot.

- You may call on each other without reason, randomly. During these random visits, hours of time will vanish, and neither you nor Your People will notice.

- Conversely, long silences are also acceptable and comfortable.

- Your People have a knack for showing up when you need them, even if you didn’t know you needed them prior to their arrival. I don’t know how they do this, but the more People you have, the more likely it is that this will happen.

- Your People rarely demand anything. But when either you or they make a request, neither the request nor the agreement to do it is ever in question.

- Your People keep you in balance. Their presence reminds you first that you’re never flying solo and, second, that there are two sides to every story.

- Your People instinctively know who you are and are able to say accurate and valuable things to you and about you with stunningly little data.

- You get mail and messages all day from everyone, but you stop whatever you are doing and respond whenever your people reach out.

- Your people reach out randomly… delightfully.

- Your People will always be Your People—even if they leave and never return.

When I’m talking about Your People, I am not thinking of your best friend. Sure, your best friend might be Your People, but I’m talking about a larger population who aren’t necessarily your friends and who aren’t your family. These are a strange lot of people you’ve discovered in a motley array of places because you were searching for them.

Furthermore, I am not suggesting that those who are not Your People are somehow less valuable. In fact, the majority of the folks in your life are going to be extraordinarily more work than those who are instantly familiar. The work in bridging the gap between you and those who are harder to know is also an essential intangible skill.

Lastly, while Your People may be less work, they are harder people to have in your life. These are not people that let you sit in place, these are people who hold a mirror up to your disasters , and who explain, in excruciating detail, exactly what you don’t want to hear. If they did not do these things, they would not be Your People.

Share What You Build

It’s going to take quite a shove to get you out of your Cave and into a situation where you’re likely to stumble upon Your People. A list twice the size as the one here isn’t convincing you to move an inch, because strangers are, well, strange. They’re unpredictable nobodies who have no idea they’re supposed to be your new genuine friends.

My end run around my social insecurity has always been my hobby: writing. It’s late on Monday night and I’m blaring T’Pau because one hit wonders are my thing while I’m transforming this article from a blog entry into a chapter for the book. The lights are all off, and I’m wearing a hood because this month I’m a better writer when my head’s covered. Go figure.

This writing hobby, this wonderful, dark, antisocial place has the fortunate upside of appealing to people I do not know, and when I’m not looking, I find ways to use the writing to find more people. I publish a blog entry and carefully read every comment for a sign of a person who I need to follow up with. I turn a chapter into a presentation. A presentation that I give to a room full of strangers who, when I’m done, occasionally approach me to talk about these things I write when I’m alone. These presentations are often at conferences that I’ve discovered are target-rich environments for people I need to know.

Engineers build stuff. I’m not sure what you build, but when no one is looking, you build something. I’m not talking about what you’re paid to build; I’m talking about what you build for yourself. You have a different relationship with this work than the work you’ve been asked to do. You have more confidence about a work that is entirely yours. I see no reason why you can’t parlay that confidence into conversation with others who share your interest in the intimacy of that which you build for yourself.

More good news. Likely candidates are nearby. You probably already know who they are, and you likely already talk with them daily, but you’ve also likely never seen them.

Just because you have hundreds of Twitter followers or a Discord list chock full of names doesn’t mean you’ve found Your People. The final addition to my list is, “They’re Your People because you know them.” I’m not suggesting your Facebook pals aren’t an important part of your life, but until you’ve sat in a bar arguing about the relative benefits of your favorite programming languages until 2 a.m., you don’t know how someone is built.

The Internet connects us, but the medium also filters out the aspects of humanity that make us interesting and knowable. You’re not going to know me until you see that I talk with my hands. I’m not going to know you until I realize that when you’re really thinking about a thing, you can’t look anyone in the eyes, because it distracts you.

You Tell Stories

All day. It’s a constant story being composed in your head. You’re doing it right now. You think you’re reading this paragraph that I’ve written, but what you’re actually doing is telling yourself the story of reading this paragraph. It’s your inner dialog, and it’s often a convenient lie biased in your favor.

I’m not saying you deliberately lie to yourself. OK, maybe I am, but we’re all doing it. We’re all gathering data through the course of the day and creating a story based on that data, our experience, and our moods. It’s a perfectly natural phenomenon to guide the narrative in our favor. We see the world how we want. As we edit our days into these stories, there is always a risk of fiction. This is why you need to identify and nurture Your People.

You tell these stories to Your People without reservation. Your People love your stories—fiction and all. They love how you tell them, they laugh about the lies you tell yourself, and then they stop and they tell you the truth.

Networking is the art of finding those who are willing to listen to and critique your stories, so go look at your Inbox. Better yet, go look at your Sent box. Check your phone and see who you call the most and who calls you. I’m certain that, right now, one of Your People wants to hear a story and they have one for you, too.

Chapter 4. Making Decisions: Check Your Work, Ask for Help, and Slow Down

A Note for Early Release Readers

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be a later chapter in the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at jleonard@oreilly.com.

The quality of your decisions is the currency of leadership.

It starts easy. The stakes are low. There is a legion of leaders around you who understand you’ve just begun, so when they see the decision in front of you, they proactively offer helpful advice. If the decision appears too complicated, excessively risky, or obviously high stakes, your manager raises his or her hand and helpfully suggests, “I got this one.”

You are thankful because you had… no idea how to decide.

It gets harder. The stakes increase. There are more blank stares from trusted peers when these decisions appear, not because they don’t want to help but because they don’t know how. They have never seen this type of decision before. However, like you, they can understand the importance of this decision and the necessity of it being your decision. Your manager will offer to help, but she’ll wait longer to offer this help because she understands the value of you learning how to make this decision.

Then, it seems impossible. The stakes couldn’t be higher. Trusted peers grin nervously as you walk. They feel equal parts empathy for the difficulty of the decision and relief that it’s not on their shoulders. You have zero intuition on how to make this decision. No, it’s worse than that. You don’t even know how to decompose the problem to start to understand how to make a decision… or decisions?

Easy, hard, or impossible. The decisions merrily show up each day, unaware of your ability or availability. They just know you’re the leader and it’s your job to decide.

I have advice. Unfortunately, it’s not advice on how to make the decision, but it’s the same advice repeated three times written in different ways.

Check Your Work

Let’s start with the relief that accompanies the discovery of the hint of a decision. The magnitude of relief is a function of the stakes. The glimmer of potential resolution is intoxicating, but my first piece of advice is to check your work.

It’s glorious, right? Your experience and intuition are providing you insight into the proper decision. Feels magical to instantly know the correct approach, and these moments blissfully increase as you accumulate years of experience.

Oh, this again. I know how to do this.

The situation may seem familiar. They might be using the exact words to describe the situation, but it behooves you as a leader to reflect on the decision and check your work.

Sure, this seems obvious, but last time it was a different set of people. How will the decision affect this set of people? Are there different potential consequences because it is a different group? Can I see the d ecision so quickly because I truly know the right decision? Or, is it because the stakes are high that I feel the need to decide quickly? What am I missing?

Let the decision swirl in your head a bit. Let it knock around. Let it bump into other ideas. Let it stew, simmer, and evolve. And then…

Ask for Help

I’m miserable at asking for help. It’s not just the introversion thing, but also the stubborn erroneous perception that asking for help is somehow an admission of weakness. They’re looking at me to decide and if I alone can’t make the right decision then they won’t believe I’m their leader.

In my experience in asking for help, the clear articulation that you don’t know is a defining and trust-building moment with the team. Yes, they like to see you effectively lead, they are proud when you stand in front of the team and explain how we’re going to win, ,but they also realize you’re a work in progress. When you ask your team, your peers, or your manager for help, it levels the playing field and reminds all involved that we’re in this together.

Yes, it is your decision, but no one expects you to bear the entirety of its weight. Besides, you have more time than you think because my last bit of advice is to…

Slow Down

My intuition was to put this advice first, but I’m putting it last because it’s the most important. In the fury of a high-stakes decision, you sense three things -- two are facts and one is a lie:

- Here’s a big decision.

- It’s 100% your responsibility.

- And, you better hurry.

The urgency is often the lie. Everyone can clearly see that a big decision needs to be made. It’s also readily apparent that it’s entirely yours to make. This combination of the decision’s magnitude and obvious single ownership creates pressure. Don’t confuse pressure with urgency. Don’t confuse importance with urgency.

This last bit of advice is designed to give you the time you need to check your work. Slowing down gives you the opportunity to ask for all the help. Taking time to think on the most critical decisions, in my experience, is how you build a higher quality decision. By slowing down, I drain the emotion, urgency, and irrationality that often arrive with these decisions, and I’m able to see what’s important versus what everyone is urgently yelling.

Big decisions have a fan club. These are the humans swirling around the decision who care deeply about its outcome. They have contradicting motivations: they know enough about the decision area to call themselves experts, but they are also intimately aware (or annoyed) that it’s not their decision to make.

The fan club grows annoyed when you don’t move with – what they perceive as – appropriate urgency, so I’ll repeat myself: the quality of your decisions is the currency of leadership.

It’s not that you moved quickly, it’s that you invested enough of your time to build a quality decision. You won’t be judged on how quickly you decide; you will be judged by the consequences of your decision that appear in the hours, days, weeks, months, and years after you decide. It is these results that build your leadership reputation.

What If I’m Wrong?

That’s the question that shows up in the middle of the night for me when considering a big decision. It’s a good question. What if you’re wrong? What will happen when you decide? Wander those pathways in your head and with your trusted peers because attempting to predict the unpredictable is a critical part of the decision-making process. You’ll need to explain these potential consequences when you’re presenting your decision to everyone.

How do I know when I’ve made a decision? It’s not when I can explain the decision, it’s when I can tell you the story of how I decided, what I expect to occur as a result, and what we’ll do if I’m wrong. And, you understand.

See, because I’ve thought it through, it’s becoming a compelling, thoughtful, and defensive story. When I tell those I trust the story, they believe me.

Chapter 5. Ok. So, You Can’t Decide.

A Note for Early Release Readers

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be a later chapter in the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at jleonard@oreilly.com.

Even if you’ve checked your work, asked for all the help, and are moving gingerly, there will be instances when you can’t decide. You’ve considered and reconsidered your pro/con lists, you’ve had endless debates with informed humans, but you remain mentally paralyzed.

I have an observation regarding this paralysis, and then advice.

First, the paralysis might mean you’re subconsciously aware you’ve missed an essential aspect of the decision, and your brain isn’t letting you decide until you mentally uncover this essential information. In all your research, conversation, and deliberation, you’ve not found the obvious answer. Worse, you’ve discovered a whisper of a hint there is something important yet to be discovered, and that discovery might push your decision one direction or the other.

This is a subtle slippery mindset. It’s a convenient excuse for the decision impaired. It allows us to stall even longer, but in my experience, the whisper of a hint is experience speaking…quietly.

In this situation, I need to take a very long bike ride. There is no additional conversation that needs to occur. A whiteboard is not going to help. I need to push the entire situation to the very back of my brain. I need to stick it back there where the wild things are because, in this moment, they know better than I.

Maybe you don’t bike. Ok, what is your deep consideration activity? Where do you find random thoughts and inspiration, outside of the shower? Do that for as long as is necessary and see what you discover. Don’t force it, just put yourself into deep consideration and see what happens.

Or maybe…

You just need to decide.

Having been through a great many hard decisions, I can tell you there are two distinct moods around a decision:The great debate before the decision, and then the great relief after the decision.

The defining characteristic of the great relief is the sense of immediate progress. After days or weeks of careful analysis, you are suddenly moving forward again and…it’s a delightful relief. You are no longer stuck endlessly second-guessing yourself.

Remember when you accepted the job offer? Remember when you bought the new car? Remember what it felt like the moment after you said “Yes” to the company or signed on the dotted line? A weight is immediately lifted, “Ok, this is happening.”

You instantly become mentally limber. What was an infinitely complicated and unmeasurable set of interrelated pros and cons has now become work. Chances are the decision is so fresh that you have no idea whether it was the right decision or not, but you don’t care because you are no longer stuck. Even if unexpected consequences begin to show up, you eagerly attack them because consequences are more fun than mental paralysis.

Yeah…yeah. I am reluctantly suggesting that the move is sometimes to just decide. There is a real risk here, but if you’ve built yourself a formidable mental block, you’re wasting precious time swirling around your head and it’s time to make forward progress.

A profound change of perspective follows making a decision. It’s no longer theoretical; it’s happening. You are doing something as opposed to talking about doing something. Even better, as potential consequences begin to arrive, you gather initial essential data on the quality of your decision. Remember that aspect of the decision you thought was critical? Yeah, now that the decision is in the wild, you see it is irrelevant. And that allegedly irrelevant detail? Yeah, now it’s loudly and painfully essential. Whoops.

It’s frustrating when the early reactions arrive, and you realize all your forecasting work only provided half of the essential data. Your frustration is doubled when the “I Told You So” humans show up to remind you that you ignored a critical part of their counsel. Ignored is the fact that we only know the critical role of their counsel because your decision revealed the importance.

Yes, some humans are naturally talented at decision forecasting, but there is a critical difference between those critics and you. They sit at a professional, comfortable distance from the decision. They are mostly immune to the consequences, which gives them mental comfort.

Meanwhile, you are accountable for this decision, and, once again, I’ll remind you that most humans believe accountability means responsibility. What it means is “required or expected to justify actions and decisions.” To give account.

The decision you made is entirely yours, and while the work preceding a hard decision can feel like an immense and endless chore, decisions and their subsequent consequences are, in fact, a privilege of leadership.

Chapter 6. The Sabotage List

A Note for Early Release Readers

With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be a later chapter in the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at jleonard@oreilly.com.

Imposter syndrome. It’s the feeling that pure happenstance or just dumb luck is the reason you’re in this current role. It’s a sense you don’t belong, you aren’t good enough, and– real soon now –everyone is going to see you for who you really are.

You might have felt this before, and I’m sure many of your peers are feeling it right now. When the topic comes up amongst friends and co-workers, when someone asks, “How many of you have felt Imposter Syndrome?” I’m surprised how many confident, talented, and hard-working humans raise their hands instantly.

Where does it come from? Why does it exist in talented and experienced humans?

I don’t know. I’m not a psychologist. Just another human. Trying to figure it out. A little bit at a time.

It’s one of the items on a terrifyingly long list of irrational human behaviors that I don’t understand. Still, where I’ve had success is giving the behavior a name so I can see it. This allows me a chance to succeed at Step 2.

The Untitled List

There’s a list on the last page of my current personal notebook. It has no title. Each time I finish a notebook, I dutifully translate the current version of this list from old to new notebook.

This untitled list is my Sabotage List. It’s a list of important projects I’m currently not doing for… reasons. I’ll explain some of the reasons as best I can shortly, but the majority of the hard work is honestly building and maintaining this list.

Important projects I’m not doing. Essential projects. Doesn’t make sense, right? Well, become comfortable with irrationality if you’re going to finish this piece. Yes, they are important. Yes, under self-inflicted duress and just between you and me, yeah, I acknowledge I’m not actively working on these projects. Why? Here are some world-class, totally reasonable excuses:

- Next thing on the list! Been super busy.

- I’m working on step one this week and will report back shortly.

- Blocked on Person X, who needs to deliver thing Y.

- It’s on the calendar!

Do you know when someone is spinning you? Not lying, spinning. I do, and I don’t need to hear a single spoken word to sense it. All I need to see is the same instant subtle physical discomfort before they speak.. The unease accompanied by manufactured enthusiasm, designed to be a cover, and saccharine excitement deployed as a targeted distraction. I know it because I do it, too.

Why am I sabotaging myself? I don’t know. I’m not a psychologist. Just another human. Trying to figure it out. A little bit at a time.

An easier question is: why keep a list of important projects I’m not actively working on?

The Reasons

As promised, here are some obvious-to-me reasons that are woefully incomplete as to why I might not be engaging with these important projects:

- The project doesn’t deliver obvious value. I can’t see why I would execute this project when the return on investment is so low. (Yeah, so, why is it on this list?)

- The work is complicated , so complicated that I instinctively don’t know how to start. When I consider the project, I’m drawing a blank. ( Yeah, so, you’ve completed far larger and more complicated projects many, many times. )

- There is downstream scariness and/or professional discomfort that will occur for one or more of my team members due to completing this project that I don’t want to face. ( NooOooOOow we’re getting somewhere. )

- …or it’s something else. (LA. LA. LA. I don’t know. I’m not a psychologist. Just another human. Trying to figure it out. A little bit at a time.)

Sabotage is a strong word. It’s declarative. It accuses. That’s why I picked it. The Sabotage List isn’t for you; it’s for me. The goal is not to resolve each item on the list. The goal is to make sure it exists as a visible artifact rather than carefully tucked away in the deep dark corners of my brain. Invisible. Hiding, but with an impressive weight.

When I review the list, I don’t have a proscribed process, but I am always aware it’s there. Occasionally and always unplanned, I glance at the list and wonder for a moment, Why is this here? What is the reason I choose not to act?

Often, a silent efficient irrational defense mechanism prevents me from thinking deeper, but sometimes… sometimes in that brief reflection, I find revelation. Oh, I’m not working on this because… 10 years ago, THIS happened, and it hurt, and I’ll never forget that hurt, thank you very much. My prior experience left a mental scar, and simply knowing that it exists is immense progress. Not because I found a way forward, but because now I know why I stopped.

A list carries weight. It often documents a set of things you need to do. This is a flaw in the Sabotage List. I sometimes cross an item off the list, but I’m never done. It’s never empty. The Sabotage List, like Imposter Syndrome, is a name for a thing, but also a reminder that there is much I don’t know and, no, I’ll never be a psychologist, but I’ll always strive to figure it out.

A little bit at a time.

About the Author

Michael Lopp is a veteran Silicon Valley-based engineering leader who builds both people and product at historic companies such as Borland, Netscape, Palantir, Pinterest, Slack, and Apple. While he’s not deeply worrying about staying relevant, he writes about backpacks, bridges, people, leadership, and werewolves at the popular weblog, Rands in Repose. He currently works at Apple on “things”.

Michael has three books. His first book Managing Humans, 3rd Edition is a popular guide to the art of engineering leadership and clearly explains that while you will be rewarded for what you build, you will only be successful because of your people. His second book Being Geek is a career guide for geeks and nerds alike. Michael’s third book, The Art of Leadership: Small Things, Done Well published in May of 2020.

Michael rides bikes in the mountains, splits wood, and drinks red wine amongst the redwoods of Northern California because staying sane is more important than staying busy.

Table of Contents

- 1. Invest in the Boring

- Sigh

- Three Meetings

- 1:1s with my staff
- Staff
- “Look What We Built” meeting

- Invest in the Boring

- 2. Gaming the System

- An Entertaining System

- Discovery: From Confusion to Control

- Optimization, Repetition, and Win: A Paradox and a Warning

- Achievement: Who Cares if You Win by Yourself?

- The Rules of the Game

- The Whiteboard Game

- 3. Your People

- Share What You Build

- You Tell Stories

- 4. Making Decisions: Check Your Work, Ask for Help, and Slow Down

- Check Your Work
- Ask for Help
- Slow Down
- What If I’m Wrong?

- 5. Ok. So, You Can’t Decide.

- You just need to decide.

- 6. The Sabotage List

- The Untitled List

- The Reasons

- About the Author