🏠 Home   🕵🏽‍♂️ About

Working with Humans Thu 19 May, 2016

There is a famous quote about hard things in Computer Science

There are only two hard things in Computer Science: cache invalidation and naming things.

— Phil Karlton

Without discounting the difficulty of those topics, if you're working as part of a team to make software that delivers real value, I posit that figuring out how to collaborate effectively is actually the hardest thing.

There are many reasons for this. A group of people, who were most likely strangers until relatively recently, coming together to work toward a single goal, is an incredibly complex and intricate system. That team being effective is hinged on many different variables, such as each individual’s personality, their upbringing, cultural background, expectations, ego, desire, to name but a few. Yet given all of that, oftentimes teams and managers can spend the vast majority of their efforts focussing on tools, processes, and schedules. These are seen as the right things to focus on as they are tangible and predictable. The other stuff, that’s more abstract and wishy-washy and we can’t afford to spend time focussing on that stuff because we’re doing Serious Business™. 🙄

Drawing on my experiences as a developer, I'd like to share some thoughts around team dynamics, what goes into making great teams, and touch on what kind of things to avoid.

Effective Teams

One of the best write ups I’ve read on what makes successful teams is this article about Google. In it you’re asked to consider the following scenario:

Imagine you have been invited to join one of two groups.

Team A is composed of people who are all exceptionally smart and successful. When you watch a video of this group working, you see professionals who wait until a topic arises in which they are expert, and then they speak at length, explaining what the group ought to do. When someone makes a side comment, the speaker stops, reminds everyone of the agenda and pushes the meeting back on track. This team is efficient. There is no idle chitchat or long debates. The meeting ends as scheduled and disbands so everyone can get back to their desks.

Team B is different. It’s evenly divided between successful executives and middle managers with few professional accomplishments. Teammates jump in and out of discussions. People interject and complete one another’s thoughts. When a team member abruptly changes the topic, the rest of the group follows him off the agenda. At the end of the meeting, the meeting doesn’t actually end: Everyone sits around to gossip and talk about their lives.

Which group would you rather join?

Conventional management and business thinking dictate that Team A is the one you want. Right? It’s efficient, finely tuned and seems most likely to succeed. In fact, all the research conducted indicates that on average, a team resembling Team B is more successful. Digging further still, the reasons for this were summed up by the notion of Psychological Safety. This concept was defined in 1999 by Harvard professor Amy Edmondson as…

A team climate characterised by interpersonal trust and mutual respect in which people are comfortable being themselves.

and is exhibited by

…a shared belief held by members of a team that the team is safe for interpersonal risk-taking… a sense of confidence that the team will not embarrass, reject or punish someone for speaking up.

Even without reading the results of this research, these are things that most of us already have a sense of in our personal lives. Be it with friends or loved ones, we exhibit respect towards one another. We try to inspire confidence in our children by encouraging them to take risks, and by not punishing them for every single thing that doesn’t work out.

However, for some reason, the same people can exhibit the very opposite behaviours, and sometimes consciously choose to do so, when at work. This feels especially true in the software industry. There has historically been, and to an extent there still exists, a mythology around high-functioning, socially-awkward, emotionally-stunted, brash individuals. A notion that any amount of crappy behaviour can and should be tolerated. Especially if that individual is exceptionally smart. Let’s be clear however, this tolerance (or is it apathy?) comes at the expense of other people’s psychological safety.

Hopefully these kinds of situations are few and far between. More commonplace I suspect, is damage that is inflicted unintentionally. When an environment doesn’t allow time and space for interpersonal bonds to grow, or when teams are subject to fly-by management. If there is a lack of purpose, or if teams aren’t empowered to control their own destiny, the same problems can arise.

Regardless of how it happens, undermining this safety net will degrade the performance of a team, which ultimately, will impact your bottom line. And it’s not something that can be regained as quickly as it can be lost. Rebuilding confidence, trust, and mutual respect takes time. For that reason, it is something that should be fostered on day one, and protected every day thereafter. And whilst everyone in a team is responsible for this, no one has a more important role to play than that of team leaders and managers. Because, like Conway’s Law of system design, teams will reflect the predominant leadership styles on display at a company.

