When I was growing up, the metric for having done something were things like: All the hay is baled and we moved it all into a loft, or we finished shingling the roof.
Working in a technical position, it feels much vaguer. Maybe I finished a project, but then again, maybe there's a bug, and I'm back working on what I thought was done. Maybe I made a tool accessible online, but now there's a new tech stack and my tool is irrelevant unless I update it. It feels very Sisyphean at times I suppose, in a way that making a physical product and then seeing someone use it or eat it really doesn't.
It's interesting that it feels like that though, because I certainly didn't have to throw hay only one time, and I didn't have to scrape paint from a wall only one time. I suppose I'm interested in why it feels more real and less repetitive, and maybe part of that is what you point out, that people outside of the field just don't understand what the work that tech workers do consists of in actuality.
I feel this every time I touch CSS. Sometimes I spend hours just fiddling with it, and my code commit is a few characters. And what's worse, it's the thing I stumbled on in the first 10 minutes of debugging, but that, for some reason, never worked that I tried again out of desperation, after not getting anything else to work (an hour later) and that I'm now trying again for some reason. Yet, for some reason, it works this time. CSS makes me feel stupid.
An ex-manager had a phrase that stuck with me, that we are building the factories. Ultimately software gets used to do something, there are lots little "products" being emitted each time it is used. If you are looking at physical products on the shelf, people don't normally think "who fixes the factory that built this when something goes wrong? who makes the factory more efficient so the producer doesn't go bankrupt? who changes the factory when a new design needs to be produced?". This kind of work is rather ephemeral and Sisyphean by nature, so sometimes I like to remind myself that there are these tangible products people rely on but they are just a layer removed. (Nowadays I'm two layers removed - I build a factory to build factories, i.e. compilers and platforms and such).
(This particular business line essentially processed data - it was much more complicated than that but fundamentally was remote-sensing -> data-in -> data-out, so the "data factory" metaphore kinda made sense in that setting).
Most / all of software work, including coding, is actually architecture / design (at varying levels of zoom) the equivalent to construction in buildings is fully automated in software (compilation etc)
You’d be surprised at the number of people who don’t. The rise in popularity of vibe coding won’t do our industry any favors.
I gotta admit, that on a day where it's just about chasing some elusive bug or bugs, even I say to myself: "What the hell did I do today?" even though I might have spent 8-10 solid hours actively working. If the bug is hard enough to find I feel like I accomplished nothing nor have anything to show for it.
And sometimes, when you add to the fact that as devs we have all these perks in the office like free snacks, being able to go out for lunch, free sodas, free coffee, or WFH etc. and for what? We accomplished nothing!
Conversely, you might meet blue collar workers who has to, absolutely has to commute to a job site (no WFH for them), busts their rear to get something real and tangible done. Like for example, setting up electrical, or building a frame, or fixing a major plumbing issue, or doing drywall, or painting an entire house, or doing an entire roof in the heat etc. And sometimes these people barely get their bathroom, lunch and/or coffee breaks. It really makes us seem spoiled in comparison.
And yes, I know that it's kinda denigrating to use the word "real" to describe anything but software, but, what I mean, is that most non-software people only understand finished and shipped software as real. They don't that understand DB schemas, software specs, MVPs, for example, etc. is also real as well. And they certainly don't understand time spent on thinking about data structures and algorithms as anything real or tangible. Especially if you spend most time planning properly before you code.
Anyways, we want to prove, at least to ourselves, that we can actually create something that everyone can see, touch, feel, pick up, eat, stand on, sit on, etc. And we want to prove that we can have same high standards and craftsmanship this kind of work that we have for code.
Yeah, some of us have a chip on our shoulder about that.