Synopses & Reviews
In a perfect world, software engineers who produce the best code are the most successful. But in our perfectly messy world, success also depends on how you work with people to get your job done.
In this highly entertaining book, Brian Fitzpatrick and Ben Collins-Sussman cover basic patterns and anti-patterns for working with other people, teams, and users while trying to develop software. This is valuable information from two respected software engineers whose popular series of talks—including "Working with Poisonous People"—has attracted hundreds of thousands of followers.
Writing software is a team sport, and human factors have as much influence on the outcome as technical factors. Even if youve spent decades learning the technical side of programming, this book teaches you about the often-overlooked human component. By learning to collaborate and investing in the "soft skills" of software engineering, you can have a much greater impact for the same amount of effort.
Team Geek was named as a Finalist in the 2013 Jolt Awards from Dr. Dobb's Journal. The publication's panel of judges chose five notable books, published during a 12-month period ending June 30, that every serious programmer should read.
As a software engineer, youre great with computer languages, compilers, debuggers, and algorithms. And in a perfect world, those who produce the best code are the most successful. But in our perfectly messy world, success also depends on how you work with people to get your job done.
In this highly entertaining book, Brian Fitzpatrick and Ben Collins-Sussman cover basic patterns and anti-patterns for working with other people, teams, and users while trying to develop software. Its valuable information from two respected software engineers whose popular video series, "Working with Poisonous People", has attracted hundreds of thousands of viewers.
Youll learn how to deal with imperfect people—those irrational and unpredictable beings—in the course of your work. And youll discover why playing well with others is at least as important as having great technical skills. By internalizing the techniques in this book, youll get more software written, be more influential, be happier in your career.
About the Author
Brian Fitzpatrick started Google's Chicago engineering office in 2005, and currently leads Google's Transparency Engineering team, which uses data to help protect free expression and free speech on the web. He also founded and leads Google's Data Liberation Front, a team that systematically works to make it easy for users to move their data both to and from Google (e.g. via Google Takeout). He serves as both thought leader and internal advisor for Google's open data efforts and has previously led the Google Code and The Google Affiliate Network teams.
Prior to joining Google, Brian was a senior software engineer on the version control team at CollabNet, working on Subversion, cvs2svn, and CVS. He has also worked at Apple Computer as a senior engineer in their professional services division, developing both client and web applications for Apple's largest corporate customers.
Brian has coauthored "Version Control with Subversion" (now in its second edition), and chapters for "Unix in a Nutshell" and "Linux in a Nutshell."
Brian has an A.B. in Classics from Loyola University Chicago with a major in Latin, a minor in Greek, and a concentration in Fine Arts and Ceramics. Despite growing up in New Orleans and working for Silicon Valley companies for most of his career, he decided years ago that Chicago was his home and stubbornly refuses to move to California.
Ben Collins-Sussman, one of the founding developers of the Subversion version control system, led Googles Project Hosting team and now manages the engineering team for the Google Affiliate Network. He cofounded Googles engineering office in Chicago and ported Subversion to Googles Bigtable platform. Ben coauthored Version Control with Subversion, and contributed chapters to Unix in a Nutshell and Linux in a Nutshell.
Table of Contents
Praise for Team Geek; Dedication; Mission Statement; Acknowledgments; From Fitz; From Ben; About the Authors; Introduction; Who Is This Book For?; The Pitch; Chapter 1: The Myth of the Genius Programmer; 1.1 Help Me Hide My Code; 1.2 The Genius Myth; 1.3 Hiding Is Considered Harmful; 1.4 It's All About the Team; 1.5 The Three Pillars; 1.6 HRT in Practice; 1.7 Learn to Both Deal Out and Handle Criticism; 1.8 Next Steps; Chapter 2: Building an Awesome Team Culture; 2.1 What Is Culture?; 2.2 Why Should You Care?; 2.3 Culture and People; 2.4 Communication Patterns of Successful Cultures; 2.5 High-Level Synchronization; 2.6 Day-to-Day Discussions; 2.7 Using an Issue Tracker; 2.8 Communication as Part of Engineering; 2.9 It Really Is About the Code After All; Chapter 3: Every Boat Needs a Captain; 3.1 Nature Abhors a Vacuum; 3.2 @Deprecated Manager; 3.3 The Servant Leader; 3.4 Antipatterns; 3.5 Leadership Patterns; 3.6 People Are Like Plants; 3.7 Intrinsic Versus Extrinsic Motivation; 3.8 Final Thoughts; Chapter 4: Dealing with Poisonous People; 4.1 Defining "Poisonous"; 4.2 Fortifying Your Team; 4.3 Identifying the Threat; 4.4 Repelling the Poison; 4.5 A Final Thought; Chapter 5: The Art of Organizational Manipulation; 5.1 The Good, the Bad, and the Strategies; 5.2 The Ideal: How a Team Ought to Function Within a Company; 5.3 The Reality: When Your Environment Is an Obstacle to Your Success; 5.4 Manipulating Your Organization; 5.5 Plan B: Get Out; 5.6 All Is Not Lost; Chapter 6: Users Are People, Too; 6.1 Managing Public Perception; 6.2 How Usable Is Your Software?; 6.3 Managing Your Relationship with Users; 6.4 Remember the Users; Epilogue; A Final Thought; Further Reading;