Hacker News new | ask | show | jobs
by yarg 2532 days ago
One other thing, software has the benefit that product development occurs in a simulation.

There's a freedom that comes with that, we're unbound by physics - layer upon layer of abstraction make it a lost concern.

It feeds into itself, growing in power at a rate proportional to its surface.

Until that is, it collapses under its own weight. When that happens is a matter of structure, and the extent to which the developer understands what the structure is, where it should be and how it must expand to cater for new requirements.

For simple cases a single largely linear block of code will be fine.

Eventually things get more complex. You'll need to move the lower level functionality to another file and call through to its methods.

Some of the methods in these files will become so heavily parameterised - and with repeat parameters - that you might want to introduce state. Welcome to OOP.

Then with the proliferation of the files you've created you'll need to introduce a directory structure.

Then a module structure.

Then a separation of API and implementations.

Then a division across projects.

At any of these points some will falter.

Some can't even write a single class without copying a pasting massive blocks of code. Some write class after class without consideration of abstraction or structure.

Yes there are 10x developers - those who understand structure and can implement the code accordingly.

Why does this happen in software and not other industries? As I said, we're unbound by reality.

If the best of us were engineers, we would be more tightly constrained by the physical limitations of the world.

If the worst of us were engineers, they would get people killed.

1 comments

You've described how I feel about this in such a succinct yet expressive way. I find it hard to communicate to ${NON_PROGRAMMERS} the difference between highly skilled software folks, average skilled, and the huge bulk of copy+paste wannabe's.