5 ms·
I get what you're saying, but you're also attempting to design the perfect system without any hindsight, which is impossible. The beauty of this approach is th
by thefourthchime 1y ago
I get what you're saying, but you're also attempting to design the perfect system without any hindsight, which is impossible.
The beauty of this approach is that you don't design anything you don't need. The requirements will change, and the design will change. If you didn't write much in the first place, it's easy.
- 0xbadcafebee 1y agoBut designing "the simplest thing that could possibly work" may make harder than necessary to modify later. (and any time the requirements change after it's built, you're inching towards a big ball of mud, so this whole idea should be reviled whenever possible) An example is databases. People design their database schemas in incredibly simplistic ways, and then regret it later when the predictable stuff most people need doesn't work with the old schema, and you can't even just add columns, but you have to modify existing ones. Avoid the nightmare by making it reasonably extensible from the start. It may not be "the simplest thing that could possibly work", but it is often useful and doesn't cost you anything extra. Just as much as people say "don't prematurely optimize", they should also say "don't prematurely make it total crap".