Hacker News new | ask | show | jobs
by nickbauman 3920 days ago
The biggest problems in tech are not technological but the social interaction of primary creative agents: those of us responsible for making great strides in magnifying human intellect. Those of us making the software.
1 comments

The biggest problems that we could be better at, at least.

One other hard problem is to figure out how to construct systems that are not so damn fragile. I am not talking about raid-5 here, but how to find ways to tackle the intrinsic complexity of our problems so that minor faults in our definitions and solutions will not cause catastrophically nonlinear crashes.

Maybe that requires hard AI, but it would be nice if when developing the equivalent of a house, the boiler would not explode and destroy the house if one forgot to connect the doorbell. If you see what I mean.

Back to the original topic: No I don't think an average developer is 10x more productive now, maybe 2x thanks to that it's so much easier to find information about everything, but the intrinsic complexity is still there, and we still have the same brains.

Although I think that google and wikipedia are an enabler - For my hobby projects I can google and implement a really quick/smart algorithm that I probably would not find - less invent myself. However; It does not help the typical "enterprise" coder that is churning out boring code while trying to figure out ill-defined and complex rules.

I believe though that the developer variance is 10x - at least when regarding long term maintainability. (Less time wasted on fixing old bugs, easier to implement new features, etc, etc.) Unfortunately, only a few people are required to complicate things beyond repair so the larger the team, the less does it matter.

I just got reminded of my favourite observation:

Complicated problems requires complicated solutions. It follows that if someone is a bit dense, all their problems are complicated. Therefore, the solutions will too be complicated.

Or just Conway's Law. One of the things that Cloud Computing is imposing (with its inherently stochastic performance variation) is the notion that developers develop systems that are inherently fault tolerant. It's been a long time since I wrote programs that trusted other components to always do their job.