I already got myself in boiling water by criticizing
management in that the way projects and tasks were being
managed was highly unprofessional...
Communicating with managers is a bit of an art. I think a large part of what makes a developer "senior" is their ability to do this effectively.
I'm not making any comments on your personal situation, but as a general rule it's important to talk in terms of solutions and not problems. So don't say, "we have a problem and here is my recommendation to solve it". Say instead, "I think we can improve our productivity by...", or "I think we can save some money by...".
Do some calculations to help sell your case. You want to spend time optimising the build process? Record how long it takes to build the code currently. Maybe it takes 5 minutes. Maybe you build the software no fewer than 12 times a day. That's an hour of productivity wasted per developer. Do the maths, convert it into dollars. Then say, "we can save X dollars a week by optimising the build process. We spend a week working on this, we will have made our money back within a month (or whatever it is)."
Your manager will be quite happy to go to the board to tell them that he's improved efficiency by a factor of X.
Highlighting existing problems, even whilst providing solutions can put a manager on the defensive when you really need him to be your ally.
Obviously I'm not saying never highlight problems. Sometimes you have to highlight problems, but it requires delicacy and if you don't need to, then don't. You probably don't need to a lot more than you think. We developers tend to put the problem first and the solution afterwards and it's quite hard to put aside that mindset when talking to stakeholders. Even Elon Musk finds this hard to do when talking to the press. It's quite funny to hear him talking about all of a Tesla's inefficiencies while trying to sell it!
Also be patient. Your manager actually needs to be convinced of what you're saying; he can't just take your word for it. So if you see an example of how your solution would have prevented a problem that just had to be dealt with, point it out. Take him on a journey, to use an old cliché.
This doesn't work if you need help and resources to find solutions to said problems. You cannot solve everyone else's problems and implement solutions for them. You can suggest solutions, but someone has to give the okay and devote the time to implementation. If every problem you see requires you to submit a lengthy solutions proposal to the people who should be solving it themselves, you'll get burned out.
No, but you can solve the problems you can solve. That will give you currency to buy respect, trust, and responsibility.
I'm not suggesting you shouldn't do anything without getting permission first, but for the things you do need permission for, the above advice might help.
I'm not making any comments on your personal situation, but as a general rule it's important to talk in terms of solutions and not problems. So don't say, "we have a problem and here is my recommendation to solve it". Say instead, "I think we can improve our productivity by...", or "I think we can save some money by...".
Do some calculations to help sell your case. You want to spend time optimising the build process? Record how long it takes to build the code currently. Maybe it takes 5 minutes. Maybe you build the software no fewer than 12 times a day. That's an hour of productivity wasted per developer. Do the maths, convert it into dollars. Then say, "we can save X dollars a week by optimising the build process. We spend a week working on this, we will have made our money back within a month (or whatever it is)."
Your manager will be quite happy to go to the board to tell them that he's improved efficiency by a factor of X.
Highlighting existing problems, even whilst providing solutions can put a manager on the defensive when you really need him to be your ally.
Obviously I'm not saying never highlight problems. Sometimes you have to highlight problems, but it requires delicacy and if you don't need to, then don't. You probably don't need to a lot more than you think. We developers tend to put the problem first and the solution afterwards and it's quite hard to put aside that mindset when talking to stakeholders. Even Elon Musk finds this hard to do when talking to the press. It's quite funny to hear him talking about all of a Tesla's inefficiencies while trying to sell it!
Also be patient. Your manager actually needs to be convinced of what you're saying; he can't just take your word for it. So if you see an example of how your solution would have prevented a problem that just had to be dealt with, point it out. Take him on a journey, to use an old cliché.