Live data from Hacker News

Qualities that I believe make the most difference in programmers’ productivity

antirez.com

91–100 of 321 posts

Re: Qualities that I believe make the most difference in programmers’ productivity

#91
post #79
post #48

In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…

Exactly. All the arguments that have the word "productivity" are probably off. It's not about "productivity" as in "which programmer produces more code" or even "more programs" or whatever. It's about the person being able to recognize what matters, on one side, versus those that can even make such decisions to finally cause the doom of the project. I have such experiences, and some huge failures can really be caused…

My favourite programming anecdote[0]. How many lines of code did you produce today? -2000. Indeed it's not about lines of code. A 10x programmer might produce a solution that would take a team of three 1x programmers twice as long to implement and is twice as 'good' (fast, compact, stable, elegant, maintainable, etc).

It's interesting that this anecdote is from Apple, as Steve Jobs was a famous proponent of the 10x or 20x programmer and hiring only the best available. In contrast at Microsoft Charles Simonyi took completely the opposite approach, with a highly stratified organizational structure dependent on hiring large numbers of drone programmers[1] and reducing programming tasks down to easily implementable essentially rote modules.

I don't think it's a matter of one model or the other 'winning' though as the Simonyi strategy certainly seemed to work for MS.

[0] http://www.folklore.org/StoryView.py?story=Negative_2000_Lin...

[1] https://en.wikipedia.org/wiki/Charles_Simonyi#Denmark_and_US...

Re: Qualities that I believe make the most difference in programmers’ productivity

#92
post #13

Everything 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…

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.

I have seen that with a guy that produced alright code, but was pretty bad leader - which was clearly his ambition. You either did everything exactly his way or had to argue for hours and days. The result was that whole project moved slowly, initiative people punished and parts of project he could not micromanage were mess anyway (since everyone else either left or was too passive).

Re: Qualities that I believe make the most difference in programmers’ productivity

#93

Provided your business will never need more than one and only one expert programmer who may not work in a team and this expert programmer will never leave your business and will always be trustworthy to do the right thing and they can support/maintain their own work in your production environment then a 10x programmer is a great idea. Otherwise consider other human qualities such as communication skills, adaptability…

I think the point is that the 10x programmer has those other skills. That is the differentiating factor. It's not about typing 10x faster or generating 10x the lines of code. It's about creating 10x the value.

That requires identifying areas where you can deliver value. Frequent cost benefit analysis of potential features vs their estimated cost. And as antirez said in the article, designing these things so that less code gets you those features.

The difference is kind of like book smart vs street smart. If you are just book smart and you understand algorithms and data structures really well it can only get you so far. You need to be able to interpret the user's requests and design what will really help them. You need to understand what they are asking for and what they really mean. And you need to generate solutions and sell them.

Re: Qualities that I believe make the most difference in programmers’ productivity

#94
Speaking from my own experience, the truly amazing ultra-productive programmers often come with the caveat that they don't spend much if any time mentoring, explaining, or sharing how they work and why. They can produce a patch in two minutes, or interactively fix up some corrupted data in a few seconds. But spending the time to demonstrate to everyone else how they did it so that the other members of the team could learn their own product better would take a lot more of their time. They're always the ones to fix the unexpected problems, because they can figure it out and fix it before anyone else can even get a handle on what's wrong. That's great in the moment of crisis, but in the long run it can be devestatingly counterproductive.

So whether intentionally, tempermentally, just due to the constant demand for their services, or just because it's tautological, the 10x programmers don't actually contribute back to their team's knowledge, which means the rest of the team stays at 1x, and whent he 10x programmer moves on to another project or company, the rest of the team flounders around while they have to figure out all the things the 10x programmer never bothered to share.

Re: Qualities that I believe make the most difference in programmers’ productivity

#95

The 10x programmer is a myth perpetuated by senior management to get compliant submission from naive young code monkeys. End of discussion.

I don't think you can fool junior devs so easily, from inside of the team it is very easy to see if a person is a 10x or not.

In fact, the management are often the last people to notice if someone in their company is a 10x guy.

Re: Qualities that I believe make the most difference in programmers’ productivity

#96
post #54

Earlier quoted context omitted.

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.

Exactly. Years ago, one company I was at proposed we start a bonus plan based on lines of code. I wrote a script that inspected the RCS commits (it was years ago) and generated a report that showed that most of our best developers were net negative lines of code.

