I'm a consultant for Company A providing services to Company B. Company B hired another company to deliver a web application, but their delivery was rushed and misguided, resulting in a very unmaintainable codebase. Company A was then hired to come fix the mess.
Truth be told, they would have been better off starting from scratch with a modern application delivery. But that's not what happened.
When I joined the project, my colleagues were augmenting new functionality "the right way" to the spaghetti. I was tasked with working on the spaghetti. That's fine, but many of the team members from Company B are very set in their ways and resistant to change.
This means that every time I introduce new architecture or set a new pattern, one employee in particular gets very combative and pulls leadership in to advise on decisions I've made. Most of the time I'm able to persuade, but it's at a cost of time and stress, and sometimes I'm not on top of my game so the hostility kills my communication.
On top of that, there's so much pressure to deliver features instead of refactoring that I find myself working 10+ hour days just to get a little feature delivery on top of the endless hole of refactoring that needs to be done if we ever want this delivery to succeed.
Leadership from both A and B are not communicating the need to refactor very effectively, and non-technical folks are stressing everyone out to finish the product.
I understand I've identified more problems than the title describes:
- How do I handle uncooperative team members that I'm forced to work with?
- How do you, as a non-dev-lead, survive in an environment where refactoring is required but not acknowledged as important or even necessary? My colleagues who are delivering 100-level features are getting kudos and applause while I'm dissecting, rearchitecting, presenting, and mentoring many of the employees.
On top of that, half the people I'm working with are hearing-impaired or have sleep apnea or just don't care about their jobs, so tasks that they don't understand or enjoy fall onto my plate. Maybe that's a different problem, but as you can tell, I'm dying for advice.