I’m not sure how AI supposed to understand code. Most of the code out there is garbage. Even most of the working code out there in the world today is garbage.
Heck, I sometimes can’t understand my own code. And this AI thing tries to tell me I should move this code over there and do this and that and then poof it doesn’t compile anymore. The thing is even more clueless than me.
Randomly rearranging non working code one doesn’t understand… sometimes gets working code, sometimes doesn’t fix the bug, sometimes it won’t even compile anymore? Has no clue what the problem is and only solves it randomly by accident?
My boss comes to me saying we must finish feature X by date Y or else.
Me:
We're literally in this mess right now. Basically, product team set out some goals for the year, and we pointed out early on that feature X is going to have a ton of issues. Halfway through the year, my boss (the director) tells the product team we need to start feature X immediately or it's going to have risk of missing the EOY goals. Product team gets all the pre-reqs finished about 2 months before EOY (our "year" ends this month), and surprise surprise, there are tons of issues and we're likely to miss the deadline. Product team is freaking out about their bonuses, whereas I'm chuckling in the corner pointing to the multiple times we told them it's going to have issues.
There's a reason you hire senior engineers, and it's not to wave a magic wand and fix all the issues at the last minute, it's to tell you your expectations are unreasonable. The process should be:
product team lists requirements
some software dev gives a reasonable estimate
senior dev chuckles and doubles it
director chuckles and adds 25% or so to the estimate
if product team doesn't like the estimate, return to 1
we release somewhere between 3 and 4
If you skip some of those steps, you're going to have a bad time.
In my experience, the job of a sr. revolves around expectations. Expectations of yourself, of the customer, of your bosses, of your juniors and individual contributors working with you or that you're tasking. Managing the expectations and understanding how these things go to protect your guys and gals and trying to save management from poking out their own eyes.
And you may actually have time to do some programming.
Yup. I actually only take a 50% workload because half of my time is spent in random meetings telling people no, or giving obscenely high estimates that essentially amount to "no." The other half of my time is fixing problems from when they didn't listen when I said "no."
Such is life I guess. But occasionally, I get to work on something new. And honestly, that's fine, I've long since stopped caring about my name showing up on things.
Can confirm. At our company, we have a tech debt budget, which is really awesome since we can fix the worst of the problems. However, we generate tech debt faster than we can fix it. Adding AI to the mix would just make tech debt even faster, because instead of senior devs reviewing junior dev code, we'd have junior devs reviewing AI code...