My rite of passage as a senior developer included starting to ask myself the question: does activity X really move the project forward?
But there's another side to this, of which management is often not made aware of: in longer projects people tend to accumulate, for lack of a better word, "rituals" - stuff that's done manually, even though it should've been automated or dropped.
These are insidious, because they slow down work, introduce inconsistencies (sometimes even errors), but are largely ignored.
And for some reason the arrogant, disobedient, oddly-shaped person is the only one noticing it.
From almost every place I worked at I only stay in touch with one person - that person.
I identify with the "rituals" bit a lot. My most vivid example if this is from a project, much of whose code I had co-written. It was a real-time model delivery system, which mostly used to work fine, except for a few minutes every day (or sometimes once in two days) where it'd hang and had to be a restarted. The ritual was this: it became a practice to restart the process at a predetermined hour everyday!
I tried to convince the team to debug the issue, but no one was having it: why break something that works.
I am somewhat fine with restarting being a fix... only if we know what issue it's s fix for.
Last year I witnessed a code review war between a "good shaped" and "bad shaped" developer.
He latter eventually won, because it appears that the "good practices" the former so zealously enforced were actually just his practices, and only made sense in the context of his own habits.
I found that management's incentives are aligned with the majority. Example reply from management: "our clients are not paying for tests" (yes they are - for the lack thereof, and not with money)
For years I thought that this is some kind of defect that I must work on, so I tried to fit in, but I just can't.
I never had the courage to remain in the role of a "disruptor" for long myself because the resistance I encountered was just too much. It's only the presence of other such people that allowed me to not give in to burnout.
My last job was like this and it was beyond frustrating.
They had essentially re-created the C/C++ language feature of a struct. Rather than letting the compiler/linker worry about where to place the data there was a global array of uint16s. Fields of these ad-hoc structs were placed in this array via defines (sometimes spanning more than one element). Rather than passing pointers to an instance of a struct, they passed an enum which was switched on to find the correct defines to index into the global array and wrangle the data back into a proper type.
So when we were tasked with adding three new instances of a particular ad-hoc struct it cost us tens of thousands of dollars in engineering time. Oh, and all testing was manual as well. The other programmers didn't see the issue and I was just floored by that.
I found a new job, as a sibling comment points out. Sometimes there's no other option.
But that's pretty normal, your vision and your opinion of the situation differs from the powers that be. Instead of getting upset over it, just go through a quick checklist:
* The management and most everyone else around me are in fact stupid and incompetent - just leave the place, problem solved
* The management in fact "gets" my concerns but doesn't think it's the right time to address them - they may have a point? they may see something that you don't see?
* The management doesn't think my concerns are serious enough to invest resources into - they may have a point?
* The place sucks but I get paid a lot and don't want to leave - just distance from it and focus on your part
Either way seems pretty fixable, not much to get upset about.
> And for some reason the arrogant, disobedient, oddly-shaped person is the only one noticing it.
> From almost every place I worked at I only stay in touch with one person - that person.
>And for some reason the arrogant, disobedient, oddly-shaped person is the only one noticing it.
I got very lucky that my first job is a place where this kind of behavior is not only allowed, but gets me treated like a rockstar. Given how people write about it being received at other firms (apathy at best, punishment more likely), I'm terrified to ever leave.
Or actually do, but only after you notice you're not moving forward.
I'm at my 8th role, never lasted more than two years in one and got fired a few times in my career - in most cases because I tried (and failed) to be flexible, obedient and not be the source of any trouble.
I've seen this too, and I'm wondering how (or if) this fits into the shapes/additive/subtractive model.
"Ritual" work doesn't seem like it falls under additive or subtractive to me. Maybe it's some combination of being multiplicative / reshaping? If you can multiply/reshape you or others' efforts towards the project, the project (hopefully) becomes easier.
There's a bit of an assumption that someone is "modifying" work in a useful way--multiplying a shape won't help if more of that shape isn't useful.
But there's another side to this, of which management is often not made aware of: in longer projects people tend to accumulate, for lack of a better word, "rituals" - stuff that's done manually, even though it should've been automated or dropped.
These are insidious, because they slow down work, introduce inconsistencies (sometimes even errors), but are largely ignored.
And for some reason the arrogant, disobedient, oddly-shaped person is the only one noticing it.
From almost every place I worked at I only stay in touch with one person - that person.