How to Keep Your Best Programmers (2012)
daedtech.com
daedtech.com
So basically, they are people willing to do work that is needed and doing it responsibly. The work you are not willing to do and doing it without throwing temper tantrum over being too good for the work. That is why they ended up having responsibility - leadership does not have to worry that boring but needed work wont be done. He does not even have to motivate them, they just work.
I mean, I get that it is possible to asleep and not to continue learning, becoming mediocre. But if you are too good for work on critical system that needs to be done, then you have less merit then them. Merit should not be about coolness points, but about how useful you are. I agree that all this probably means leaving is a good idea for you, but the resentment towards people responsibly doing important work you are not willing to do is absurd.
Also, once you have to maintain the code for longer (or worked on old codebase), you might find that your opinions about what is clean code and what is important change - some of the stupid things if you people used to small projects routinely do are actually things that allow you not to loose sanity and control on big projects.
He also writes about teams that reward and entrench tribal knowledge but have no notion of designing systems (when possible) such that even new hires cannot misuse them. http://www.daedtech.com/tribal-knowledge/
I'm sure it is these notions that the author had in mind when writing this article, and not just people who want to skirt unpleasant/difficult tasks.
The part I quoted from defines merit as raw talent or something like that, not by how useful or responsible you are. He assumes that your motivation have to drop over time and if it does not, he assumes you are bad developer. That is wrong. The productivity/motivation drop itself is a fault, not a virtue. Yes, good leadership deals with it too, but if they don't need to babysit you that way they might value that alone.
It is not just skirting unpleasant tasks. Some positions are largely repetitive - if you can not deal with that you are not suitable, period. I am unsuitable for them too, but I am quite happy that I have colleagues who are suitable. It is not actually that easy to find people who will reliably do boring work. Some positions require you do deal with problems nobody managed to optimize or difficult customers or such. Again, if you can not deal with that you are not suitable and if you can, that such ability is pure merit. Quite a lot of "hackers" run away from difficult tasks that require you to understand abstractions and such - I am good at those. As much as those "hackers" can assume me to be less capable because I did not flocked to cool new language, I still have skill they don't have.
Knowing what you are suitable for is important, but as I said, all the resentment and condescension towards people who are valued for their actual contributions is absurd.
Rather, his point is that people who go _out of their way_ to hoard knowledge on ancient systems and make themselves critical are people you want to avoid. As a single point of anecdata, the best engineers I know want to democratize information - they hate tribal knowledge because it creates a point of failure and bottleneck in the Keeper of the Tribal Knowledge.
Going out your way to learn about systems that needs to be maintained is a good thing (if that is hoarding). I want team full of people who are like that.
> On the other hand, the unskilled tend to have a slightly different curve: Value Convergence. They eventually settle into a position of mediocrity and stay there indefinitely. The only reason their value does not decrease is because the vast amount of institutional knowledge they hoard and create.
The quote you're addressing (from another article) is also qualified in the original source, under "Responses to comments" / "Not everyone ‘left behind’ is incompetent": http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-d...
Basically there are people who are willing to drag your organizations failure to build a reasonable system into the future to keep you business.
I suppose you probably do want a team like that if you're the owner.
The costs in slowed developer velocity and increased developer frustration are largely invisible, but cumulative, and they lead to unhappiness and organizational paralysis.
Nowhere in the article is process mentioned. So I'm not sure how you concluded that process was to blame.
Let's say that process is the cause. How would you evaluate and reward people for 'business impact', presuming we have a method of determining it? Wouldn't it be through a process?
Perhaps what you meant to say was that poorly designed processes or a process driven culture cause problems, one of which is employee boredom.
Very easy.
> and fairly evaluate that impact
Very hard.
A narrative is part of a long relationship, a story that evolves and grows over time, holding your interest through the climax. This works with an employee/employer relationship because it there's an evolution of learning about the different characters and environment, discovering problems and solving them.
Anytime an employer forgets that employees get something out of work aside from rewards/benefits/payment, they see only a scale with a cost center on one side and a resource to be mined on the other. And they want to mine more than they spend.
Compare that with a garden, remembering that you have to give the garden something. Yes, you provided soil, and the plants get nutrients. But do you care if they get watered, the weeds are taken care of, and the sun is shining?
Cultivate your employees. Help them grow, and you'll benefit from that growth. Eventually, harvest time will be over, and they will leave for greener fields, but you'll have enough stored up to get you through winter.
This is a very astute observation. I've worked with many really great engineers who wouldn't switch jobs even if they could command a better compensation... because they are happy with their work and compensation. Doesn't stop them from being great engineers or constantly learning/adapting to new technologies.
I like the work much more once these factors are settled - e.g. once I established boundaries and once I am trusted.
When you start at a company (and early in your career), you can add value Z, and get rewarded Y in proportion to your work/output X. Where Y is whatever motivates you, money, advancement, interesting work, etc. As you remain in a company, Y and Z tend to reduce over time sometimes even to zero, to the point where additional marginal work does not result in commensurate additional marginal value/reward. At that point you've hit your ceiling. You're stuck. If you have any ambition at all, you're headed for the hills, to a place where you can start expecting more proportional reward once again.
Some people don't care--they're happy to hit their position's ceiling, and just hang out there until they get bored. For ladder-climbers it's pretty much unacceptable.
If I was totally honest it would come across as an insult to the company and its management/HR teams I'm sure, and I've been advised never to burn bridges.
There is a slim chance my criticisms could have improved conditions for the colleagues I left behind, but I find it very unlikely.