I’m leading an IT team with a remote setup where the headquarter is more than 2000 km away and also from previous gigs I saw many remote working IT companies (nearshore, farshore, etc.) failing, loosing trust, reputation and finally not being able to acquire remote development clients. Over time I found the following rules to be the key to a successful remote development partnership. To be followed by the dev team, not the client ☺.
#1 Don’t take anything for granted
Perfect specs? wireframes? use cases? Customer testing and confirming your work to be ready to pay your bill? Don’t expect anything like this to be happening. Have a plan B how to make a 100K project based on a single sheet of paper of specs to be succesful. And be prepared to get what you need for your work through intense communication. And if that does not help: Stop the project, Send the invoice and wait for the client to provide at least the minimum information by phone call (most efficient by him) where you interview him ( he does not have to prepare!).’
#2 Your client is allowed to fail, you aren’t
I’ve seen that many times, that remote partnership got lost because the dev partner is blaiming the client for failures in deliveries which have been promised. can be specs, can be server access, can be anything. be prepared to compensate and do whatever action is need to still successfully deliver…
#3 Be a reliable precise communication machine
Means, ensure that your client receives on the proposed minute the agreed report with what was achieved since last report, how does that compare to the plan outlined in the last report, what was not achieved, what was over-achieved, what is your plan for the next week, what are you’re troubles, what do you need from your customer in 4 weeks time (don’t use a shorter time frame here, he won’t deliver). I found that this communication is the core part of generating trust. If your report arrives, constantly, precisely, providing transparency. Something people can rely on, they will start venturing relying on your work and finally on your software. If you can’t ensure this, trust will not start to grow. And trust is everything in a remote dev setup.
#4 Be an advisor, not a proposer
I had to learn, that you cannot influence your customer, nor convince him of anything in a remote setup. If you feel you can, wait a while, your client will get back to his original ideas. Means, any recommendation, any proposal to your client must be neutral. Means, always provide ALL options along with well researched and proven pros and cons. And finally a personal recommendation along with the reason for your choice. Let your client take the decision and be prepared to be OK with his decision, whatever it will be. Trust your client, that he knows some things better about his business then you do and kill your ego which tells you that you know for better what he should have decided. At the end, I strongly recommend, don’t have any opinion in this game at all. Look around you, there are too many people with too many opinions already. It will be lot’s of work to ensure they all will be heading towards a successful delivery, so stop putting your own mindset too… Later, when your trust is settled and you do have a strong client relationship, your opinion is very valuable. But not as long as trust is not yet bulletproof.
#5 Make happen what you say, every single minor thing.
You say you call at midnight: call at 2400! Not before, not later. You say, you gonna write that specs till Wednesday? Send it out Tuesday evening and have it proof-read at least 3 times. You say, you deliver the string change tomorrow (although its clearly unimportant). Deliver it today. — the base of trust is blind stupid reliability. Guarantee that things happen as you said. Always! For every single detail. Never miss anything. Or the other way around… if you can’t deliver a small non relevant thing on time, how should you be able to deliver a big mission critical software? Work like a maniac on that, behave like a machine, follow always the same pattern… and your clients will start giving you trust. And trust in IT means business and business means money and growth.
#6 Care about quality, don’t care about speed
I had to learn in the last years, being fast, being cheap, being efficient, being agile...at the end it never was sufficient to hold a client for the long term and make real substantial turnover with them. The one and only thing which worked successful was Quality. Means: number of bugs found after delivery. It did not matter how slow we were, didn’t matter how agile or expensive. Clients ran away for that… to get cheaper, faster, better. BUT: they all returned for quality. This meant for me to be VERY conservative, promise only what you can deliver guaranteed. Not a single but more. Ensure that the client understands what you’re saying and proposing. It also meant to stop playing with new technologies, meant to kill all risks we had in the project. Always. Like a maniac…