HomeAboutArchivesTools & ResourcesSupport me
Hi! 👋 I'm Szymon

I help you become a better software developer.

  • 1.15kFollowers
  • 2.36kSubscribers
  • 110Followers
  • 30.2kReputation

Latest posts from the Programmer's Bookshelf

Atomic Habits - book review
Debugging Teams - book review
Pragmatic Thinking and Learning - book review
Release It! 2nd edition - book review
Deep Work - book review
Programming Groovy 2 - book review
More

Popular categories

  • Groovy Cookbook28
  • Jenkins Pipeline Cookbook9
  • Programmer's Bookshelf6
  • Micronaut Cookbook4
  • Ratpack Cookbook4
  • Learning Java4
  • jq cookbook3
  • How to3
  • Blog Reports2

Don't miss anything - join my newsletter

Additional materials and updates for subscribers. No spam guaranteed.
Unsubscribe at any time.

Did you like this article?

Spread the !
  • ☕️
  1. e.printstacktrace.blog
  2. Programmer's Bookshelf

Debugging Teams - book review

  • April 16, 2019
  • 5 min. read
  • 0 Comments

"Geniuses still make mistakes and having brilliant ideas and elite programming skills don’t guarantee that your software will be a hit. What’s going to make or break your career is how well you collaborate with others", say Brian Fitzpatrick and Ben Collins-Sussman in their book "Debugging Teams. Better productivity through collaboration". It shows that crafting the ability to collaborate is equally important as learning new programming languages and mastering the ones we already know. Let’s take a quick look at how this book can help us to become a better team player and a better team leader.

What’s inside?

Chapter one (The Myth of the Genius Programmer) focuses on software development as a team sport discipline. It debunks a myth of a so-called Genius Programmer, and it explains the role of great teams and their leaders in collective achievements. It also introduces three principles of social skills: Humility, Respect, and Trust. It explains how to use these principles in practice to achieve the following:

  • lose your ego

  • learn to deal out and handle criticism

  • fail fast, iterate, and recover

  • leave time for learning and improving

  • learn patience

  • be open to influence

Chapter two (Building an Awesome Team Culture) focuses on building a solid and healthy team culture. It explains that team culture is "a set of shared experiences, values and goals that are unique to every engineering team." A "strong culture," by definition, is open to any changes that improve it, yet is resistant to any radical change that harms it. It explains how to initialize the culture development process, how to maintain it and improve it cooperatively with other team members. We can also learn about communication patterns of successful cultures. These principles apply to synchronous and asynchronous communication, and they explain the importance of making all information visible to everyone.

There is also a section related to mission statements as something opposite to the overhyped marketing-speak statements. Authors prove that preparing an accurate mission statement for the team helps to find all differences and agree on the product’s development direction.

The last part of this chapter focuses on efficient communication inside the team. It covers topics like running productive meetings, working in geographically distributed teams, or making the day-to-day discussions and communication simple.

Chapter three (Every Boat Needs a Captain) focuses on the role of a leader in the team. It compares bad managers versus servant leaders and shows the impact both types make on the team and organization growth. Authors also share a huge list of antipatterns and leadership patterns worth following. They explain the role of a great leader, his/her duties, challenges, or impact, to name a few. This chapter also describes how to work with different people and their unique motivations and abilities.

Chapter four (Dealing with Poisonous People) explains the importance of preventing poisonous people from destroying the team culture you and your team members built. It describes a few different destructive behaviors that put your team’s integrity in risk. People with a huge ego, behaving immaturely, unrespectful to other’s people time - these are a few of the signals and patterns you should watch for. This chapter also gives you a few principles and tricks on how to fix harmful behavior - we have to assume that some people may not be aware that their behavior is wrong.

Chapter five (The Art of Organizational Manipulation) describes the difference between an ideal organization (unafraid to take the risk, everyone behaves like an adult, extra responsibility pursued) and a typical workplace with micromanagement, fear of failure, political games, managers that have to take part in every conversation, and infamous command and control management model. It explains how to influence a positive change starting from your team up to the organization level.

The final chapter (Users Are People, Too) shows how to apply all previous principles and techniques at the customer communication level. The development teams don’t build products for their own - they build software for the end users. It’s important to understand that the organization growth is correlated with the benefits that user get from using our software. (It shows the importance of measuring a real usage, not the number of users.) Being patient, helpful, communicating with HRT principles creates trust and engagement.

