Aha! I don’t want to lose you
I was chatting with fellow developers recently, and one thing that repeated during the conversation was something along the lines of, “I don’t feel the joy of the process anymore”. I also noticed that something here is forced on us and there is no other way around it.
This opens a question: “How do you care, and keep caring when you just don’t feel it?” It might sound silly, but software can be built in thousand different ways, yet outsiders judge it by simple binary: does it work or does it not? The software quality is something lost in the details and micro-decisions, but it is still there. We struggle to measure quality because unknown future requirements must somehow fit into our current design. Quality is a moving target challenged by ever-changing constraints.
So, how do we make the best decisions along the way? Well, you need to be on top of the project and understand all the moving parts. In other words, you have to care. And you need to care constantly. Picking just one “wrong” path out of those thousand possibilities will come back to bite you in the future.
“Don’t worry about this now. We’ll fix it in the future.” It is the biggest lie we tell ourselves. I’m still not sure why some think it’s better to push problems into the future, where the mess will only compound over time. But hey, what do I know?
I’ve been thinking about this lately, trying to introspect where is the joy hiding in my own work. I narrowed it down to those “aha!” moments. Suddenly, everything clicks, you feel like you’ve unlocked a closed door, and it all makes sense. That is my fuel for getting better and chasing a deeper understanding. Why is that?
Well, it comes down to connecting the dots myself. To me, any new information is just a bunch of words until I derive its actual meaning. That takes effort and time, but once it settles? Damn, what a good feeling.
Lately, I’ve been wondering what I’m missing during my accelerated coding sessions, as the actual learning struggles to catch up with the speed of the output. I’m trying to soak in as much as possible, but there are rarely “aha!”s while I’m doing this.
Right now, I’m experimenting with different ways of working with AI tools. I really like the fast-forwarding the progress, but I’m 100% aware that I’m losing the grip on the code itself. My current hotfix is to rewrite a lot of it by hand and it seems to be working. It allows me to grok the design and make decisions during the rewrite. It’s slow, but it allows me to recall and reason. That’s a win.
The one thing that will always be true is that knowing your stuff is the moat cool.