You Are as Good as the People Around You

and what it means for a senior developer

Tom Muc
Geek Culture
4 min readDec 5, 2021

--

Good people attract good people

Tom DeMarco and Tim Lister described some interesting observations about productivity in their great book “Peopleware: Productive Projects and Teams”. Long story short, they created Coding War Games — a benchmark consisting of a set of tasks to quantify the productivity levels of programmers from different companies. From 1984 to 1986 they verified 600+ developers from almost 100 companies. Even though they conducted their experiment 35 years ago, I believe their results are still valid.

In their findings, they mention so-called 10x developers — people that are so productive that they outperform the worst developer by 10x factor and median performer by 2.5x factor. Perhaps they don’t necessarily produce 10x more code than the other developers these days, but bring value in other ways.

I bet you can easily name a few 10x developers you’ve worked with. Think of the guys that were always sent out to talk to the business, solve the hardest problems, or develop code of the highest quality or importance. Or the ones that represent your team or organisation in the outside world, sharing their skills and knowledge. In short — they are the ones that other developers look up to.

Tom DeMarco and Tim Lister made one more interesting observation though. It turns out that the 10x productivity factor is visible not only on an individual level but also at the company level. It leads to a simple conclusion:

Good people attract good people.

If you doubt it, ask yourself:

Would you rather be the best developer among mediocre ones or the mediocre one among the best ones?

There is harsh truth behind this question — whenever you find yourself as the best programmer around it means you have little chance to learn anything new from other people at your organisation. If you are ambitious and keen on learning you can:

  • start searching for a new position or a job,
  • sharpen your skills using external resources: online courses, conferences, side-projects, and so on,
  • or make people around you better…

Is this what senior devs do?

A simple truth I’ve learned over the years is that software development is a team sport and playing alone won’t get you far. Self-centred programmers might be great when it comes to technicalities, but usually fail when faced with sociological problems — gathering the requirements, communication with the business, cooperation between teams.

Being a part of a great team, makes it easier to deliver value, is very rewarding, and simply makes your work more fun. I consider myself lucky — most of the programmers I work with are aware of the importance of team play. What I find not so common though are experienced developers ensuring that people around them become better over time. In my opinion, it’s one of the greatest qualities of seniority.

Some senior developers may wonder: why bother with the development of my colleagues when I’m always busy building business value by making new features or learning new skills anyway? Isn’t it a waste of my (precious) time?

Edmond Lau in his book “The Effective Engineer” answers this question with a graphic example. Imagine a tide that represents the level of skills within your organisation. The higher it gets the more successful the company becomes. If you — a senior developer — invest enough in the development of the people around you, you might soon find yourself carried away by the waves.

What now? Recruit, recruit a lot

Some things you can do as a senior developer to help people around you are obvious: pair programming, performing code reviews, onboarding newcomers, conducting workshops or presentations. What I find quite uncommon though is getting yourself involved in the recruitment process.

It might not seem like the best use of time as there are so many things to do instead — features to deliver, bugs to fix, design to do, discussions to raise, and so on. Why should recruitment be a priority? Remember the story of a tide? Taking a part in the recruitment process allows you to actively shape the level of programmers within your organisation. After all, if you want to work with the best, why don’t you recruit them yourself?

Think about it as a high-leverage activity — in case of a successful hire the few hours you spent on a recruitment session and writing feedback may become 2000+ hours for your organisation. Even if you include all the sessions you attended that did not conclude with a new hire it’s still tens versus thousands of hours.

What’s more, being a recruiter will help you keep your skills in shape. While working on your everyday tasks you might not need some of the Computer Science concepts, or perhaps use only a subset of functions in your favourite programming language or framework. Running a recruitment session will be your chance to refresh and challenge your knowledge.

Wrap up

As a senior programmer, your teammates and their skills are almost as important as your own development. Don’t stop at the team level though, but get involved in the recruitment process to shape your whole organisation. And then… get carried away by the waves.

--

--

Tom Muc
Geek Culture

Software engineer at Ocado Technology, building distributed systems with passion