In my mind, the mythical 10x programmer is the person that can complete business objectives while helping make those around them more effective. This isn't actually a myth, and "10x" is a completely arbitrary number that doesn't mean anything. It might as well be 2x or 1.1x -- they all mean the same thing to me. They can do their work at 1x speed, a baseline set by the developer in question and not their peers, but they can simultaneously help others around them be more productive.
Qualities that I believe make the most difference in programmers’ productivity
61–70 of 321 posts
Re: Qualities that I believe make the most difference in programmers’ productivity
#62Earlier quoted context omitted.
I have definitely been involved in teams where removing the "top programmer" made everybody more productive. Usually, these developers are "10x programmers", in the sense that they write 10x the lines of code as the rest of the team, it's just all bad.
Maybe this is the distinction that throws off these "10x programmer" threads: the idea that a 10x programmer produces ten times the amount of code in a given time. The best programmers I have worked with frequently replace thousands of lines of code with hundreds. Programmer productivity is about value delivered, not lines of code.
Re: Qualities that I believe make the most difference in programmers’ productivity
#63I am today, a 10x better programmer than I was where I started. In terms of quality, complexity, efficiency, readability, maintainability, everything. I was paid too much when I started and/or not enough now!
Notch and Carmack are 1000x better game programmers than I am. Linus is a 1000x better file system and operating system programmer than me. Monty is a 1000x better database programmer than I am. DHH can build a website at least 10x faster than me and do it in a way that would contribute 100x more to the community than I could.
If you discard people with decades of experience. If you discard people who have specialized. If you discard the many geniuses in our field. And then if you start to make excuses at the other end, and if you narrow it to a specific set of tasks, with a specific set of complexity, then maybe there isn't a huge gap. But even then, I feel that if you apply yourself to that task for a decade or two, you'll find that you're a 10x better programmer than you used to be.
Re: Qualities that I believe make the most difference in programmers’ productivity
#64Re: Qualities that I believe make the most difference in programmers’ productivity
#65Earlier quoted context omitted.
I have definitely been involved in teams where removing the "top programmer" made everybody more productive. Usually, these developers are "10x programmers", in the sense that they write 10x the lines of code as the rest of the team, it's just all bad.
Yes, I have seen that too, but that's not what I was talking about. I have heard about a case where really the best programmer left, and now everybody else had more responsibility, had to learn about parts of the code they did not know previously, had to fix harder problems. So, everybody else was getting better because the one person who could help with the hard stuff was not there anymore. But I honestly can't reme…
They were, as individuals, very productive, but they suppressed the productivity of the rest of the team.
Re: Qualities that I believe make the most difference in programmers’ productivity
#66The quantity and quality of grammatical errors in the piece were finely calibrated to keep me reading it to the end. A curious effect.
Haha :-) Please point me to the worst ones and I'll fix. Re-reading again btw.
Re: Qualities that I believe make the most difference in programmers’ productivity
#67Everything from the original post sounds reasonable, you should absolutely read it. Just some random thoughts to add to it: * For most of my past clients, the skill / output of their programmers was not the bottleneck, even though they thought so. As long as something is not a bottleneck, there's not point in trying too hard to optimize it (since you can get better ROI somewhere else). * Software is a team effort. Im…
And programmer reading anything on his blog, or anything on HN for that matter, is not an average programmer anyway. The simple fact you are interested in your work singles you out.
Guys, you need to come out of your super power bubble and come to work down here. Where people uses PHP, SVN, and don't know what an environment variable is. Where they work for money, not for passion. Where Vi is scary and they pay the licence for Oracle even if their DB has one table.
This is the huge majority of the devs : plumbers.
I find it disrespectful when people don't realize this, because it means they live a life ignoring a vast majority of dev tool users.
Not only those people are numerous, but they create a lot of wealth because they are so many.
Don't assume:
- devs know the command line
- devs know how to setup a server
- devs know how to use a package manager
- devs know how to version control, unit tests...
And above all, if they don't know how to do that, don't assume they can't do their job. Because according to their employer they do. And they are paid for it.
They won't do a graceful reload, they won't compress their css and won't escape the user input. But the website will be online, serving customers.
This is why on my blog I have articles explaining what's javascript, what's RSS, how to setup the Windows PATH, etc. Because for important tutorials on Python, I can reference those, not assuming people know what I'm talking about.
Re: Qualities that I believe make the most difference in programmers’ productivity
#68Taking myself as a 0.5x programmer, I have sadly encountered some 0.01x programmers. In fact it might be better to characterize them as -0.01x programmers, who I believe can work indefinitely without ever producing a working piece of software. Usually the best indicator of this is when the initial snaglist for a piece of work grows after the snags have been "completed". Then each round of fixes becomes a kind of Hydr…
I think that's probably quite normal, except for small pieces of software.
If the snags aren't becoming less significant though then I agree, that's a big warning sign.
Re: Qualities that I believe make the most difference in programmers’ productivity
#69> Often complexity is generated when there is no willingness to recognized that a non fundamental goal of a project is accounting for a very large amount of design complexity, or is making another more important goal very hard to reach, because there is a design tension among a fundamental feature and a non fundamental one.
It happens all the time that requirements are very complex. Junior programmers will fail to implement them. Better programmers will manage to implement them, but it'll take too much time to develop and especially to maintain their solution.
Experienced programmers recognize what's happening and have the personality to stand up the project leader and get a simplified version of the requirements accepted.
It's also why very large software projects fail, especially the type that is intended to save costs by replacing many different existing informal systems by a unified one. The requirements will be ridiculously complicated (have to do everything all the projects to be replaced do), and nobody in the software development part has the power to change the organisation first.
Re: Qualities that I believe make the most difference in programmers’ productivity
#7010x what, though? No 10x engineer would accept a unitless quantity from uncalibrated measurements of terrible accuracy. Yes, it's obvious that some people are getting a lot more done, but it's very hard to quantify and vulnerable to social engineering. It can be hard to spot quieter people working effectively, and it's really hard to quantify those who spend their time helping others or improving team effectiveness o…
It's even harder when you factor in people who seem to get a lot done quickly, but at the cost of huge technical debt that will slow the project down to a crawl in the long run. Or the other extreme, people who overengineer everything in anticipation of a future that will never come.
Which is also unquantifiable and is a very similar myth.