Hacker News new | past | comments | ask | show | jobs | submit login

This is a feature, not a bug.

Complex systems are best built iteratively. You start small, plan, test, make things work well, and then continuously improve, clean, and polish over time, with a focus on maintainability, otherwise known as "this thing is easy to change"

Bigger systems are made out of smaller systems that are, themselves, built this way.

The clean-and-polish bits are critical. The issue with most software is that management at most organizations only focuses on "move fast and break things" and fails to reward -- or actively penalizes -- maintainability.




Yes. This is Gall's Law:

"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system."

See: https://en.wikipedia.org/wiki/John_Gall_(author)#Gall's_law


Sometimes I think that this arises out of factors usually considered external to the system. As in, a complex system is so embedded in its environment that it can't be said to start or stop at all, which implies that starting a complex system is an oxymoron of sorts, and that is the reason that creating one from scratch can't normally be done.

In turn, this implies that a working (or, to my way of thinking, running) complex system can be created from scratch, but only if you deliberately create the simpler system it bootstraps from. This makes "creating a complex system" look more like biological reproduction.

With that in mind you start to see echoes of this constraint all over the technology ecosystem, like new programming languages piggybacking off of another toolchain until they can self-host.


Neither a feature nor a bug. It simply is.


> You start small, plan... - donw

> We build our computer systems ... over time, without a plan... - Ellen Ullman


We can rephrase the "without a plan" more accurately as "without one overarching plan, but only a tangle of many partial and conflicting plans."




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: