|
|
|
Ask HN: How to work with bad contractors?
|
|
5 points
by neoburkian
2743 days ago
|
|
I recently joined a company on a team that had a significant software project outsourced to a team of contractors. The reason for the outsourcing is that we did't have the people at the time to ship the project, and the project required deep knowledge of a non-software field that they had and we didn't. The problem is that the contractors are just bad at writing code. The project that they have provided has all sorts of problems: functions that haven't been implemented are imported and passed as arguments through chains of functions 4-5 levels deep, every component is deeply coupled to all other components, the same operations have been reinvented in 4-5 times in different ways, etc. Whats more, the contractors seem to be convinced that the code they are shipping is pure genius. I've brought up one of these issues in the past with the frame "can you explain why you did it this way?" and the what I got back was a word salad. How do I work with these people? What approach should I take when I bring up these deep technical debt issues? |
|
If you really want to make them improve (or if you absolutely have no other choice), I would suggest taking a look at the situational leadership model.
From the sound of it, that team is squarely in the lowest zone of autonomy. This means you have to be directive with them. Don’t try to argue or discuss, tell them what to do. Micro-manage them. Give them small tasks and check often that they’re doing what you’re telling them. Review every line of code they send your way and reject anything that doesn’t pass muster.
If this sounds like a lot of work, it is. You’re basically taking over the role of tech lead and scrum master. It may not go down well with them and it may be unenforceable. But eventually you’ll get them to a point where you can discuss with them and convince them of what should be done rather than outright telling them. This is step 2 in the STL. Your ultimate goal is to take them to step 4 (full autonomy)... Hence my first suggestion: ditch them.