http://www.folklore.org/StoryView.py?story=Negative_2000_Lin...

Re: Qualities that I believe make the most difference in programmers’ productivity

#97
post #82

Earlier quoted context omitted.

Exactly. Years ago, one company I was at proposed we start a bonus plan based on lines of code. I wrote a script that inspected the RCS commits (it was years ago) and generated a report that showed that most of our best developers were net negative lines of code.

And how did you define and measure the "best developers"?

1.) When I am stuck on hard problem, he is a good bet for help.

2.) History: was assigned tasks or project multiple people failed previously and was first to succeed.

3.) Tasks and projects assigned to him/her move with reasonable speed, does not need handholding. When other people take over, they don't complain all that much and are able to continue without encountering major wtgs.

Re: Qualities that I believe make the most difference in programmers’ productivity

#98
post #38

I'd argue that it's greater than that these days, many programmers really just can't do what a lot of good programmers can do. Even if they're given all the time in the world they'll just never get a result. So whats that make them infinityX programmers?

Exactly. At my last job, a colleague of mine was tasked with creating a tool to generate a monthly summary report based on 100s of millions of records. It took him weeks of trying to get something working in Python (naively read in all the data into Python objects and then trying to iterate over them), coming up with convoluted algorithms trying to speed things up. His final solution took multiple days to run (too sl…

I don't understand this. I'm not saying I don't believe you, but it seems ridiculous to me. I actually feel vicariously annoyed just reading that story.

In my experience, most competent programmers encounter problems they can't solve off the cuff frequently. Then they think about it, research a bit, formulate the problem, etc. They come back to solving it after stepping back because they realize they're in the weeds and just treading water.

At a certain point, your colleague must have realized this task was simply beyond his "off the cuff" abilities and gone looking for a more efficient way. Surely he had the presence of mind to realize he was beginning to be unproductive? How did he spend weeks on a problem that can be summarized as "retrieve a lot of records from a database"?

Furthermore, what was your organization like that someone that grossly incompetent wasn't checked in on about progress? There was no "mercy rule"? No referee to call it when it was clear it was taking weeks instead of hours or days?

I guess I'm just confused because I don't consider myself a particularly spectacular programmer, but I'm self-aware enough to search for a solution and RTFM for the tools at hand. I just don't understand how weeks were spent here. I've never encountered a team where it seemed like one person was that far off from the median (to be fair the companies I work with likely wouldn't use them as a point of contact though).

Re: Qualities that I believe make the most difference in programmers’ productivity

#99
post #91
post #79

Earlier quoted context omitted.

Exactly. All the arguments that have the word "productivity" are probably off. It's not about "productivity" as in "which programmer produces more code" or even "more programs" or whatever. It's about the person being able to recognize what matters, on one side, versus those that can even make such decisions to finally cause the doom of the project. I have such experiences, and some huge failures can really be caused…

My favourite programming anecdote[0]. How many lines of code did you produce today? -2000. Indeed it's not about lines of code. A 10x programmer might produce a solution that would take a team of three 1x programmers twice as long to implement and is twice as 'good' (fast, compact, stable, elegant, maintainable, etc). It's interesting that this anecdote is from Apple, as Steve Jobs was a famous proponent of the 10x o…

Thanks for a hint! Reading [1], there the "programmer actually making decisions" was called a "metaprogrammer":

"the metaprogrammer was the designer, decision maker, and communication controller in a software development group.... individual progammers were allowed to make no design decisions about the project. All they did was write the code as described by the metaprogrammer."

In that case, the differences between programmers can't be too big and surely matter little. It's the "metaprogrammers" that are important and influence the faith of the project. And those that Jobs praised were, by that definition, surely "metaprogrammers" who also did the tasks of "programmers."

Re: Qualities that I believe make the most difference in programmers’ productivity

#100
post #63

I don't understand how anyone can say 10x programmers don't exist. There are programmers who DRAIN value from projects and companies. The most insidious I've dealt with are people who assure everyone their part is going to be done on time, but come the deadline, they have nothing. I am today, a 10x better programmer than I was where I started. In terms of quality, complexity, efficiency, readability, maintainability,…

> I am today, a 10x better programmer than I was where I started

I think "10x dev" usually means 10x average - with the assumption that the average (or median?) is still fairly productive. Also, what metrics have you to conclude this? Do you actually measure your own productivity, or is this a subjective judgement?

Post reply on HN