More on this book
Community
Kindle Notes & Highlights
What’s going to make or break your career is how well you collaborate with others.
The more feedback you solicit early on, the more you lower this risk.
Working with other people directly increases the collective wisdom behind the effort.
“Many eyes make sure your project stays relevant and on track.”
Almost every social conflict can ultimately be traced back to a lack of humility, respect, or trust.
A better way to say the same thing might be, “Hey, I’m confused by the control flow in this section here. I wonder if the xyzzy code pattern might make this clearer and easier to maintain?” Notice how you’re using humility to make the question about you, not him. He’s not wrong; you’re just having trouble understanding the code.
A good postmortem should include the following: A brief summary A timeline of the event, from discovery through investigation to resolution The primary cause of the event Impact and damage assessment A set of action items to fix the problem immediately A set of action items to prevent the event from happening again Lessons learned
The more you are open to influence, the more you are able to influence; the more vulnerable you are, the stronger you appear.
The first mistake most team members make is to assume the team leader curates the culture of a team. Nothing could be further from the truth: while the founders and leads usually tend to the health of your culture, every member of your team participates in the culture and bears some responsibility for defining, maintaining, and defending the culture.
The team cultures that are most successful are those that focus the majority of the team’s effort on shipping great software.
A strong culture gives you focus, efficiency, and strength, and these things make for a happier team.
Calm, easygoing cultures built on respect are more vulnerable to disruption by aggressive people than aggressive cultures are vulnerable to disruption from more easygoing people. Easygoing cultures need to be aware of this and not let the aggressive newcomer take over, typically by refusing to engage this person in an aggressive tone.
A good general rule around communication is to include as few people as necessary in synchronous communication (like meetings and phone calls), and to go for a broader audience in asynchronous communication (like email, issue trackers, and document comments).
There’s a ton of substance packed into that sentence, and we think it’s an excellent example of a mission statement: it includes both a direction (improve the web experience…by enabling developers) and a scope limiter (Java tools).
writing a mission statement forced them to confront their differences and come to an agreement on their product’s direction, a problem that could have slowed down (or stopped) development of the product as time went on. They posted their mission statement on the Web, and not only did the entire team have a laser focus on what they wanted to do with their product, but it saved them months of time arguing with potential contributors about the product’s direction
If you’re trying to design something new, try to include no more than five people in your meeting — it’s practically impossible to come up with new designs and make decisions with more than five people in a room unless there’s only one person in the room making the decisions.
Schedule time on your calendar in three- to four-hour blocks and label these blocks as “busy” or even “make time,” and get your work done. If you have to set up a meeting, try to set it up near another natural break in the day, like lunchtime, or at the very end of the day. At Google, there’s a long (and unfortunately, often ignored) tradition of “No-meeting Thursdays”12 in the interest of clearing time to just get work done.
Five simple rules for running a meeting: Only invite people who absolutely need to be there. Have an agenda and distribute it well before the meeting starts. End the meeting early if you’ve accomplished the meeting’s goals. Keep the meeting on track. Try to schedule the meeting near other interrupt points in your day (e.g., lunch, end of day).
Only invite people to the meeting who actually need to be there for the meeting to accomplish its goal.
Some people have taken to banning laptops in meetings after they’ve noticed attendees reading email instead of paying attention, but this is attacking the symptom and not the cause — people start reading email in a meeting because they probably don’t need to be in the meeting in the first place.
In the Subversion project we had a motto: “If the discussion didn’t happen on the email list, then it never really happened.”
Comments should be focused on why the code is doing what it’s doing, not what the code is doing.
To frame this in the context of HRT: if the manager makes it obvious that she trusts her employee, the employee feels positive pressure to live up to that trust. It’s that simple. A leader forges the way for a team, looking out for their safety and well-being, all while making sure their needs are met.
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).
Based on this metric of productivity, at the end of a busy day of “management” you’ll usually find yourself thinking, “I didn’t do a damned thing today.” It’s the equivalent of spending years counting the number of apples you picked each day, and changing to a job picking bananas, only to say to yourself at the end of each day, “I didn’t pick any apples,” handily ignoring the giant pile of bananas sitting next to you.
“Above all, resist the urge to manage.” One of the greatest urges of the newly minted manager is to actively “manage” her employees because that’s what a manager does, right? This typically has disastrous consequences.
As a servant leader, you should strive to create an atmosphere of humility, respect, and trust (HRT). This may mean removing bureaucratic obstacles that a team member can’t remove by herself, helping a team achieve consensus, or even buying dinner for the team when they’re working late at the office.
We understand that the human aspect is the hardest part of writing software, but the hardest part of dealing with humans is handling someone who isn’t meeting expectations.
How does one coach a low performer effectively? It turns out that the two of us have (unfortunately) had quite a lot of experience in this area, gained through painful trial and error. The best analogy is to imagine you’re helping a limping person learn to walk again, then jog, then run alongside the rest of the team. It almost always requires temporary micromanagement — but still a whole lot of HRT, particularly respect. Set up a specific time frame (say, two or three months), and some very specific goals you expect him to achieve in that period. Make the goals small and incremental, so
...more
Apologizing doesn’t cost money. People have enormous respect for leaders who apologize when they screw up, and contrary to popular belief it doesn’t make you vulnerable. In fact, you’ll usually gain respect from people when you apologize, because apologizing tells people you are level-headed, good at assessing situations, and — coming back to HRT — humble.
The person asking for advice typically doesn’t want you to solve her problem, but rather to help her solve it, and the easiest way to do this is to ask her questions.
Instead of micromanaging and trying to make continuous course corrections, he spends most of his week carefully watching and listening. At the end of the week he makes a small chalk mark in a precise location on the blimp, then gives a small but critical “tap” to adjust the course.
In many cases, knowing the right person is more valuable than knowing the right answer.
A good way to build a culture where risk taking is accepted is to let your team know it’s OK to fail.
In fact, we like to think of failure as a way of learning a lot really quickly (providing that you’re not repeatedly failing at the same thing).
If an individual succeeds, praise him in front of the team. If an individual fails, give constructive criticism in private.12
Set Clear Goals This is one of those patterns that, as obvious as it sounds, is solidly ignored by an enormous number of leaders.
As a leader, one way you can make your team more productive (and less likely to leave) in the long term is to take some time to gauge their happiness.
Yet another leader starts one-on-one sessions with his team members by dealing with their technical issues as a way to break the ice, and then takes some time to make sure each engineer has everything he needs to get his work done. After they’ve warmed up, he talks to the engineer for a bit about how he’s enjoying the work he’s doing and what he’s looking forward to next.
Share as much information as you can with your team, but don’t distract them with organizational craziness that is extremely unlikely to ever actually affect them.
Dan claims you can increase intrinsic motivation by giving people three things: autonomy, mastery, and purpose.15
Lack of Respect for Other People’s Time There are certain people out there who simply are unable to figure out what’s going on in a project. Their damage is most often in the form of wasting the team’s time.
Concentrating your effort on removing toxic behavior is often enough to turn an intelligent (although perhaps socially awkward) person into a productive member of your team.
Once a good-enough solution is found for the original problem, point the perfectionist to a different problem that still needs attention.
Always bring the argument back to a technical discussion.
“Yeah, there are only a few crazy people out there; the Internet just makes it seems like they all live next door.”
Pursue extra responsibility as you’re getting your work done.
In the presence of an enlightened manager, failing is a great way to learn quickly, discover the limits of what you can and can’t do, and grow those limits over time. Our friend Steve Hayman, who travels a lot for work, has often said, “If you don’t miss at least one flight a year, you’re getting to the airport too early.”
Fear of failure is one of the most common traits of bad managers. This insecurity tends to make them very conservative, which is antithetical to the work style of the typical engineer.
If you’re trying to persuade someone, a great way to increase your chances of success is to find several people who agree with you and get them to drop your idea (or proposal or request) in a conversation with that person.

