The lead on my current project micro manages every point of the code's architecture. I have no freedom to make any calls, even on legacy parts of the code that could be refactored to better fit new requirements. None of the other developers "own" anything so no one can make any calls. Anything takes a week or more to be discussed. Arbitrary non-obvious decisions have been made in the code base and it's up to you to figure them out. I am left fixing simple bugs and building things very slowly, treading very carefully rather than making it right. I am now a 0.8x programmer.
I look at my week's schedule. I see that I have a lot of meetings and checkups that, while important, are unrelated to my current project and will only take a chunk of my time and energy. I am now a 0.6x programmer.
I work in an open space office where terrible music is played through its sound system the whole day. I have a hard time focusing and staying focused. I am now a 0.4x programmer.
--
While I enjoyed the article, I think it overlooks the fact that a developer's efficiency is also often a factor of their environment (not just physical, but the project itself too). I've been 5x, I've been 0.1x, and the biggest contributing factor from project to project has been my environment. My experience and knowledge is also a factor, but this changed slowly, over time, while environment changes can mean I'll go from being super productive to very unproductive in a month. More managers and leads need to be aware of that.
It took me a long time to realize I don't have to say yes to everything that comes my way. What happens if you say some version of, "I'm not going to do that"? It may or may not be tenable option in your situation.
It's like going to a party, the host keeps offering you food, you eat everything offered to you, and then blaming the host when you gain weight.
I actually agree with you. Over time, as I gained more experience as a developer, one of the best things I've learned was to take charge and fix things where I know they were not right, even if not officially requested. Or to identify that a request for one specific fix actually meant something else was broken and that's what should be addressed instead.
Yes, yes, yes! Instead of always blaming the worker, look at the environment. I have been on 50x teams and the main reason was that we were allowed to do our job coding and making recommendations and management did their job by removing obstacles and clarifying things quickly. They also believed us when we said something. I see it so often that management has an inherent distrust of their own people and goes behind their backs to get advice from other parties.
You go down to 0.1x if management doesn't make decisions, drags you through tons of process like status meetings and stupid metrics, forces you to use incompetent vendors and so on.
> I work in an open space office where terrible music is played through its sound system the whole day. I have a hard time focusing and staying focused. I am now a 0.4x programmer.
Slightly off-topic, but you might try some white-noise to defeat the bad music.
If you run linux, here's a nice little one-liner in a terminal:
play -q -c 2 -n synth brownnoise band -n 1600 1500 tremolo .1 30
Good observation. In Peopleware: Productive Projects and Teams the authors specifically address this phenomenon. Programmer productivity varies widely between organizations and a lot of it comes down to environment.
The lead on my current project micro manages every point of the code's architecture. I have no freedom to make any calls, even on legacy parts of the code that could be refactored to better fit new requirements. None of the other developers "own" anything so no one can make any calls. Anything takes a week or more to be discussed. Arbitrary non-obvious decisions have been made in the code base and it's up to you to figure them out. I am left fixing simple bugs and building things very slowly, treading very carefully rather than making it right. I am now a 0.8x programmer.
I look at my week's schedule. I see that I have a lot of meetings and checkups that, while important, are unrelated to my current project and will only take a chunk of my time and energy. I am now a 0.6x programmer.
I work in an open space office where terrible music is played through its sound system the whole day. I have a hard time focusing and staying focused. I am now a 0.4x programmer.
--
While I enjoyed the article, I think it overlooks the fact that a developer's efficiency is also often a factor of their environment (not just physical, but the project itself too). I've been 5x, I've been 0.1x, and the biggest contributing factor from project to project has been my environment. My experience and knowledge is also a factor, but this changed slowly, over time, while environment changes can mean I'll go from being super productive to very unproductive in a month. More managers and leads need to be aware of that.