• Welcome to droqen's forum-shaped notebook. Please log in.

MAKE SOMETHING IMPOSSIBLE WORK, DON'T PREPARE ROBUST SOLUTIONS

Started by droqen, June 22, 2024, 01:31:33 PM

Previous topic - Next topic

droqen

[ A. Often, I am tempted to solve a problem in the general case. The fantasy is that when a specific interaction appears, it is already solved ahead of time, and perhaps even some unforeseen solutions will arise and surprise me, the developer!

  B. Resist this temptation. Wait until the moment the unimplemented interaction is needed, then solve it. It feels better to solve the problem in the specific case as it arises. The solution is more beautiful because you have better knowledge of the problem space. If you solve it ahead of time, you rob yourself of future joy and grace. ]

droqen

It's very tempting as a programmer, a programmer of games, to solve problems ahead of time. Very very tempting. However . . . in my experience, this leads to a lot of disappointment and stagnancy. There are two possible (and in fact very likely) negative outcomes, and the only positive outcome is not that positive.

Negative Outcome #1. An unexpected problem appears and I have to fix it, potentially reengineering my large robust solution in the process. Feels bad because work that was not supposed to need to be done now needs to be done; feels bad because the robust solution is revealed to have been incomplete; and feels extra bad, to me, because I really hate dealing with extra infrastructure: i.e. it actually makes the act of fixing the unexpected problem more laborious. See next post for how things should go!

Negative Outcome #2. Nothing really happens and the robust solution is not needed. Feels bad because all that work was for nothing, basically. Often flies under the radar and the bad feelings are minimal or even go unnoticed. But it is a bad outcome.

Positive Outcome. A sense of vaguely smug superiority. "I prepared for this possibility." Not that satisfying or positive because . . . at what cost? The good version of this feeling comes about when I foresaw literally this singular possibility and solved it, and only it, ahead of time. But then it does not feel good afterwards: it feels good at the moment of implementation, because I am certain I'm doing the right thing. The bad version, described here, is like the end result of a gamble. I'll prepare ahead of time just in case something under this umbrella happens to crop up. When a robust solution catches a problem it shouldn't feel like an unlikely coincidence. It should feel like a calm nothing.

droqen

It is a really great feeling, by  contrast, to make something work that did not work before. Something that should not have worked. Something that never could have worked. I will joyfully move mountains to create the possibility for something new to emerge.

It is also easy to lose sight of this and lose focus, trying to solve problems before they pop up, because of the positive associations I have with solving problems. "Negative Outcome #1" feels extra bad because it diminishes the joy of new creation. When a problem appears, I love to solve it -- but if there is a lot of crap or noise in the way it makes the solving less enjoyable, and it makes it less enjoyable as a direct result of my own hubris. Horrible, horrible feeling.

droqen

in short:

If X+Y does not work, it feels good to add it in.
Trying to make X+Y work ahead of time systemically, it does not feel as good, and when/if it fails, it feels even worse.

droqen

i said in paradise and immediately connected to this;
it is ok to be confused. it is ok to be lost.

also related: my old blog name:
lose your way