The letter A styled as Alchemists logo. lchemists Syndication Icon

Putin's War on Ukraine - Watch President Zelenskyy's speech and help Ukraine fight against the senseless cruelty of a dictator!

Published June 15, 2022 Updated June 23, 2022
Cover
How To Keep Your Best Programmers by Erik Dietrich

This book — or should I say long article turned into a book — was published in 2013 but is still powerfully relevant today. The following is a capture of my notes from the book which loosely mimics the book’s outline. Should you like what you read here, I’d recommend checking out Developer Hegemony by the same author since it delves much deeper into this subject matter.

As always, if you like what you see here, I’d suggest buying and reading the book for further details with the ability to draw your own conclusions beyond what I’ve captured here. Enjoy!

What Others Think

Dietrich opens by pointing to an organizational debt anti-pattern which Bruce F. Webster labels as the The Dead Sea Effect. Essentially ineffective organizations end up losing talent while keeping only the mediocre. Talent leaves — by self selection — due to not wanting to put up with the bureaucracy or working with underperforming individuals. Webster goes on to point out that this is not related to the Peter Principal because the difference is that individuals choose to leave instead of the organization promoting and retaining incompetence which is a good callout.

Another mentioned aspect of organizational debt is in an article by Alex Papadimoulis on Up or Out: Solving the IT Turnover Crisis where he describes a Value Apex. Essentially, a talented engineer shows up on the job and starts with a value of zero. Quickly, though, the engineer learns all of the business domain logic, provides maximum value to the company, and then hits an apex where value is maximized and will start to taper. At this point, the engineer is ready to move on and there’s not much the company can offer which would retain the individual. On the flip side, the unskilled will settle into Value Convergence which keeps them in the same job and company due to hoarding a vast amount of institutional knowledge that they’ve created.

Papadimoulis' suggestion is to create a culture of quitting where you realistically acknowledge that — after one or two years — the talent you hire today will move on. This ties in well my article on Git Commit Anatomy where you essentially want to focus on doing your best work every day so those who follow in your footsteps appreciate the work you did and can quickly pick up where you left off. This has multiple benefits:

  • Increases your reputation and hiring power both for the individual and for the company.

  • Creates a pool of alumni instead of ex-employees which is more prestigious.

  • Encourages alumni to recommend others to their previous company.

  • Encourages alumni to potentially return at some point in the future with new skills.

  • Flushes out unskilled employees who have not moved up or out after a few cycles.

This is particularly poignant as quoted from Papadimoulis' article:

The greater the skill, the shorter the curve. Ambition and skill go hand-in-hand, and ambitious individuals tend to want swift changes, and quickly lose motivation when these don’t happen.

In other words, taking pride in one’s work by seeing the value they create and the growth they gain.

Another issue — from a leadership angle — is that you have to keep an eye out for the onset of boredom as written in Bored People Quit by Michael Lopp. Antidotes to boredom are suggested such as:

  • Keep interesting problems front and center - What are people excited and engaged about. Don’t lose this focus.

  • Allow experimentation - While hard to measure, can be provide future benefits and optimizations and well worth it when it comes to long term thinking.

  • Protect time and aggressively remove noise - This includes solid practices such as making meetings the exception rather than the rule and using group chat effectively.

Lopp drives home the point by saying:

I think of boredom as a clock. Every second that someone on my team is bored, a second passes on this clock. After some aggregated amount of seconds that varies for every person, they look at the time, throw up their arms, and quit.

What’s the Common Thread?

Dietrich provides a list of reasons for talent leaving a company which I’m going list here with some heavy modifications and augmentation:

  • Low organizational intelligence.

  • Diminishing returns in mutual value of the work between programmer and organization.

  • Sheer boredom.

  • Perceived futility of current project coupled with powerless leadership to course correct - This is lack of leadership but also lack of a strong engineering culture to push back on poor leadership.

  • Little to no mentorship - Sadly, this is becoming more the norm these days where organizations are filled with young engineers of little to no experience led by other engineers with no experience but happen to have been at the company long enough to have a rough idea of the business logic. Even then, that knowledge is limited because those with the real talent left long ago. So you are left with a whole swath of engineers stumbling all over each other with no real technical mentorship which hurts the industry as a whole.

  • Time-based instead of merit-based promotions - This is a disturbingly common occurrence in the software industry where people are promoted due to time rather than skill. What’s most disturbing is the titles dished out such as going from Engineer to Senior Engineer in a matter of one or two years. Same goes for Senior to Principal engineer — or whatever fancy title might be given — and so forth. Don’t get me wrong, I’m all for promoting talented work and this can easily be done by increasing wages instead of titles. When it comes to titles, those need to be earned and within reason yet there is no industry standard on what each title means and how it compares to similar titles in other companies.

  • Organizational Debt - This includes unnecessary bureaucracy but also the accumulation of policies, rules, and regulations that no longer make sense. For more on this, please read How To Eliminate Organizational Debt by Aaron Dignan.

  • Lack of creative freedom and control - Super important to have in place for those who are truly talented since — as a good leader — you want to hire the best while doing everything in your power to clear the path for them to do their best work. Yet, so many organizations think these individuals need multiple layers of leadership and micromanagement which is definitely a sure fire way prevent any retention of talent.

  • Basic philosophical differences with majority of coworkers - You can definitely hire a lot of talented people but if they all have major philosophical differences you’ll never be able to assemble a stellar and well jelled team as documented in Peopleware but this also means that your interviewing practices are complete rubbish to detect this in the first place.

The common thread to all of the above — which Dietrich expertly calls out — is due to lack of autonomy, mastery, and purpose all of which is documented in detail in Drive by Dan Pink.

Guaranteeing the Narrative

A few take aways:

  • Allow goals to be achieved by one’s own actions (i.e. autonomy).

  • Allow one to excel in one’s duties to where they are eventually teaching others or even becoming beacons of specialized knowledge within the industry (i.e. mastery).

  • Ensure the narrative being offered is appealing and reinforced on a regular basis but also clear and compelling (i.e. purpose).

Conclusion

The conclusion I draw from all of this reinforces what I’ve already documented as the Engineer’s Oath and Rigor. Build this into your culture and you’ll have a reputable business that will retain and attract talent. Even better — when talent moves on — you get positive marketing to attract new talent or potentially welcome alumni with new knowledge back into the fold again. In some sense, this is an aspect of Turning The Flywheel by Jim Collins which constantly reinforces itself. So keep turning that flywheel and let the momentum you build reinforce itself!