Chapter 1. The Myth of the Genius Programmer
Since this is a book about the social perils of creative development, it makes sense to focus on the one variable you definitely have control of: you.
People are inherently imperfect. But before you can understand the bugs in your coworkers, you need to understand the bugs in yourself. We’re going to ask you to think about your own reactions, behaviors, and attitudes—and in return, we hope you gain some real insight into how to become a more efficient and successful software engineer. You’ll end up spending less energy dealing with people-related problems and more time writing great code.
The critical idea in this chapter is to understand that software development is a team sport. And in order to succeed on an engineering team—or in any other creative collaboration—you need to reorganize your behaviors around the core principles of humility, respect, and trust.
Before we get ahead of ourselves, let’s start by observing how programmers behave in general.
Help Me Hide My Code
The two of us have been speaking at programming conferences quite a bit for the past ten years. After launching Google’s open source Project Hosting service back in 2006, we used to get lots of questions and requests about the product. Back in mid-2008, we noticed a distinctive trend in the sort of requests we were getting:
Can you guys please give Subversion on Google Code the ability to hide specific branches?
Can you guys make it possible to create open source ...