I’ve encountered developers who want every implementation detail written down before they start work. I’m not exaggerating.
What I found interesting, however, is that 100% of these developers worked for a couple of the big Indian offshore development companies, household names we have all heard of.
This is not a precursor to a rant about offshoring, or a slur against Indian offshore developers, because I have had more than equal measure of good experiences with developers from the same region (you know who you are, hello if you are reading this).
Instead, I became interested in what it was about these particular companies that (I suspected) were engendering this kind of behaviour, especially since it would have been easy to chalk it down to the oft-bandied reasons like ‘subservient culture’, inexperienced developers, waterfall practices and language barriers.
The pattern I started to see was the presence of a loud, particularly overbearing account manager, often physically locating themselves on the client’s premises. Who spoke authoritatively as the single voice of the offshore development team. The account manager seemed to have little technical ability and would gladly accept all client work.
I also saw that it didn’t seem to matter what was produced by the offshore team, working software that was fit for purpose or just downright dog excrement. All good, the account manager accepted credit. All bad, the account manager angrily remonstrates their team in front of the client.
Later on, I learned from one brave developer who spoke in confidence that they were working under the threat of dismissal if they spoke to the client, and threat of dismissal if their individual work was sub-par.
Whilst every team member had a nice picture of a modern office as their Microsoft Teams background, I suspected that some (perhaps many?) were living in pretty terrible conditions and lacked the means to depart ways from their employer.
This is a precautionary tale for anyone seeing this behaviour in their offshore development team, particularly in the setup I describe above. The answer is to vet your suppliers well and expect your remote developers to communicate openly like any other developer.
If you are unhappy with your development team, they may need more detailed guidance.
Clear and effective software requirements can help with this.