Right now I’m doing some coding and reassessment of a software design I’ve created ealier. One particular thought crystalized in my mind. Dumping it here so it doesn’t run away.
Whenever you design some technical solution, you can’t figure out immediately whether it is good or bad. It can look ingenious and beautufil at first, but it can grow and develop into an ugly beast afterwards. Or it can be hard to develop going forward, so you have to reinvent it.
And there always going to be a moment when forgotten things start to pop up and make you feel like “fuck, I just haven’t thought about this!”. This is not a problem, this is just how things work.
What makes a good design though? When you face some feature missing that you’ve simply forgotten and it fits nicely into a current design. More changes you incorporate without rebuilding the whole concept — the better concept you have.