Weeknotes 2023 W20: Ghent & Bruges
J. and me are halfway through our trip to Ghent and Bruges. It’s been fantastic. I’m writing this from a little street-side café where we are looking at all the people ambling by on a relaxed Sunday morning. This is the life. I might be feeling a little homesick for Ghent!
The first wasps have appeared in Berlin. It is officially wasp season. Bzzzzssssend help.
Writing continues to be quite difficult and time-consuming. An A5 page of longhand takes me roughly ten minutes to write. I used to be considerably faster, but I spend more time and effort on my stories now. My new approach involves rewriting drafts and plotting a bit more. I like this new approach, but it has yet to yield anything that isn’t a draft. Stay tuned (but don’t hold your breath).
I am fully aware that I have repeatedly mentioned being tired of working on software in my spare time, but I nonetheless picked up work on my budgeting app prototype again. This time, I’m going with something text-based and CLI-only.
I am building this tool for myself only, but I am keeping the option to open it up for other people later on. If I do so, perhaps something linked with Patreon might be useful: to report bugs and request features, you’d have to support me on Patreon. That way, I’d be eliminating the freeloading and the guilt-tripping which so often comes with free/open-source software.
But who knows, perhaps I’ll drop the work on it again when I no longer feel like it. For now though, I’m having fun with it.
A problem with software is that software is never the product itself; the goal is, at best, what you do with the software. Take Microsoft Word as an example: I wouldn’t use Word because I love using the software, but I would use Word because I want to use it to do some writing, editing, or formatting.
Similarly, I wouldn’t use Microsoft Excel because I love using the software, but I would use it because I need to generate a spreadsheet, for purposes like budgeting or planning or resource allocation.
Excel is often further away from a goal than Word is. With Word you can create art: you can write books and short stories that themselves are the final product, with the goal of immersing the reader, tickling the imagination and evoking emotions. With Excel, you can create spreadsheets, but spreadsheets are rarely the final product: spreadsheets (typically) aren’t art.
I would imagine that doing software development on projects like Word or Excel can be quite thankless because as a software engineer, you’re not doing software development because you want use the software more effectively, but because that’s just your job.
This frustration is worse when working purely as a backend engineer, and even more so when working on infrastructure automation or doing stuff like setting up CI pipelines. There is an enormous distance between this kind of work and the end product. Presumably, the reason why someone works on speeding up the test suite for Microsoft Word is not because they want to improve the quality and quantity of the short stories people write and publish with the software.
In the past, I’ve found software engineering fascinating because it can create meaningful change, but now I find myself often wondering: how the heck is tweaking the AWS Terraform configuration going to make any difference?
As some of you have pointed out in Weeknotes 2023 W19: Stub, the example I gave about stubbing/mocking is problematic in other ways, too. I was well aware of the issues when I wrote up the example, but I think it’s worth calling out the issues explicitly:
-
The “service object” approach is not appropriate. The service objects I use are overly complicated and would be much simpler (and equally valid) as a single functions instead. I’m not sure where the “every function needs to be a service object” dogma came from, but it needs to go.
-
The example code has a race condition.
FindThingy
andInsertThingy
need to happen atomically together. Ironically, putting every function into its own service object makes it difficult to get this right.
Maybe there’s more wrong. The example code certainly wasn’t an example of what to do!
Links:
-
Ken Ishii - Extra: I’m mentioning this because I re-watch this video every few weeks. It continues to be fantastic.
-
Why Lightbulbs Might Be The Best Invention Ever (Veritasium)