I'm developer infrastructure and tools engineer.
My org structure is like so (fictional names for convenience)(job level in parenthesis)
Bob(3)/
Me(1)/
Alice(2)/
Sam(1)/
John(1)/
James(1)/
Joe(1)/
Alice and Bob are managers. I report to Bob as does Alice, but I might as well report to Alice as I'm directly answerable to her in terms of deliverables.
Our team works in sprints. Last sprint a senior dev at Bob's level remarked to Bob that the code quality in some of our codebases could be better. We don't measure code quality as a tangible metric, but just code review from senior devs.
So Bob asked me to do something to improve it as I'm in charge of the dev infrastructure we use eg: git, code review, computing resources, CI/CD etc.
The particular complaints raised had a lot to do with errors that could be fixed with linting and checkstyle, and we have had errors that proper linting would have prevented, so I decided to attack low hanging fruits first. I went ahead and implemented mandatory linting and checkstyle as part of the build process, but I did not condition the builds to fail but rather warn.
But the code quality did not improve so the next sprint Bob asked me to do something a bit more seriously and made it one of my deliverables for the quarter.
Bob is not an ex dev and not familiar with finer details of the dev process but is still reasonable.
So I sent a doc to Alice and her team illustrating why they should lint and then I went ahead and conditioned builds to fail if the linter and checkstyles did not pass for new code, and my mailbox exploded with email asking me to disable the linting and Alice let Bob know that my actions had adversely affected their team's ability to meet the sprint goals.
So Bob asked me to disable the linter.
My question finally is how do I go about convincing them to fix the code quality without alienating my managers or my developer friends? I've tried educating them by sharing documents with good coding practices etc. but they don't even read my email with subjects like that.
Also how should I communicate to Bob that disabling linting will hurt our project in the long run without throwing Alice and her team under the bus? (There could be a situation where I report to Alice tomorrow or have to work closely with her team)
If Anyone is curious how this ended
- Bob gave me the power to add a limited number of sprint goals for Alice't team.
- I proceeded to stagger the fix for the code style warnings among the devs in alice's team and myself
- Every sprint the last few tickets addressed are code style fixes
- Our warnings have steadily gone down :)