Journey Before Destination
I got into software engineering because I enjoyed it. I enjoyed the process of learning, the feeling of writing something and knowing that those sets of instructions were successful in achieving whatever goal they were set out to achieve, and that they did exactly what was needed.
Sometimes, things did what was needed but not in the way you expected. For many of us, it didn't matter how something worked as long as it worked. For a crazy few of us, however, it did. So we set out to figure out why something worked when we expected it not to, and then, being the crazy folks we were, we wanted to change that working code and break it. That sounds quite ridiculous if the thing being made wasn't software but some sort of physical object. It would be crazy to break a physical thing after you've made it and it works. But that's what software allowed us to do. We could experiment as much as we wanted, as long as we had the time.
Now, with the current world of AI-assisted and agentic development, or whatever fancy, investor-friendly term you want to use for it, it seems like all the fun is gone. Yes, you're achieving results, and at quite a fast pace, but where is the fun of losing your head over a config that isn't working for two days, only to find out that the issue was a character in the wrong case?
For me, the most memorable moments in my software engineering journey have been the ones where I spent a lot of time finding the root cause of an issue or figuring out a solution, followed by that hurrah moment when it finally worked the way I wanted it to. These weren't necessarily the most glamorous things you'd put on your CV. They may or may not have had enough business impact to look shiny enough for recruiters, but the journey of solving them was fun and satisfying because you learned so much about whatever system or context you were dealing with.
With AI, that whole journey seems to be reduced to almost nothing. You give it a prompt, wait a little, and there it is: a solution that either works or doesn't. Then you move on to giving it another prompt for the next JIRA ticket or asking it to solve the same problem in another way.
It feels like you've been riding horses, carriages or cars on your journeys, depending on the road, but now someone has just invented teleportation. Except it's not a perfect kind of teleportation where you know exactly where you're going to end up. It's more like the Floo Network from the world of Harry Potter. You say where you want to go, and the Floo Network takes you there, but sometimes, instead of a sandy beach, it drops you in the middle of a sandy desert. Now, there's no need to worry. You can ask it to take you to the correct beach with a little guidance, or ask it to take you home so you can start again, as long as you can afford it.
But the main thing to worry about is: where is the fun? Where is the journey? Would I want to land directly on the beach, or would I rather get there by train so I can watch the landscapes change along the way, look at the buildings in the cities, and see the sky go through its various phases?
One of my favourite memories ever is a trip to a mountain-top lake formed by a glacier. The reason I have such fond memories of this trip is the journey to get there: travelling along a small, dangerous path winding around mountains in a questionable jeep that somehow kept running on prayers alone. Then came the hike to the top, and when I finally reached it, the view was absolutely breathtaking.
If I could have teleported there instead, I would probably have looked at the lake, said "Nice lake", taken a picture and teleported back home. Then I would have forgotten about the place.
What I'm trying to say is that the journey part of software engineering seems to be diminishing, if not disappearing completely. Now, you just get the results, have a discussion about whether you like them or not, and then move on to the next ticket to repeat the cycle.
I don't want to argue that things shouldn't continue this way. We know AI is here to stay, and there's no going back. But the question is: will we ever enjoy this journey the way we used to?
I guess this is where I'll end this piece, leaving you with these words from Kaladin Stormblessed:
"Life before death, strength before weakness, journey before destination."
Top comments (1)
Really enjoyed reading your thoughts on this... and I can relate to that feeling of losing something we used to love about coding.
It reminds me of when we had a video game console but couldn't afford many games... we used to appreciate each game so much more than today, when we can buy tons of games and somehow enjoy them less...
And I think there's something similar happening with software engineering. We're gaining a lot, but losing some things along the way too... those moments of struggling , discovering, and finally understanding why it works.
But I also feel there's still a journey to appreciate, just a different one maybe.
My head used to be full of ideas, different ways of building things I wanted to try... but my hands and my time just couldn't keep up. Today I can actually experiment with so many of those ideas. Of course, I'll miss some things I would have learned along the way before... but at the same time, I can pay more attention to things I used to overlook. How people will use it, what features it should have, what features it shouldn't have...
I've always been passionate about coding... still am, but differently. I don't care the same way about the code itself anymore. I care more about system design, requirements and what we're trying to solve.
Should it be performant? Flexible? Simple? Self-contained? Disposable? Modular? Resilient? Is it for me? For others? Does it actually solve the problem?
These questions get much more of my attention now...
Sometimes I think about houses... I used to love clean, minimalist designs, almost everything looking perfect and new. And I still like that, but today I appreciate something I didn't before... the handcrafted details, the imperfections, the history behind things. The same old tiles that used to bother me, now I can actually see beauty in them... because there's a memory, a culture, a story. I would probably build my own house differently, but my way of appreciating houses has changed a lot.
And it's funny, because with houses I'm learning to appreciate more of that craftsmanship, while with software we're actually losing some of it...
I guess my point is not that one way is better than the other. It's that the way we appreciate things can change too.
I still love building things, just as much as before. But maybe my attention is shifting from the act of building itself to the decisions behind it, the purpose, and the meaning of what I'm building... and I'm learning to appreciate that too... a lot!
I don't think this replaces the journey you're talking about, or makes losing it any less meaningful. Maybe it's just another journey I'm starting to appreciate.