What have I learned?

This short review does not cover every detail of this book. It’s not that long, but it contains a lot of useful information, presented in a very easy-to-consume and anecdotal style. It confirmed that:

  • building strong and healthy teams is not a simple job,

  • collective effort in software development can produce better results than single person excellent performance,

  • dealing with people is hard and applying HRT principles helps to build strong relationships,

  • debugging teams is a process that never ends.

Debugging Teams: Better Productivity Through Collaboration

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. (source: amazon.com)

Kindle ebook
Get from amazon.com
Get from amazon.ca
Get from amazon.de
Get from amazon.co.uk
Get from amazon.fr
Get from amazon.es
The above links are affiliate links. If you decide to buy a book using my affiliate link, I will get a small percentage from your purchase. The affiliate link does not affect the final price of the product. Using it costs you nothing.

  • book
  • review
  • reading
  • team
  • oreilly
  • safari-online
  • leadership
  • communication

Conferences

GR8Conf EU 2019 - what can you expect from my talks?

  • May 14, 2019
  • 5 min. read
  • 0 Comments

GR8Conf EU 2019 starts precisely in 13 days (on May 27th). Each year Copenhagen becomes a heart of Groovy vibrant community for 3 days. The conference offers both talks and workshops, focused on Groovy related topics such as upcoming Groovy 3 release, building DSLs, using Micronaut in the cloud-native environment, or testing applications with Spock and Geb, to name a few. And that’s not even a quarter of great stuff you can expect from it. This year you can also attend one of my three talks I’m going to deliver.

Programmer's Bookshelf

Programming Groovy 2 - book review

  • December 29, 2018
  • 5 min. read
  • 0 Comments

When I get the paperback copy of the "Programming Groovy 2" book back in the June 2017, I was wo...

Programmer's Bookshelf

Pragmatic Thinking and Learning - book review

  • March 26, 2019
  • 5 min. read
  • 0 Comments

There are books you read once, and you don’t plan to read them back again any time soon. H...

Programmer's Bookshelf

Deep Work - book review

  • December 31, 2018
  • 5 min. read
  • 0 Comments

This is the second blog post in "Programmer’s Bookshelf" category, and today I would like ...

Any thoughts or ideas?

Let's talk in the comment's section 💬

Empty
Latest blog posts
  • Merging JSON files recursively in the command-line
  • Jenkins Declarative Pipeline with the dynamic agent - how to configure it?
  • Groovy Ecosystem Usage Report (2020)
  • How to convert JSON to CSV from the command-line?
  • 5 Common Jenkins Pipeline Mistakes
  • How to merge two maps in Groovy?
  • Building stackoverflow-cli with Java 11, Micronaut, Picocli, and GraalVM
  • How to catch curl response in Jenkins Pipeline?
  • Atomic Habits - book review
  • Parsing JSON in command-line with jq: basic filters and functions (part 1)
Trending videos
Building command-line app with Java 11, Micronaut, Picocli, and GraalVM | #micronaut

In this video, I will show you how to create a standalone command-line application (CLI app) using Java 11, Micronaut, Picocl...

Jenkins Declarative Pipeline vs Scripted Pipeline - 4 key differences | #jenkinspipeline

Jenkins Pipeline as a code is a new standard for defining continuous integration and delivery pipelines in Jenkins. The scrip...

Useful links
  • Start here
  • About
  • Archives
  • Resources
  • Privacy Policy
  • Merchandise
  • My Kit
  • RSS
  • Support the blog
Popular categories
  • Groovy Cookbook28
  • Jenkins Pipeline Cookbook9
  • Programmer's Bookshelf6
  • Micronaut Cookbook4
  • Ratpack Cookbook4
  • Learning Java4
  • jq cookbook3
  • How to3
  • Blog Reports2
Popular tags
affiliate async benchmark blogging book career cicd continuous-integration curl devops docker git github graalvm gradle grails groovy haskell hexo java java-8 jenkins jenkins-pipeline jenkinsfile jmh jq json junit learning maven metaprogramming micronaut native-image non-blocking progress ratpack reactive-programming reading recursion review rxjava sdkman session split spock stackoverflow string tail-call tail-recursion unit-test
  • Designed by @wololock
  • Created with Hexo
  • Hosted on GitHub
  • Deployed with Circle CI
  • License CC BY-NC-SA 4.0