Oreilly Teamgeek 2012.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Praise for Team Geek “This delicious book speaks to your inner geek! Even if you do not consider yourself a geek, the advice is worth the time to read anyway.” Vint Cerf, Chief Internet Evangelist at Google “I’ve been working with engineers for over 30 years, and in that time I’ve learned that engineering is as much about people as it is science and technology, but most engineers put little or no effort into understanding how to work with others. If you want to be more effective and efficient at creating and innovating, then this book is for you.” Dean Kamen, Founder of DEKA Research “Ben and Fitz have assembled an amazing collection of patterns and anti-patterns for software development teams to consider. This book is for anyone struggling with understanding how to make such a team more productive—for the code wranglers themselves, for their managers, and for everyone in orbit around them. It puts down on paper many of the things innate to great open source developers. I wish I’d had this book years ago.” Brian Behlendorf, Chief Technology Officer at World Economic Forum “Software Development is a team sport. If you want to become a top performer in the sport, there are hundreds of good books that tell you how to work on your individual skills as a software developer, and a few on how to be a good manager. This book breaks new ground by setting out all the key lessons for you as a software developer to learn how to work with your teammates, and how to be a good teammate. The field has needed a book like this for a long time, and finally it has arrived.” Peter Norvig, Director of Research at Google “If you’re trying to build a team that is focused on shipping great software, then you need to read this book. Ben and Fitz do a great job of translating touchy-feely subjects like humility, respect, and trust into tactical suggestions that even the most skeptical developer can appreciate.” Eric Lunt, Chief Technology Officer & Co-founder of BrightTag “This is a wonderful book. It deals with the hardest problem in computer programming, which is dealing with other computer programmers :-). I’ll be buying copies for all Samba Team members.” Jeremy Allison, Co-creator of Samba “You might have heard the aphorism ‘10X programmer,’ describing the fact that top programmers are an order of magnitude more productive than average programmers. Making a big impact requires experience and powerful technical chops, but also empathy for your co-workers and users. No amount of smarts or knowledge can make up for a lack of the latter, but this book will help you hone your soft skills and leave an even bigger dent in the world.” Bob Lee, Chief Technology Officer at Square Fitz and Ben take a simple creed—Humility Respect and Trust—and cultivate that foundation with copious examples and stories. The experience and wisdom they share will help software engineers who work in teams—most of us— be more effective and productive.” Greg J. Badros, VP Products & Engineering at Facebook “Software is made of people. A well run team, using the principles outlined in Team Geek, can out-think, out-code, and out-ship any individual hacker. Coder, educate thyself! Johnathan Nightingale, Senior Director of Firefox Engineering at Mozilla “Team Geek is How to Win Friends and Influence People for programmers. It’s full of clear and actionable advice on how to be more happy, productive and effective on your technical team. Excellent and needed.” Adrian Holovaty, Co-creator of Django “Ben and Fitz say what I’ve been practicing but could never quite put in words.” Guido van Rossum, Benevolent Dictator for Life at Python “Please send one copy to: Poul-Henning Kamp c/o FreeBSD core team Delivery no later than March 1994.” Poul-Henning Kamp, Committer at The FreeBSD Project “Ben and Fitz come not to praise the myth of the lone programmer, but to bury it. They preside over its wake in a series of essays designed to teach right-brained engineers how to hack the most complex system they’ll ever encounter: people in a group. Team Geek shows that the most humane software is made by the best-functioning human teams—and how to achieve both.” John Tolva, Chief Technology Officer for the City of Chicago “This is a great book about the sociology of software development, with an emphasis on open source software and large corporations. the section on managing up and dealing with politics is essential reading for any new engineer in a corporate environment. I would recommend it to any engineer regardless of where he worked! This is the first book I’ve seen that covers office politics in an easily accessible fashion for engineers. The stories and anecdotes and practical tips on ‘How do you work with this difficult person?’ are gold! You literally cannot buy this anywhere.” Piaw Na, Author of An Engineer’s Guide to SIlicon Valley Startups and Startup Engineering Management “Team Geek is a gem of a book, in which Ben and Fitz share their very sensible philosophy of how programmers can best contribute to a good team. We are lucky that this important field is finally opened up for discussion with such warmth and humor. I wish that 21-year-old me had both a copy of the book and the good sense to take it to heart.” Bryan O’Sullivan, Facebook “This book is a blueprint for building a healthy software development culture. It should be required reading for engineering managers, technical leaders, and even non-technical executives who need to understand how team dynamics affect retention of top engineering talent and the quality of software they produce.” Bruce Johnson, Engineering Director at Google “The skill of writing software will help you stay employed but if you combine that with the ability to work well with others, and you can change the world. This book isn’t just about how you can be a better programmer. It’s about how to be awesome.” Clay Johnson, Author of The Information Diet “Team Geek is an insightful exploration of building successful teams and products, taken from years of tackling difficult developer pains and issues that we all experience in our careers. The jovial approach to overcoming both engineering and human issues on a technical team delivers an engaging foundation text that should be a staple of every engineer’s library.” Jonathan Leblanc, Principal Developer Evangelist at X.Commerce “Programming is no longer about code and machines, if it ever was. Increasingly, it’s about fitting together existing pieces in new ways—and each piece comes with people attached. The authors have understood this for years, and their message is as simple as their advice is varied: focus on the people as much as you focus on the code, and you will not only be a happier programmer, you will be the cause of happier programmers. It couldn’t come at a better time!” Karl Fogel, Co-founder of Open Tech Strategies LLC “I’ve been blogging Ben & Fitz’s talks at conferences for years, because so few people address the social side of working with geeks. I’m excited to read the collective wisdom of their talks in one convenient book and not have to chase them around the country anymore.” Robert Kaye, Lead Geek at Musicbrainz Team Geek A Software Developer’s Guide to Working Well with Others Brian W. Fitzpatrick and Ben Collins-Sussman Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Team Geek by Brian Fitzpatrick and Ben Collins-Sussman Copyright © 2012 Brian Fitzpatrick and Ben Collins-Sussman. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebas- topol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promo- tional use. Online editions are also available for most titles (safari.oreilly. com). For more information, contact our corporate/institutional sales depart- ment: (800) 998-9938 or [email protected]. Editor: Mary Treseler Production Services: Nancy Kotary Production Editor: Melanie Yarbrough Cover Designer: Edie Freedman Copyeditor: Audrey Doyle Interior Designer: Ron Bilodeau Proofreader: Kevin Broccoli Cover Photo: Vintage Images Indexer: Lucie Haskins Illustrators: Amber Lewis of sunnibrown.com Printing History: June 2012: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Team Geek and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN 10: 1449302440 ISBN 13: 9781449302443 [LSI] Contents Dedication . .xi Mission Statement . xiii Acknowledgments . xv Introduction . xix Chapter 1 The Myth of the Genius Programmer . 1 Chapter 2 Building an Awesome Team Culture . 25 Chapter 3 Every Boat Needs a Captain . 53 Chapter 4 Dealing with Poisonous People . 85 Chapter 5 The Art of Organizational Manipulation . 103 Chapter 6 Users Are People, Too . 129 Epilogue Epilogue . 157 Appendix A Further Reading . 159 Index . 161 ix Dedication From Ben For my parents, bringers of hope and joy, who taught me how to read both words and people.