> I had spent almost half a year justifying code that took under 10 hours to write.
I mean... sometimes it's better to beg forgiveness than ask permission. If there's such a big win sitting so close within reach, sometimes you should stop asking and just do it.
I forget the source but there's a good quote about how in the beginning you're learning the rules, as an intermediate you know the rules and how to work within them, but a true senior knows when and how to break the rules.
You can not beg for forgiveness if you don't have a formal approval to allow your changes into the product. In multi-team environment it's impossible to push your code into production if you aren't aligned with the rest of organization. There are all types of gatekeeping and quality checks that prevent from any cowboy action. Most of the time that's for good, and sometimes it hurts, because of different views, mindsets and experience of people who are taking those decisions.
This. Even if you work in a small shop, SOC 2 Type II Security is starting to become table stakes for any kind of formal business arrangement. This means you have a formal Change Management process which includes peer review and peer testing.
If you push your code and ask forgiveness in this environment you're risking your company's SOC2 compliance. The auditors are not going to care about the business impact. Their priority is to make sure you're following the process you wrote.
At best you'll get an exception for that control. At worst you'll get a Qualified Opinion. I would not want to be the developer who violated controls and caused the auditors to render a Qualified Opinion. In that case the management response will likely indicate you've been sacked.
Peer review is a good thing. Mature organizations have been doing it forever. It was already endemic at my first real job in '98. We're finally seeing that discipline forced on the industry from the outside. By and large we haven't done a good enough job ourselves so now the AICPA is involved. Get used to it.
If the specific change is a 10-hour rewrite that's self-evidently better than the old code, you absolutely can beg for forgiveness once you've written it, since you don't have to merge or deploy it anywhere. You're going to quit anyway, so who cares whether your boss tells you off for spending a day or two attempting to solve a legitimate business problem?
If you're going to quit, why spend 10 hours of your own life solving a legitimate business problem that won't benefit you in any seemingly measurable way?
Because most human beings are intrinsically motivated to help people and all things being equal you might as well? I don't really understand what point you're making here.
While I completely agree with you that asking for forgiveness in these situations is probably a better strategy, I definitely know the feeling that OP had.
My take on why it's hard is that I want to be a team player and I generally want to do good for the company and especially the team. If I go and do something else, which I believe in, but which is not what we agreed upon with my team, it feels awkward and I either have to do it in my spare time (this strategy wears thin with time) it "sabotage" something else that I'm doing.
So I definitely see a structural issue at hand here. If anybody has a suggestion of how these situations could be addressed - I'm all ears. How can we tackle situations where the time to write code is much much less than the amount of time to discuss if we have to write this code? How to skip to writing the code quicker?
Honestly I expected it to take at least a week or two. The team that owned the backend made it seem like there was a lot of "super tough magic going on here", which was a lie on its face.
Lesson learned for sure - spend a few hours hacking at it before trusting someone else's claims of inherent complexity
By experience, the social aspect of working in a team and being right and proving it by breaking the rules, is a risky business as it may cause the eternal hate of some peers, who in other aspects are themselves as technically strong as yourself and will stay around forever.
Just don’t forget all mammals before being rational are emotional animals.
I mean... sometimes it's better to beg forgiveness than ask permission. If there's such a big win sitting so close within reach, sometimes you should stop asking and just do it.
I forget the source but there's a good quote about how in the beginning you're learning the rules, as an intermediate you know the rules and how to work within them, but a true senior knows when and how to break the rules.