Live data from Hacker News

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

antirez.com

151–160 of 321 posts

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

#151
Two classics on design to flesh out Antirez' thoughts:

Parnas’ ”On the Criteria To Be Used in Decomposing Systems into Modules” https://www.cs.umd.edu/class/spring2003/cmsc838p/Design/crit... [PDF]

Christopher Alexander’s Notes on the Synthesis of Form http://www.hup.harvard.edu/catalog.php?isbn=9780674627512

Both get deep into how a design emerges from the relationships among what Antirez is calling "sub-tasks". Antirez refers briefly to these relationships in the "Design sacrifice section." Parnas and Alexander put them, correctly I believe, at the heart of the craft.

Parnas was a software engineering authority. Alexander went on to write A Pattern Language, from which the software community derived "design patterns" as a foundational idea.

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

#152
post #59
post #3

All programmers have different output. How is it even a debate? Some people are more productive than others. Just like one novelist takes 10 years to finish his novel another writes 2 every year.

"How is it even a debate?" Because having different output has nothing to do with being more productive. It's just different, that's it. And productivity is very hard if not impossible to quantify. Relevant experience and knowledge might boost productivity on a specific problem, just like it might make code nearly defect-free with little to no effort, or make someone much better at quickly understanding large code ba…

To clarify what I meant by "how is it even a debate?": I just find it a bit "surprising" that many people in this industry refuse to believe that many programmers are 5x or 10x more productive than others (and write just as good code).

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

#153
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,…

Why would you want a 10X programmer when you could find an X^2 one? It is a pop psychology concept and it has no use.

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

#154

Earlier quoted context omitted.

A 10X programmer is supposed to be 10x the average, not 10x the people who drain value. I've watched Notch program, and while he knows of lots of game related algos that I don't, he's not a magical snowflake and it'd take me no time at all to find those algos and implement them. There are huge swathes of the code he writes that I'd be comfortable writing at about the same speed. From experience solving other complex…

10x average is the myth. According to Peopleware, it's 10x the worst and 2.5x average.

This really ought to be pinned to the top of this HN thread.

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

#155

Earlier quoted context omitted.

Come on, Antirez is a x10 programmer, he coded one of the most brillant software of the last decade. It's so well done I use it as an example in my trainings, making people compile it to stop being afraid of building from source because I know it never fails and it's so damn simple. And programmer reading anything on his blog, or anything on HN for that matter, is not an average programmer anyway. The simple fact you…

"But the website will be online, serving customers" ..., frustrating them, leaking their data, and wasting their time.

Oh yes. We tend to wrongly assume the goal of most companies is to do correctly their job. It's not. Their goal is to make money.

And a lot of businesses do so while providing terrible services or products. Plus people working for them have their own agendas : family, play, not get blamed, etc and won't do anything about it.

It's not specific to software. How many of you have experienced :

- a completely broken by design shower

- those "easy to open" packages that are impossible to open

- kitchen ware taking centuries to wash because obviously nobody designing them never bother to use them

- laptop with horrible sound

- shoes that destroy you feet after 2 hours of using them

?

Doing your job well is the exception, not the rule.

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

#156
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…

Another great thing here: "Design sacrifice: killing 5% to get 90%."

I remember a very specific example of this from Perl 6 development circa 2009. perlgeek (I think) and I had been struggling with coding up the sequence operator for a couple of months. Every time we thought we had it, someone would come up with a case that broke the system again.

pmichaud (not sure if it's the same pmichaud here on HN) comes up to us and says something like, "Guys, you're not getting this, let me do it." And I was kind of offended, because it wasn't like perlgeek and I were chopped liver; why did he think he could easily solve a problem that had been plaguing us?

But here's what pmichaud did. He went up to TimToady (Larry Wall) and said, "There's too much magic in the sequence operator. We need to simplify it." I don't know which combination of the two of them came up with the details, but less than 24 hours later the spec had been changed so that there was no magic on the right hand side of the operator and they had a working implementation. Any sequence possible before was still possible, but the user was required to be more specific about what they wanted. After the change the median sequence took maybe two more characters to specify ... but suddenly 90% of the hard part of coding the operator was gone.

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

#157

Earlier quoted context omitted.

Come on, Antirez is a x10 programmer, he coded one of the most brillant software of the last decade. It's so well done I use it as an example in my trainings, making people compile it to stop being afraid of building from source because I know it never fails and it's so damn simple. And programmer reading anything on his blog, or anything on HN for that matter, is not an average programmer anyway. The simple fact you…

So you're saying that 10x developers definitely exist, it's just a disappointing state of affairs. Like how the Turing Test was rendered obsolete because online comments (e.g. Youtube) became so bad, the bar to writing a bot that passed as one of them was lowered dramatically.

Lol, I didn't know about the Turing Test state. Hilarious perspective.

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

#158

Earlier quoted context omitted.

A 10X programmer is supposed to be 10x the average, not 10x the people who drain value. I've watched Notch program, and while he knows of lots of game related algos that I don't, he's not a magical snowflake and it'd take me no time at all to find those algos and implement them. There are huge swathes of the code he writes that I'd be comfortable writing at about the same speed. From experience solving other complex…

10x average is the myth. According to Peopleware, it's 10x the worst and 2.5x average.

Which is hardly as intimidating. If the 10x meme hadn't mutated into a mythical ten times the average developer, it wouldn't be worthy of generating so much clickbait. We'd also be able to hire sanely without freaking out about accidentally recruiting someone normal.

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

#159
post #85

Earlier quoted context omitted.

I've also seen negative impact developers. If they did not code, we'd be closer to the finish line than if they did not. Works great if you pair them with a more senior developer who has the chutzpah to make an impact by deleting egregiously bad code. E.g. one of the best I know made a failing project succeed by literally deleting all unit tests (which in that case were not providing value at all).

> I've also seen negative impact developers. If they did not code, we'd be closer to the finish line than if they did not. Code? I know people that have caused big projects to fail by just showing up at the meetings. The amount of damage a -10x idiot can do to a project is just mind boggling. Here is my unsolicited advice to young players: if you end up in a project with a -1x (or worse) guy who is also the darling o…

In my experience, those -10x people don't even have to be developers.

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

#160
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…

"great design is the key to increased productivity"

Given how many times the 90/10 principle will brutally murder your time estimates ("we're 90% done, so there's only 90% left to go!"), learning to also harness it in your favor as antirez talks about is a great programmer differentiator. If 90% of the effort is coming from 10% of the design, and you can find some way to cut that part of the design in half, you just cut 45% of your effort out. My numbers are made up, but the principle holds. Most of the time you don't get that lucky, but every once in a while it is possible to do even better; I have, on occasion, seen entire seemingly-massive multi-month projects dissolve into 200 lines of code in the right place, built on the right foundation.

Post reply on HN