More on this book
Community
Kindle Notes & Highlights
Read between
September 16 - September 23, 2019
Bus factor (noun): the number of people that need to get hit by a bus before your project is completely doomed.
This “open floor plan” is now a topic of huge debate. The tiniest conversation becomes public, and people end up not talking for risk of annoying dozens of neighbors. This is just as bad as private offices!
self-worth shouldn’t be connected to the code you write — or any creative project you build. To repeat ourselves: you are not your code. Say that over and over. You are not what you make. You need to not only believe it yourself, but get your coworkers to believe it too.
A proper postmortem should always contain an explanation of what was learned and what is going to change as a result of the learning experience.
once you reach a local maximum on your team, you stop learning. And when you stop learning, you get bored. Or accidentally become obsolete.
Put yourself outside your comfort zone now and then; find a fishbowl with bigger fish than you and rise to whatever challenges they hand out to you. You’ll be much happier in the long run.
writing a mission statement forced them to confront their differences and come to an agreement on their product’s direction,
Whoever’s running the meeting should actually run the meeting and not hesitate to (gently) cut off someone who veers off-topic or, even worse, tries to monopolize the conversation.
don’t be afraid to end a meeting early if you’ve completed the agenda.
Comments should be focused on why the code is doing what it’s doing, not what the code is doing.
Traditional managers worry about how to get things done, while leaders worry about what things get done…(and trust their team to figure out how to do it).
you should strive to hire people who are smarter than you and can replace you. This can be difficult because these very same people will challenge you on a regular basis
Ignoring low performers is also a way to keep new high performers from joining your team, and a way to encourage existing high performers to leave.
Make the goals small and incremental, so there’s an opportunity for lots of small successes. Meet with the team member every week to check on progress, and be sure you set really explicit expectations around each upcoming milestone, so it’s easy to measure success or failure. If the low performer can’t keep up, it will become quite obvious to both of you early in the process. At this point, the person will often acknowledge that things aren’t going well and decide to quit; in other cases, determination will kick in and he’ll “up his game” to meet expectations.
you can lead a team and build consensus without being a peer of your team (or a monumental hard-ass). Likewise, you can be a tough leader without tossing your existing friendships to the wind. We’ve found that having lunch with your team can be an effective way to stay socially connected to them without making them uncomfortable
The cost of finding the right person — whether by paying recruiters, paying advertising, or pounding the pavement for references — pales in comparison to the cost of dealing with an employee you never should have hired in the first place. This “cost” manifests itself in lost team productivity, team stress, time spent managing the employee up or out, and the paperwork and stress involved in firing the employee.
If you’re managing a team where you don’t have a say over hiring and you’re unhappy with the hires being made for your team, you need to fight tooth and nail for higher-quality engineers.
If it’s permanently necessary to micromanage people because you don’t trust them, you’ve got a hiring failure on your hands.
Try to appreciate inquiry: when someone questions a decision or statement you made, remember that this person is usually just trying to better understand you. If you encourage inquiry, you’re much more likely to get the kind of constructive criticism
Another way to catalyze your team is to make them feel safe and secure so that they can take greater risks.
if you try to achieve an impossible goal, there’s a good chance you’ll fail, but if you fail trying to achieve the impossible, you’ll most likely accomplish way more than you would have accomplished had you merely attempted something you knew you could complete.
One of the most valuable tools in tracking your team’s happiness is, at the end of each one-on-one meeting, to ask the team member, “What do you need?” This simple question is a great way to wrap up and make sure each team member has what he needs to be productive and happy,
Giving a little extra slack to a team member who is having a tough time at home now can make him a lot more willing to put in longer hours when your team has a tight deadline to hit later.
whenever she sees a message from a customer talking about how the company’s product has helped the customer personally or helped the customer’s business, she immediately forwards it to the engineering team. This not only motivates the team, but also frequently inspires them to think about ways they can make their product even better.
somebody may be a great technical contributor but still exhibit poisonous behavior. There’s a temptation to turn a blind eye to the behavior in order to benefit from the technical advancement. But be careful! A strong culture based on HRT is irreplaceable, while technical contributions are definitely replaceable.
Pursue extra responsibility as you’re getting your work done.
“If you don’t miss at least one flight a year, you’re getting to the airport too early.” This is a great metaphor for creating any sort of product: if you don’t fail at least once a year, you’re not taking enough risks. And like the pursuit of extra responsibility, taking risks is a way to show you’re capable of bigger things.
If your manager makes a decision that you disagree with, don’t be afraid to argue with her
Fear of failure is one of the most common traits of bad managers.
the insecure manager will insist on inserting herself into any interaction you have with people outside your team, thereby preventing you from speaking directly to other teams without “going through the chain of command.”
By hoarding information and requiring that they be a conduit for information and communication, bad managers are also able to take credit for your successes3 and blame you for your failures
this: is your manager serving you? Or are you serving your manager? It should always be the former.
If you don’t put energy into getting promoted because you don’t want to “play the game,” you may find that the office politician gets promoted over you, in which case you’ve now got a bad manager and an office politician.
Many companies are filled with people who are obsessed with organizational hierarchy.4 This results in endless power struggles, with managers often preventing engineers from transferring to another team in order to protect their own team from losing a valuable contributor — even when the right thing to do for both the company and the engineer is to let the transfer happen.
If you focus on the way things should be in your organization, you’ll usually find nothing but frustration and disappointment. Instead, acknowledge the way things are, and focus on navigating your organization’s structure to find the mechanisms you can use to get things done and to carve out a happy place for yourself in your company.
If you spend all your capital winning a bunch of battles that just don’t matter, you’re going to find that you have nothing left in your account when it comes to the important things. Be strategic and fight for things either that matter or that you’re pretty sure you have some chance of winning.
pad out your deadlines, but wherever you can, try to avoid promising things that you can’t deliver, even if it means saying “no” more often than you’d like.
focus your energies on launching products over just about everything else. Shipping things gives you credibility, reputation, and political capital more than just about anything else in a company.
Offensive work is typically effort toward new user-visible features
Defensive work is effort aimed at the long-term health of a product (e.g., code refactoring, feature rewrites, schema changes, data migration, or improved emergency monitoring).
a team should never spend more than one-third to one-half of its time and energy on defensive work, no matter how much technical debt there is. Any more time spent is a recipe for political suicide.
you’ll frequently be able to call on folks at your company for a hand even after you’ve left. This is all the more reason that you should never burn bridges when you leave a company,
when given a chance to help right a wrong, more often than not people in positions of power would love to do the right thing
A good Three Bullets and a Call to Action email contains (at most) three bullet points detailing the issue at hand, and one — and only one — call to action. That’s it, nothing more — you need to write an email that can be easily forwarded along.
you can’t change the system, there’s no point in continuing to put energy into changing it. Instead, put energy into leaving it: update your résumé, and start asking your close friends if they know of any openings for you at other companies. Train yourself in new things.
I do the Right Thing for Google and the world, and then I sit back and wait to get fired. If I don’t get fired, I’ve done the Right Thing for everyone. If I do get fired, this is the wrong employer to work for in the first place. So, either way, I win.
Bad ads get removed from the system and feedback is given to the advertiser to improve its ads. At first this seems counterproductive for the short term: Google is actively rejecting revenue sources. But by making the searcher (rather than the advertiser) the focus of attention, it dramatically increases the usefulness (and usage) of Google’s search advertising system over the long term.
The first time your software runs, don’t present the user with a giant form to fill out or a giant panel of mandatory preferences to set. Forcing the user to create some sort of new account is pretty off-putting as well; it implies long-term commitment before the user has even done anything.
Marketing Be aware of how people perceive your software; it determines whether they even try it out. Product design If your software isn’t easy to try, fast, friendly, and accessible, users will walk away. Customer service Proactive engagement with long-term users affects your software’s evolution and user retention.

