I am recently hired (1-2 months) software development manager. Since I have arrived, I have found two problematic practices.
Most developers start off on one year temporary contracts. Market rate pay, but no benefits and they need to re-apply for their jobs every year. The dev team is mostly either young or tied to our city for family reasons, so developer skill is still high. However, turnover is quite high as well because people start job searching at 8 months (as we don't allow them to try and renew until the 11th month). Most get renewed if they apply though.
We use Scrum as a project management tool (It wasn't my choice for all you Scrum hating devs, so I can't change it), complete with using the points from the Scrum Master to estimate work. Problem is, developer performance reviews (apparently not done by me) are done by our Scrum Master using the points and bonuses are based off the reviews. It doesn't help that our Scrum Master is a Executive Vice President type as the project is considered extremely high stakes for our company.
What these two practices lead to is a cohort of developers mostly focused on churning out code with little regard for long term viability. Edge cases get ignored, the React.jsx files become massive to save the work of making new components, and anything not explicitly in the spec (from the non-technical product owner who basically forgets about anything they see on the frontend) is just not included.
An example is that they wanted an input field for phone number for some rare use case for our more expensive clients. The input will only be seen in a really bad business crippling scenario. The product owner didn't specify that the number should be saved and texted emergency instructions (that was the intent), so it was not.
How should I go about handling this? I feel like a taskmaster, not a manager.
I don't want to press on my devs as they might quit.The extra 5 points a sprint (high performance is considered more than 18) means a lot to them (bonus can be 20% of salary).
Management wants control as this is the top priority development project for us. My manager says his hands are tied by upper management. He said that he could probably get the permanent devs more money, but that was it.
HR has the authority to renew contracts earlier, but won't as "we still get applications for programmers when we post the jobs, so there is a large surplus."
Mr Scrum Master says that he already gives us more leeway to manage ourselves than Scrum allows (not terribly agile but ok).
I asked one of my star temp devs and his view was that I "should stay, get a nice project on your resume, and quit as soon as the end hits. Leave the flaming pile of s**t of maintenance to the next guy."
I am running out of ideas here to try and solve this.
What options might exist to fix or mitigate the short term outlook of the developers which is making its way into the code?