Author: Brian Fitzpatrick and Ben Collins-Sussman
Audience: Primarily software developers but will appeal to anyone who contributes to a team effort.
Reviewer: Sue Gee
The quote on the book cover from Peter Norvig reads "The field has needed a book like this for a long time." Does it live up to the hype?
The book's subtitle is Better Productivity Through Collaboration and it is a second edition - which helps to explain why it has over 5 pages of endorsements from influential people, including Vint Cerf and Guido Van Rossum.
Confusingly however if you look for the first edition, you'll find it has the title "Team Geek: A Software Developer's Guide to Working Well With Others", which I think is a stronger title. However, the Foreword to the Second Edition explains that the change of title is to widen the appeal of the book and make it accessible to a non-technical audience. The authors say:
While we still draw on engineering example, there'sless focus on nitty-gritty details of software development tools.
which may make it less attractive to the original core audience.
The authors, Brian Fitzpatrick and Ben Collins-Sussman, have an important pedigree for software developers which straddles corporate computing and open source. As outlined in the Introduction they:
spent with mid 1990s building PCs out of spare parts, installing pre-release versions of Linux from piles of diskettes and learning to administer Unix machines.
Having become programmers at the dawn of the dot.com era and went on to be employed to design and write the open source version control system, Subversion then co-founded Google's Chicago office in 2005 and open source.
Despite the intention to make the second edition address a broader audience, the first chapter has the title The Myth of the Genius Programmer, a notion which the authors debunk, arguing that nowadays it takes a team to create viable software. One of the main messages of the chapter is that programmers have a tendency to be secretive about work in progress and that this is counterproductive - an argument expanded on in the section "Hiding Considered Harmful". Getting programmers to be willing to share their ideas at an early stage just one of the radical changes they want to effect in the developer mindset.
The three pillars of social skills Humility, Respect, Trust (HRT)- which are advocated as key principles on which not only to create teams but also to interact with your users, are introduced in Chapter 1. This provides the philosophical foundation for the next stage, Building an Awesome Team Culture. After a discussion of the term culture and the reasons you should create a strong one based on HRT, the authors advocate the adoption of a mission statement. The one they uses an a positive example comes from Google Web Toolkit (GWT) at the point at which it was open sourced. Other topics in this chapter include meetings and the importance of face-to-face meetings, the use of online chat, code commenting, code reviews and the thorny issue of whether individuals should have their names on their code.
The topic of the next chapter is leadership and starts by explaining it is for:
individual contributors who find themselves in an unofficial position of leadership
It goes on to elucidate the title, Every Boat Needs a Captain by saying:
A boat without a captain is nothing more that a floating waiting room - unless someone grabs the rudder and starts the engine, it's just going to drift along aimlessly with he current. A project is just like a boat: if no one pilots it, you're left with a group of geeks just sitting around waiting for something to happen.
Having expressed the idea that the title "manager" should be eliminated, on the grounds that it has become a four-letter word, it advocates "servant leadership", a role in which :
you should strive to create an atmosphere of humility, respect and trust (HRT).
The chapter presents a series of antipatterns, drawing on anecdotes from the author's experiences, before it outlines leadership patterns, including "lose the ego", "be a zen master" and "be a catalyst", similarly illustrated with real life stories. It includes material that is new to the second edition with a boxout on the "Impostor Phenomenon" and the idea that the "fake it till you'll make it" technique is one way to survive having leadership thrust upon you.
After this the focus of the book changes and in the second half it starts looking outward. Chapter 4 is Dealing with Poisonous People, which discusses:
the importance of preventing destructive outsiders from trashing the cooperative culture your team has worked hard to build.
Next comes a chapter on the techniques required to get things done effectively in dysfunctional corporate bureaucracies, with the title The Art of Organizational Manipulation. Both these chapters are liberally peppered with anecdotes making them highly readable.
The final chapter is Users Are People, Too. It examines three general phases of user engagement: how users get to know about your product and their initial perceptions; experience when thy first start to use it; and how to interact productively with them once they are established users. The message of the chapter includes:
collaboration isn't just about working with your team; you need to actively collaborate with your users too.
and when it comes to your relationships with users not only is HRT important, so is the additional factor of "delight".
The book rounds out with an Epilogue which repeats the theme introduced in the first chapter and re-iterated throughout:
If you remember anything at all about our stories, remember HRT: humility, respect and trust.
By being highly readable, this slim volume will appeal to a wide audience, not just software engineers. Luckily while making changes to address a wider audience, the second edition has remained anecdotal with anecdotes drawn from the software industry. Cartoon drawings are included throughout the book and while not essential they add to the overall impression of a well-designed, well-executed publication.
Visit Book Watch Archive for hundreds more titles.
Follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.
To have new titles included in Book Watch contact BookWatch@i-programmer.info