An excellent book on working effectively with others,
This review is from: Team Geek: A Software Developer's Guide to Working Well with Others (Paperback)
One of the most important aspects of creating great software is working effectively with a team, and that team includes not only other software developers, but also the extended development organisation, the corporate structure, and not forgetting customers. The aim of this book is to help developers be more effective and efficient at creating software by improving their ability to understand, communicate with, and collaborate with other people. The authors draw from their own experiences as developers and managers, and working in both open source development and Google, with associated challenges and best practices.
The book is centred on using HRT to create an awesome team culture, for leading teams effectively, and for working with users to make great software. HRT in this case isn't about hormones, but humility, respect, and trust. Three essential ingredients to developing and maintaining good relationships with the people you have to work with, no matter how much you'd rather not!
As well as providing advice on how to improve your own behaviour with others, there are chapters providing best practices for creating a positive team culture, including communication patterns and techniques, working in distributed teams, coding practices, and protecting the culture. An excellent chapter is provided on team leadership including the role of the manager, common anti-patterns, positive leadership patterns, and how to look after a team effectively.
A chapter is also provided on dealing with poisonous people and disruptive behaviours, including descriptions of the behaviours, together with suggested solutions, with many real examples from the authors own experiences. The next chapter provides advice on working within an organisational structure, and strategies for dealing with common problems within an organisation and advice on how to overcome them or at least avoid them.
The final section of the book deals with handling relationships with users, including everything from taking control of and managing public perception of your software, through to tips for improving usability, and finally developing a positive relationship with your users.
I thoroughly recommend this book for anyone working in software development. As the author's point out the advice doesn't just apply to software development, but in all areas of life where you have to deal with people, but the examples and best practices should resonate with anyone working in a software environment. The advice and behaviours recommended are common sense, but I recognised the organisational issues and poisonous behaviours described as examples as familiar causes of disruption and distress from my own experiences of working in software development. Teams that embrace HRT are more effective, produce better software for their users, and are much more pleasant places to work in! If I have one criticism, it is that some of the best practices around software development and communication itself may not be the best solution in agile teams. At the same time though, humility, respect, and trust is absolutely at the centre of agile self-directing teams.
An excellent book, which I fully intend to recommend to current, future, and former team mates!