> Writing documentation and fixing bugs is in fact not the bar for a senior software engineer.
The bar for a senior engineer should be identifying the biggest problems plaguing an organization, and successfully tackling them.
In some cases, the biggest problem is building and launching something shiny and impressive. In other cases, the biggest problem is fixing bugs. Refactoring complex/unstable systems to make them more simple/reliable. Figuring out the things that no one knows, and writing clear documentation for it so that no one will need to be blind again.
The sign of a good leader is correctly identifying the right thing to work on, and then getting it done, regardless of how "menial" it may seem. A culture where people are only recognized for working on shiny things, leads to organizational clusterfucks like Google's hangouts/allo/duo fiasco.
> The bar for a senior engineer should be identifying the biggest problems plaguing an organization, and successfully tackling them.
You're missing the crucial step of advocating for these problems to be solved. Until you know this is actually something important to the organization, you're just scratching your own itch.
In OPs example, did it really matter that the data was occasionally bad? Quite often analytics exist to check a box in a sales pitch, but nobody actually looks at them. OP couldn't quantify this impact for the promotion committee because they likely didn't quantify it for anyone but themselves.
I worked on one such app. It was lost in the cross fire, I was asked to try to fix a bug. I came back and said this wasn't a bug, it was a badly built system. If they wanted me to work on it, I'd need a few sprints dedicated to it. They passed. A month or two later, it was impacting some crucial flows. We revisited it and funded it. I AB tested the rewrite against the original and saw a statistically significant improvement in user behavior. We retired the original, I presented my findings to our product team. They agreed it was impactful.
>>The bar for a senior engineer should be identifying the biggest problems plaguing an organization, and successfully tackling them.
Yeah, right.
People who hold the current power will never let you do it. For one simple reason. No one likes to be promoting their next boss.
In fact in most companies merely talking about 'biggest problems plaguing an organization' can get you fired. No likes to be told that the current bosses aren't up-to their job.
Organizations that wish to be successful are designed so that you can't promote your next boss. Engineers and management are different things. Engineers can be promoted and do impactful work and identify problems and get promoted some more, without ever threatening to become anyone's boss.
Then, your engineers can be rated based on how well they solve engineering problems, and management can be rated based on how well they manage human capital and allocate between the various engineering problems that need to be solved. Certainly there's some politicking based on prioritization, but that's not a bad thing. You don't want to accidently solve problems that no one really needs solved, its a waste of time.
Sure shitty organizations exist. That doesn't mean organizations are always shitty.
At my current position I have been hired to help rewrite an application and I was literally taken aside and talked to for saying, verbatim, that "the application was built for business needs that no longer exist, and we need to update it for our current requirements", because it upset people by implying that the code they wrote 5 years ago was no longer perfect.
It seems like any organization that grows beyond 2 layers of management turns into an organization that spends the majority of it's time posturing rather than attempting to get anything done
The bar for a senior engineer should be identifying the biggest problems plaguing an organization, and successfully tackling them.
In some cases, the biggest problem is building and launching something shiny and impressive. In other cases, the biggest problem is fixing bugs. Refactoring complex/unstable systems to make them more simple/reliable. Figuring out the things that no one knows, and writing clear documentation for it so that no one will need to be blind again.
The sign of a good leader is correctly identifying the right thing to work on, and then getting it done, regardless of how "menial" it may seem. A culture where people are only recognized for working on shiny things, leads to organizational clusterfucks like Google's hangouts/allo/duo fiasco.