> I was spending more time wrestling with package managers, version conflicts, obtuse configuration files, pointless deadlines, egotistical colleagues, and almost zero time solving interesting problems on products that I care about.
That squares with my experience of software development. It's like being a furniture maker but spending 80% of your time fixing your goddamn hammer because it keeps breaking and no better hammers exist, or consulting glue-drying tables because they keep changing your glue on you every hour or two and for no good reason every single glue performs differently while accomplishing the same thing.
... and then most of the remaining 20% is meetings and communication, which would be fine if you had more time to do the thing you're actually trying to do.
And when you're doing woodworking and has to do some repetitive task you make a jig or a template for your router.
This is something that you're supposed to know on the first day after you finish apprenticeship.
In the modern tech industry you need authorization from your product owner/manager and engineering manager just to build a new tool or abstraction to automate or speed up your own job, because god forbid you do anything that's not in JIRA.
I have to manage infrastructure, but I'm not allowed to manage user accounts or permissions. I have to send a ticket to IT, and then wait 3 days for a response... Or I get no response from them, and find out 5 days later that they did the job and closed the ticket with no notification. All because their manager requires tickets for every little change... But they don't put any information in the tickets about what they did, so there's no point whatsoever to the ticket.
at the other extreme, everybody does whatever the day requires and JIRA is just an annoying after thought that for some reason (the agile coach tells us to?) we have to keep up to date and yet is always outdated.
It's my opinion that coordinate-work-among-the-team and communicate-work-to-management should not be functions performed by or in the same tool, and that most of the team should never need to touch the latter tool.
My attraction to tech is the certainty of digital. In a messy analogue world, it provides a semblance of predictability.
But my PC has recently started crashing for no obvious reason. The analogue has crept into the digital. Every error message is different. Parts work when tested in isolation. The whole is less than the sum of the parts.
It's really quite annoying, and I'm enjoying walks in the park more these days than typing on a keyboard. I put up some shelves the other day. They are still up. An update won't break them. Reliable.
My wild prediction: digital systems will officially reach analog level of noise requiring everybody to learn the "old" ways for pre-discrete computing systems.
Experiences like this are one of the major reasons I decided to keep my focus on iOS development rather than pivoting to full-stack as I was considering doing.
The iOS dev experience is far from perfect, and while YMMV, I definitely found I spent _much_ less time fixing my hammer when I'm building for a single platform using a single language in a (largely) excellent IDE.
Sometimes I think there must be engineers out there who enjoy the hammer fixing and glue-drying that comes with the rapidly changing full-stack development landscape.
I am much more productive on iOS than when I do web development. Unfortunately I want my games to be cross-platform, so sticking with Swift isn't much of an option for me. I did have an iOS only project to learn modern Swift again (with SpriteKit), and it's been an extremely smooth experience for the most part. Most of the time I'm just thinking about the logic of my game.
Nowhere near as many headaches as juggling all the moving parts in the Javascript web app ecosystem, which I'm doing for work right now (currently stuck on something right now).
It's the same for all kinds of work outside of academia.
I studied aerospace engineering and day-to-day it's exceedingly rare to need any math beyond basic trigonometry. 80% of the time it's useless meetings, emails, paperwork; only sometimes it's actually useful or fun. Some people study business for years and end up splitting their days between sitting in meetings and updating Gantt charts.
I suspect we were far too quick to get rid of secretaries as actual job-performing useful people rather than just status-signaling living perks. Also I think much of our workforce is wildly over-qualified and over-educated for what they actually do. I suspect there are more people than ever in the proverbial "mail room" that are plenty capable of rising to CEO or President of a region or division and doing a fine job without taking time and money to qualify for then attain an MBA at a top school, but we just don't really do that anymore. 500 people with the education and smarts, given a tiny amount of coaching, to do jobs two notches up the "ladder" for every such position that exists, but several HBS grads applied so we're taking one of them anyway.
I agree completely. I miss having a Department Administrative Assistant who was expert at the things I shouldn't need to be expert at. Like "I need to go to San Francisco next month; please take care of my travel arrangements." Or, "how do you use this Excel feature I never heard of and will never need to use again?"
Our AA saved us countless thousands of hours each year. She was worth her weight in platinum.
That squares with my experience of software development. It's like being a furniture maker but spending 80% of your time fixing your goddamn hammer because it keeps breaking and no better hammers exist, or consulting glue-drying tables because they keep changing your glue on you every hour or two and for no good reason every single glue performs differently while accomplishing the same thing.
... and then most of the remaining 20% is meetings and communication, which would be fine if you had more time to do the thing you're actually trying to do.