Managing People

I’d like to start with another quote. I find that it helps me focus my thoughts when I start to write. It also makes me seem wise and learned, of which I am neither, but I like the idea of (excuse me while I go buy a pipe and cardigan).

A (possibly) wise and learned individual.

Figure 1 - A (possibly) wise and learned individual.

In time, every post tends to be occupied by an employee who is incompetent to carry out its duties

— The Peter Principle

The Peter Principle states that people in an organisation rise to a level of incompetence. If someone is good at their job, they are promoted, and continue to be promoted whilst they excel in each new role. At some point however, they will reach a level where they are not successful, and thus they no longer move up the ladder. They’ve reached their level of incompetance. Nowhere is this observed more than in the transition from a senior employee moving into management.

Whilst this is something that is starting to be recognised as Not Always a Good Thing, my guess is that a lot of companies still adopt this practise. To me, the idea that management is the next step up from say, Lead Engineer, is a very strange one. The demands of each role are completely different. Whilst there are undoubtedly leadership aspects to senior roles, your principle concern as a manager is, and should always be, the people you manage[1]. Therefore, unless someone exhibits the qualities required to be a great manager, then their career path probably shouldn’t lead there by default.

So what are those skills? The best managers I’ve had the pleasure to work with can all be described as Servant Leaders. These are individuals who put the needs of their team above their own. They give people the relevant context in relation to any situation, rather than tell them what needs to be done. Great managers help people get better over time by listening to their needs and responding appropriately. They give their teams autonomy and control, but are always on hand to smooth out any difficulties that may arise. If things do go wrong, great managers understand that it is rarely the fault of a single thing or person. They look at the system that allowed the failure to occur and seek to address that, without apportioning blame.

Key to all of these behaviours is empathy towards others and a lack of egotism. Unless a manager is genuinely invested in the well-being and advancement of their team members, they will struggle to ever be a great manager.

[1] Some people may take the view that a manager’s responsibility is not to their people, but to the company first and foremost. Whilst I don’t disagree that they have an obligation to the business, the framing of the problem as either/or is incorrect. Furthermore, is a company an abstract entity that is separate from the people within it? What is a company without those people?


For me, this is the thing that helps grease the wheels for everything mentioned above. Get this right within an organisation, and you give yourself every chance of creating a healthy and productive company. The key to this is something I’ve mentioned already, empathy.

Empathy is the understanding of another persons experience and condition from their point of view. It’s that last bit that’s key. It requires you to accept the other persons experience as their own, and then try to put yourself in their position. By displaying genuine curiosity, you are better able to respond in a way that is meaningful and effective. For both parties.

Let’s consider the opposite. How often do you find yourself in a conversation and instead of listening, you’re thinking about what you’re going to say next? I know for sure that I’m sometimes guilty of this. The chances are we all do it to an extent. When we do so, we’re devaluing the viewpoint of the other person by not giving it appropriate consideration. This inherently makes us less able to share common ground. Even during a disagreement, demonstrating empathy can help us reach a resolution, or perhaps even to continue to disagree amicably. The idea that a conversation which is heated or where there is an “argument” to be “won”, is somehow more meaningful than one which is calm, respectful and inclusive, harks back to the myth of the brilliant douchebag mentioned above. Over time, such an environment will only serve to damage the fabric of your culture.

In short, an environment where communication is open and free-flowing, where people are honest, constructive and genuinely concerned with each others well-being, will go a long way towards creating a great company culture. Avoid communicating only on your own terms and instead, be in tune with, and respond to, the needs of those around you.


I believe that the most important and valuable assets of a company, are it’s people. Therefore, the ultimate success of any company lies in ensuring the well-being of those people. This is something that each and every person in the company is responsible for. And the single most effective way to embed such a culture, is for the leadership within the company to live and breathe these values each and every day. 🖖


The other week, I tweeted the following

I think it’s fair to say that I wasn’t over-exaggerating when I posted those. The blog post that I linked to is by Mike Davidson, who spent 3 years as VP of Design at Twitter. In it, he absolutely nails most of the topics I wrote about here. As such, I highly recommend that you go read that article as well. Enjoy!