You are previewing Debugging Teams.
O'Reilly logo
Debugging Teams

Book Description

In the course of their 20+-year engineering careers, authors Brian Fitzpatrick and Ben Collins-Sussman have picked up a treasure trove of wisdom and anecdotes about how successful teams work together. Their conclusion? Even among people who have spent decades learning the technical side of their jobs, most haven’t really focused on the human component. Learning to collaborate is just as important to success. If you invest in the "soft skills" of your job, you can have a much greater impact for the same amount of effort.

The authors share their insights on how to lead a team effectively, navigate an organization, and build a healthy relationship with the users of your 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.

Table of Contents

  1. Mission Statement
  2. Acknowledgments
    1. From Fitz
    2. From Ben
    3. About the Authors
  3. Foreword to the Second Edition
  4. Introduction
    1. Who Is This Book For?
      1. Warning: This Is Not a Technical Manual
      2. The Contents of This Book Are Not Taught in School
    2. The Pitch
  5. 1. The Myth of the Genius Programmer
    1. Help Me Hide My Code
    2. The Genius Myth
    3. Hiding Is Considered Harmful
    4. It’s All About the Team
    5. The Three Pillars
    6. HRT in Practice
      1. Lose the Ego
      2. Learn to Both Deal Out and Handle Criticism
      3. Fail Fast and Iterate
      4. Leave Time for Learning
      5. Learn Patience
      6. Be Open to Influence
    7. Next Steps
  6. 2. Building an Awesome Team Culture
    1. What Is Culture?
    2. Why Should You Care?
    3. Culture and People
    4. Communication Patterns of Successful Cultures
    5. High-Level Synchronization
      1. The Mission Statement—No, Really
      2. Efficient Meetings
      3. Working in a “Geographically Challenged” Team
      4. Design Docs
    6. Day-to-Day Discussions
      1. Mailing Lists
      2. Online Chat
    7. Using an Issue Tracker
    8. Communication as Part of Engineering
      1. Code Comments
      2. Putting Your Name on Your Work
      3. Require Code Reviews for Every Commit
      4. Have Real Test and Release Processes
    9. It Really Is About Your Product, After All
  7. 3. Every Boat Needs a Captain
    1. Nature Abhors a Vacuum
    2. Manager Is a Four-Letter Word
      1. “Leader” Is the New “Manager”
      2. The Only Thing to Fear Is…Well, Everything
    3. The Servant Leader
    4. Antipatterns
      1. Antipattern: Hire Pushovers
      2. Antipattern: Ignore Low Performers
      3. Antipattern: Ignore Human Issues
      4. Antipattern: Be Everyone’s Friend
      5. Antipattern: Compromise the Hiring Bar
      6. Antipattern: Treat Your Team Like Children
    5. Leadership Patterns
      1. Lose the Ego
      2. Be a Zen Master
      3. Be a Catalyst
      4. Failure Is an Option
      5. Be a Teacher and a Mentor
      6. Set Clear Goals
      7. Be Honest
      8. Track Happiness
      9. Other Tips and Tricks
    6. People Are Like Plants
    7. Intrinsic Versus Extrinsic Motivation
    8. Final Thoughts
  8. 4. Dealing with Poisonous People
    1. Defining “Poisonous”
    2. Fortifying Your Team
    3. Identifying the Threat
      1. Lack of Respect for Other People’s Time
      2. Ego
      3. Entitlement
      4. Immature or Confusing Communication
      5. Paranoia
      6. Perfectionism
    4. Repelling the Poison
      1. Redirect the Energy of Perfectionists
      2. Don’t Feed the Energy Creature
      3. Don’t Get Overly Emotional
      4. Look for Facts in the Bile
      5. Repel Trolls with Niceness
      6. Know When to Give Up
      7. Focus on the Long Term
    5. A Final Thought
  9. 5. The Art of Organizational Manipulation
    1. The Good, the Bad, and the Strategies
    2. How Things Ought to Be
      1. The Ideal Employee Experience
    3. How Things Usually Are
      1. The Bad Manager
      2. The Office Politician
      3. The Bad Organization
    4. Manipulating Your Organization
      1. “It’s Easier to Ask for Forgiveness Than Permission”6
      2. If You Can’t Take the Path, Make the Path
      3. Learn to Manage Upward
      4. Luck and the Favor Economy
      5. Your Political Bank Account
      6. Get Promoted to a Position of Safety
      7. Seek Powerful Friends
      8. How to Ask a Busy Executive for Anything…via Email
    5. Plan B: Get Out
    6. All Is Not Lost
  10. 6. Users Are People, Too
    1. Managing Public Perception
      1. Pay Attention to First Impressions
      2. Underpromise and Overdeliver
      3. Work with Industry Analysts Respectfully
    2. How Usable Is Your Software?
      1. Choose Your Audience
      2. Consider Barrier to Entry
      3. Measure Usage, Not Users
    3. Design Matters
      1. Put the User First
      2. Speed Matters
      3. Don’t Try To Be All Things
      4. Hide Complexity
    4. Managing Your Relationship with Users
      1. Respect Users’ Intelligence
      2. Be Patient
      3. Create Trust and Delight
    5. Remember the Users
  11. A. Epilogue
    1. A Final Thought
  12. B. Further Reading
  13. Index