Communication is leverage

The bottlenecks throughout development come from limitations in human communication – Kent Beck

We have been doing code reviews for a while and this year we decided to look into a couple of things we could do to improve our code review culture.

We looked into a lot of things. One of them being pull request templates. A pull request template is a set of questions meant to be answered whenever opening a pull request. The purpose of the template is to ensure that all relevant information is provided to anybody reviewing the code.

Having a PR template might sound like an overkill, specially for the smallest changes. Yet even in those cases I started to see the value in having them.

The valuable aspect of these templates is that they force you to be explicit and go the extra mile in providing context for the feature, design decisions taken and intent behind the changes made.

PR templates reminded me of how much of software development revolves around communication. We choose proper names, we adhere to the SOLID principles, we use code style conventions all with the purpose of making it easier for others to read and understand code. Code that is easy to understand is also easy to change and that is valuable. Therefore, one of the things software developers can do to increase their impact is to communicate better.

We usually tend to focus on how our code communicates but tend to forget about all the other assets which we produce: commit messages, issues on the issue tracker, documentation. All these assets are an opportunity to share knowledge, to provide clarity, to provide context, to decrease the barriers to participation, to reduce confusion, to make the most of others’ time, to communicate better.

Communication is a high leverage activity.