Hacker News new | ask | show | jobs
by BeetleB 1917 days ago
> “In software, the difference between the average software developer and the best is 50:1; Maybe even 100:1.” Steve Jobs

> If you’re a software engineer, you would probably agree with what Steve Jobs said.

I am and I don't. I've yet to see even a 10x engineer. I've seen people who are more than 10x within a very narrow domain, but when you include the whole system and all their responsibilities, no one comes close to 10x.

SW development is not just coding. The other aspects of it are harder to scale in performance. Amdahl's Law is very relevant here.

2 comments

> Amdahl's Law is very relevant here.

This is a gross misunderstanding of both software and amdahl's law.

Amdahl's law just states that the serial parts of a program stays the same as more cores are used for the parallel parts of a program. This also means that the percentage of time the serial part takes becomes larger as it stays the same and the overall running time goes down. It is not an incredibly mind blowing or insightful observation.

It is also assumes certain aspects can't be split up.

Multiple programmers means more communication (synchronization). If anything amdahl's law is an argument that having less but better programmers is much more effective than having more average programmers.

By Amdahl's law I was referring to things like:

- Communicating with customers

- Writing documentation

- Testing (be it automated or manual)

- Other stuff that may seem bureaucratic but nevertheless are essential (paperwork, tending to CI, tending to HW, etc).

This stuff (or at least some of it) is harder to scale. You can scale up the coding part quite a bit, but the overall process of SW development is held back by the above. You're not going to find someone who is 10x when it comes to talking to customers. Often managers will find the so-called 10x programmer and assign him to duties to maximize output, and have someone else do the work above. But he's still not a 10x overall, as he is simply not doing the work of other developers. That's why I said "within a very narrow domain".

Now if you can get a 10x developer who can scale all aspects of the job, then sure - pay him/her 10x.

This shows another huge misunderstanding of "amdahl's law". Again it is a very simple ratio.

Programmers who are much more effective are that way due to a lot of reasons you are missing. Amdahl's law is about programs that have parts that must be done and must be serial.

Great programmers are doing a lot less. They aren't wasting time with all the things you wrote here because what they make works, doesn't break, scales, and doesn't need to be changed while being much simpler. If you look at the source for doom, it doesn't have huge amounts of class hierarchies and ridiculous plumbing from bloated frameworks. John Carmack didn't go down a bunch of rabbit holes to procrastinate getting things to work. He isn't wasting time communicating with customers (why can't someone else do this?). He doesn't need to waste as much time with documentation because what he does is simple and works without needing to be changed. Not only that, but someone else can do most of this too. Tests are the same way.

The mistakes here are thinking that you have to waste a good programmer's time with nonsense and that they are trying to do what the average programmer is doing faster. The average programmer is terrible and is perpetually pushing their boulder up hill because they don't understand what is happening with what they write. They don't understand what will be slow, what is already simple, what has already been done etc. They create nonsense that is always being redone like someone trying to build a new house out of cardboard every time it rain because other materials are 'too heavy' or 'too expensive'.

Come on, there are some people who are brilliant and effective. I have known a handful of these folks, which probably matches the statistics.

You probably don't sit with them in the lunchroom, but folks like Steve Jobs might.

> Come on, there are some people who are brilliant and effective.

Sure, but can I replace 50 average engineers with one of them, and get the same output?

Never.

That's not how it works.

You and a bunch of your friends could probably do more code reviews, but could you all give a better presentation than steve jobs?

It sounds like you're agreeing with me:

> I've seen people who are more than 10x within a very narrow domain, but when you include the whole system and all their responsibilities, no one comes close to 10x.