I’m not in software development, but this is how the entire company I work for operates.
We’re just kinda going forward with no clear direction, keeping stuff ticking over and constantly coming up with future plans that never come to fruition.
This is how the world is. No one is really an expert. No one really has the answer.
and we all look up to the people who look like they know what they’re doing (they don’t but they are very convincing at looking like they do)
In their defense, if they don’t pretend like they know what they’re doing everything would fall apart.
Oof. Painful truf.
For some people. Yes.
For you, yes.
Projecting?
Illusory superiority?
There are people who are knowledgeable and good at their job. Knowledgeable enough to be experts. Those are usually subject matter experts, including developers.
The issue is that no one can guarantee an outcome or that they’ve picked the right approach.
And if they didn’t pick the right approach, they aren’t an expert.
But this is really more a product of capitalism than anything else. Under capitalism you just have to keep moving even if you’re just making garbage and debt. There’s no reason to stop and think, because that is seen as a cost (even though it costs more to move without thinking).
Even the best companies that do factor in planning (at least in concept if not actually in practice most of the time) end up with the other problem of “resume driven development” where things that are totally fine and actually working get replaced with things that don’t work because someone needs a new project to get their promotion.
Capitalism produces garbage and puts the people who are least qualified in decision making roles. This still happens in natural systems, but much less. In (healthy) anticapitalist organizing, the people who know the most are generally asked to lead and when they don’t know what to do they stop and figure it out before moving forward.
Aimless wondering can still be a problem, but it’s not forced by the system to continue it’s just people who are learning.
people who are learning.
That’s the problem. The majority of them don’t learn, and really fuck shit up for the ones trying to.
I’m an expert and I have all the answers.
Obviously anyone named Ricky Rigatoni is gonna have all the answers. If you say he doesn’t, he’s gonna snap you like dry pasta.
There are answers, they just take a level of experience to reach that most people aren’t cut out for. You gotta be several principal+ IC roles or Dir+ mgr roles in before the patterns congeal into a plan.
Challenge is operating at those levels for extended periods requires a super fucking insane level of competency and dedication. Most people hit that spot and coast till retirement cause you’re at $500k+ at FAANG. Few keep looking for new opportunities unless forced to or they’re those corporate robot sharks with the dead eyes.
This is how all enterprise companies I worked for operates too. Only when I joined a smaller company with 80 people I realized that it can be really fun to work. We get a lot of stuff done and hardly any meetings. Really enjoying it.
I was originally a chip designer. Then I shifted into embedded development. Now I’m mainly a C# guy.
But when I shifted into embedded development, I also shifted into doing power engineering. I grabbed a couple of books on the topic at hand, taught myself a lot, and designed the electronics to meet the need. We sold the product to city utilities.
I remember one time I was in a room with probably 10 engineers from one of the utilities. After having described the product to them, and went through a lot of our settings and stuff, I was explaining the difference between two of algorithms we put in (because different utilities use different algorithms, and I just wanted one device that could do both). At some point I was like “which of the two algorithms do you use?” and one responded “well, which do you recommend?” So I talked about why I thought one was better than the other.
They all started looking at each other and nodding and saying “Yeah, that’s the one were going to use.” I realize I could have said anything at that point and they would have agreed. They thought I was expert. And that was my “last two frames” of this comic moment.
Now as a senior dev, I’ve seen enough shit to realize that most people have no idea what is going on, and are flying by the seat of their pants. So I figure my ignorance is a little less than theirs, and that gives me a lot of confidence, but I also realize that I can learn a lot from most people.
I’ve always felt like I don’t deserve my role, I climbed the proverbial ladder quick and I am very young for my position (Principal Engineer). But I sleep fine at night because at the end of the day I was always honest with my skills, my intentions and my motivations, and I’m always sure to get full agreement from everyone before doing stuff. If after all that nobody figured out I’m a fucking idiot just making an informed guess, that’s on them.
I always fear the next company I join will have “real technical leaders” who will inevitably show me my place, but it hasn’t happened so far (3-4 massive companies in the last decade).
Maybe one day I will meet this person, but it is not this day… And then I try to teach the same to younger engineers to work through problems as a team and just do it until somebody stops you, because in a lot of cases nobody has a clue either, and that’s what it means to lead.
Now as a senior dev, I’ve seen enough shit to realize that most people have no idea what is going on, and are flying by the seat of their pants.
What’s helpful in my industry is that new development happens so frequently that the absolute best answer today is probably the wrong one in the next few years. Since I’m never on the absolute cutting edge, I have to trust my team to pitch the plan and we roll with it.
What I think makes me a senior is me knowing that we don’t know anything, but being able to create a plan if/when we have to make changes.
Removed by mod
When I was working stand-in positions such as after a move, for example retail, my favorite go-to when asked “Whyyyy?” was “I have no idea. No one told me anything.” I sometimes miss those days.
You’re right though. Most people have enough knowledge to do the steps of the job or task. For many of them skipping a step shuts down that memory, if only temporarily. I’ve met only a handful of true experts. People who can do things forwards, backwards, upside-down, and mix things up on the fly. They are BY FAR the most uncommon.
That was me in the first few months after I had to replace the senior dev when he took a better job. I was only junior for like 5 months prior to this, I also lied about having 2 years of experience in the interview and the team misunderstood my quick learning with expertise. At the end they thought I was good enough for the position but I was freaking out because I was lacking a lot of experience, I still took it because the raise was huge. I couldn’t sleep well for months while I was trying my best to learn how to do my job.
One of my favorite managers once told me while I was struggling with a severe case of imposter syndrome “if you’re faking it well enough that others can’t tell, you might not be faking it as much as you think.”
Yup, the good old imposter syndrome. The truth is no one really knows what they’re doing,
If you feel like you’re sprinting into the dark, you’re doing something right.
inb4 senior delegates critical decision-making to juniors and only shows up once stuff is on fire
It’s funny you say this, because my junior is complaining that I micromanage too much. I prefer to make the critical decisions. Whenever I don’t make them, I end up putting out fires.
I tell them that and they respond, how am I supposed to learn if I can’t make mistakes?
Then I remind them they can fuck up all they want in the dev env.
For me it was reverse. When I was a junior I was reviewing PRs from the seniors and it couldn’t have possibly been tested to work.
The seniors were super lazy and around half the PRs would have broken production.
Seniority often comes from years of work and not knowledge.
I try hard not to be an asshole at work. I also produce the most code. When my junior came on I told them that I’m here to help, and I want them to ask dumb questions instead of struggle. I also told them that I make mistakes, and they should call me on my shit—which they looove to do, brat.
Why are you making critical decisions in a prod environment?
For the production environment, not in it.
Shouldn’t every decision be tested in dev first?
Yes. I think you may have misunderstood my meaning. Unless you’re just being pedantic—which I have no interest in.
Probably my misunderstanding. The way it is written it sounds like juniors use the dev env and seniors get their decisions implemented directly in prod.
What are “decisions” to you?
Embrace agile programming. Add what the customer wants and laugh at their poor decisions.
to paraphrase hl mencken: ask and ye shall receive – and receive it good and hard
https://cs12.pikabu.ru/post_img/big/2022/12/27/11/1672170826126840186.jpg
Tried to find a source but this is the closest I got
So both images removed the watermark
Sad
Just the other day I thought of how stressed out the main bird in a formation has to be figuring out where the entire flock is going. ^ ^’
I see serious lack of responsibility. By junior dev. Also lack of attention and initiative.
Yeah I’m shocked by some of the things I read in these types of thread. I’m not perfect, we all make mistakes, but I am definitely confident in that I know what I am doing.
I mean you can do this in the first year.
I however slipped much faster into the senior dev position than I liked. Basically after 2 years full time (and 5 years as a student on part time) I am now expert in a few things and the go to person for questions. For people who work longer in there than me.
Gulp