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.

  • 1
    Hey Rob, your message is a little bit muddled as it seems you may feel a bit emotionally involved with the situation preventing you from objectively stating the problem and what you need help solving. Is there any chance you could make an edit to clearly state what the issue is, what you are trying to accomplish, and where you are stuck on finding a solution? Thanks in advance! – jmac Mar 28 '14 at 4:13
  • 1
    My personal reaction to this environment would be to move on. If Company A has a contract then they're stuck with it. If Company B can't work with you, suggest that they return to the company that delivered the original product and ask them to fix it. The bigger question in all this is why are you wasting your time and risking your health on this kind of stuff? – Meredith Poor Mar 28 '14 at 5:07

Usually, when something gets pushed a level by the client, you need to bring things up a level to your own company's leadership. If your company's management is unwilling to back you up, you might want to drop the refactoring to avoid 10+ hour days.

Some companies just don't have the workplace culture or leaders who are willing to push through the best technical solutions.

If you turn yourself into a one-man zealot, you'll risk annoying the developers you work with, their management, and your management in turn since they won't be happy with your efforts even though they were done with the best of intentions.

The world of consulting is full of trade-offs like this one.

| improve this answer | |
  • 3
    This. If your company is prepared to back you up, then you need to escalate to your management and get that support. If they're not, then you need to ease off and not press an approach which is causing conflict with the client's team members. – Carson63000 Mar 28 '14 at 5:44
  • ... unless you are paid for 10 hours a day and like the money obviously. – gnasher729 Dec 27 '15 at 21:37

Not the answer you're looking for? Browse other questions tagged .