5 comments

[ 1467 ms ] story [ 779 ms ] thread
My oldest is 15 now, and is starting to give serious thought to his future career. He's considering following in his father's footsteps and focusing on computer science, and I'm steering him away from it. Why? After all, it pays well, and there are lots of job openings - if you have a CS degree (and are under about 45), you'll definitely be able to find good-paying work. But on the other hand - the absolute best you can possibly hope for is to be a nameless, faceless, arbitrary replaceable cog with four feet of deskspace in a noisy, repurposed, open airplane hangar who joins a daily standup each morning and recites a list of the JIRA ticket numbers you worked on and defending why it's taken more than a day or two to close any one of them. And then when you hit 45 and you're too old to code, you not only won't be able to find a soul-sucking buy high-paying close-jira-tickets-as-fast-as-possible "programmer" job but you won't be able to move into management either, because that's for people who went to business school... whose main skill is telling programmers that they have to close their JIRA tickets faster.
What's the best alternative? Personally, I can't think of a job that I would enjoy more than software development, even with the downsides that come with a lot of the big tech companies. And obviously the benefits are better than pretty much any other industry. If your biggest concern in your job is an open office, and dealing with things like stand-ups, you are in a pretty great position compared to pretty much everyone else in the world. Whenever I talk to my friends doing work in the trades, or truck driving or something I am incredibly glad that I chose to go into software.
I'm consistently envious of my friends in Civil Engineering. I'm sure it's a grass-is-greener situation, but they seem to have "Decent Pay" but in a far greater range of COLs, and with a far more entrenched expectation of long term job stability. (One friend's employer still offers pensions, which is like seeing someone driving a horse and buggy in tech)

I certainly hear a range of complaints as well, largely around funding and political angles, but for the most part the things that I find most painful about tech (work/life balance, high stress, long-term stability and career growth) seem less prevalent.

Additionally, I also don't see civil engineering becoming quite as commoditized towards "assembly line" work as a lot of CS often seems to resemble, but again, this just based off the stories they tell me so I'm waiting for another rail/harbor eng to come in and tell me why it's just as miserable :)

I say all this because, as slim as the article was, you would not imagine how much "just listen to your programmers" resonates with me. I've convinced multiple coworkers to nickname me Cassandra for the number of times I've precisely identified risk factors long before they were felt, and often even when management makes soothing and affirming noises, having action result from that is a rarity. I've certainly spent more time in the last 5 years of my career "learning how to manage up" than learning how to do anything tech-related.

Personal theory: It seems part-and-parcel with the pathology I've seen for corps to be very averse to promote from within the ranks to management.

Wow, we've had very different experiences. I'm 43 and am now in management, but remained hands-on for 15 years before making the change. I never felt like a "close the tickets" guy, but perhaps that's due to a focus more on smaller startups early in my career.

I don't have to worry about whether my 11 year old about going into CS, though. His plan is to be a Youtube streamer.

A recent example of a different way to do production is Alex Garland, director of Annihilation (and Ex Machina). He spoke about it somewhat at length at Google:

https://youtu.be/w5i7idoijco?t=5m25s

In my experience all of the major problems I’ve seen at software companies were problems the rank and file employees knew exactly how to solve, but weren’t allowed to.

It seems extremely hard for managers to let go of responsibility and let their team take it on. I understand why: it’s the managers neck on the line.

But the fact is, in almost every case the manager doesn’t have the domain knowledge necessary to solve their own problems. Almost by definition: managers lead teams directly into the problems the manager can’t solve.

It takes real guts to regularly take a chunk of your resources and hand them to an “underling” and yet that’s absolutely what they must do.

I’ve also seen a lot of examples of managers requiring employees to “prove themselves”, often meaning they can prove they can think like the manager thinks, before they can be trusted with an allocation of resources.

But this is pointless: the manager is already good at what they are good at, and blind to what they are bad at. By definition hedging your own deficiencies must be a leap of faith.