Tomorrow's my first day on my new job at Google, but before that, I'd like to share some lessons I learned during my 3 years at Yahoo!. The most important lessons I learned, in my opinion, weren't about specific products or features, or even about programming or technology, per se, but more about people and how they go about their business in an organization.
In the interest of time and brevity, I'll just put it in list form, even though this post has, at various times, been much more verbose. Also, standard disclaimer: my own personal opinion, I do not represent anyone else, etc.
- Primacy of great teams. Great products are built by great teams, comprised of great individuals, bonded by excellent teamwork and collaboration. You've probably heard that before, but let me phrase it a little differently: Without great individuals and excellent teamwork, you can't build a great product. I once pointed out to a manager how a couple of sub-par programmers on a team were dragging the rest of the team and the product down with them, but was told "nah, they can do it, they'll just take longer." It turned out they did take longer, which meant it took that much longer for people to realize that what they were building was useless and had to be rebuilt. I learned that talent isn't a sliding scale, but actually more binary; good people can do what bad people can't, and great people can do what good people can't. Teamwork, on the other hand, is less rigid. Sure, you occasionally have people who are asses or difficult to work with, but as long as you have good cultural norms, management, processes, guidelines, communication, etc, it's possible to create good collaboration (some of the later points will related to this).
- Be critical of structure. We live in a competitive world, and most of us want to win. Even if you don't want to win, your investors, shareholders, or bosses will demand that you do better than before, and do better by larger margins. To do better (either than yourself or others), you usually have to do things differently. Of course, we can't do everything differently all the time because that'd be too chaotic, so we impose structure everywhere: named software development processes, organizational structures, guidelines, standard interview questions, where you go for drinks. But structure leads to sameness, so to be different and do better, examine your structures. Do we really need a meeting every morning? Do we really need six product managers? Do we really need 3 layers of VPs? Be critical, and change things until things get better.
- Risk aversion is death. This is closely related to my previous point, so I won't say too much. I said you have to change to do better, but change also incurs risk. People usually are afraid of risk because they fear they might end up worse off. But risk aversion leads to stagnation, or inability to react, change, do better, and you end up doing worse. Ironic isn't it? In a world where staying still isn't an option, you can't be afraid of taking risks.
- Cheerleading isn't leading. And I'm not talking about George W Bush. I've seen plenty of leaders who applauded and congratulated unimpressive feats -- like shipping a crappy product two months late. What are they saying? Are they saying that we've accomplished our task if we ship something, even if it sucks? Are they saying it's good we're only two months behind schedule instead of nine? Maybe they're afraid of demoralizing employees, but all the demoralized employees I saw weren't demoralized because they weren't getting enough pats on their backs from execs. They were demoralized because they weren't building products they could be proud of, or because they spent too much time in meetings, or because there was too much bureaucracy to get anything done, or because execs changed their minds and prematurely shut down the product... again. Maybe it's because I grew up to parents who made me the best person I can be by making me feel like dirt for the first 25 years of my life, but I like it when my leaders say "this is bullshit, we need to do better." I believe good leaders lead people to a better place, and you can't go to a better place if you don't recognize you're in a bad place.
Posted Mon, October 6, 2008 15:12 by Matt Hackett@209.131.62.113
Hey Ryo,
Nicely put! I agree with your points, especially that when there's a lotta fail going on, there should be no high-fives. Good stuff.
[moderate]