Developing Software with Offshore FacilitationPosted by Chris Garrett / July 3, 2018
What is Offshore Facilitation and why is it worth exploring?
Distributed global teams are nothing new. As the world gets smaller, it’s easier to look further afield for expertise and a competitive advantage. Many digital and small businesses use offshore services for admin tasks, programming, bookkeeping, and SEO, just to name a few.
It can be cost-effective, but is also synonymous with tales of misery and woe.
What is offshore facilitation?
There is a difference between getting something done offshore and offshore facilitation. It’s common for businesses to limp through our front door after attempting to develop software offshore. They tell us how they’ve thrown good money after bad, been led down the garden path and ended up with a broken, unfinished project.
Any team needs to be managed well to produce good outcomes. When you throw distance, culture and language barriers into the mix, your project management needs to be watertight. This includes clear and detailed documentation, daily conversations with your dev team, small sprints or groups of tasks that can be quality tested and clear weekly timelines.
Developers with experience know their stuff, but they don’t know YOUR stuff unless you help them. Facilitation (read: team selection and project management) is often the element that is lacking in failed offshore software projects.
Minimising the Risks
Start-ups work on a shoestring until the business starts generating revenue. So, you need to build it as cheap as possible, and software development in Australia is far from cheap.
You can get good results with offshore developers at a great price, but the road is long and filled with potholes. And steep cliffs. And livestock.
We’ve found that a good way to minimise risk and keep your costs low is to work with a local team to plan and design the app. From here you will have a detailed brief to shop for offshore development quotes. The detailed planning docs help minimise wildly varying quotes. (Offshore teams have a habit of quoting low to get the job, but add extras all along the way.) And then use your onshore team to manage the development process.
- Plan and design your project here
- Use your local team to help find an offshore team (do your due diligence)
- Work closely with your local team to manage the development process
Your onshore team need to be technically every bit as good as the guys offshore; otherwise you won’t know if they are building what you designed, in the way you designed it. Your local team need to guide the project in small steps that can be easily checked and approved. It’s much easier to pull a project back on track after a week than after a month.
Communication and turnaround time are key considerations. There are always time zone differences when working offshore from Australia. That’s the price we pay for paradise : ). So, small jobs with quick turnarounds need to be done here. Quality checking and fine-tuning are also things that can be quicker to do here. Your local team will operate as translators to translate project jargon and technicalities into business terms, schedules and budgets so you can do what you are best at and make business decisions.
Systems and Tools
Video Chat and Screen Sharing
Face-to-face meetings often negate the cost efficiencies of working offshore, but video chat and screen sharing are a close second best. There is some great software freely available – e.g. Skype, GoToMeeting, Slack, Discor, Join.me.
Visual design and feedback
To minimise language confusion, include screenshots with annotations and as much visual information as possible. We use Omnigraffle for Mac for wireframing and planning.
There are loads of screenshot add-ons for Firefox and Chrome. Download one that can take a screenshot of the whole page, not just the bit you can see. Annotating a screenshot can be easily done with Preview, Adobe Acrobat or any other graphics program. Include these with your notes.
Central Code Storage
Storing the code in a central place with check-in/check-out controls and versioning is essential when working with distributed teams. GiT was built specifically for this purpose.
Project Management Software
And, finally, project management software. This is the key to open and clear communication. All tasks need to be added to the system. Not via email. Everyone needs access and the ability to collaborate via the system, track task progress, and record time and feedback.
We use Jira, but there are lots of others too. There are too many to mention here, but go with something simple, or it won’t get used.
If you decide to work with an offshore team, seek help. Unless you are an accomplished software developer or software project manager, you are going to struggle. It’s a minefield of technical jargon, elastic timelines, fantasy budgets and fairy-tale outcomes.
Find someone you trust locally to be your translator, quality checker, project manager, and solutions worker-outer – someone that understands the difference between two different approaches and the associated budgetary impacts – someone that can tell you if things are starting to run off the track.
Doom and gloom aside, we’ve had some great successes with offshore teams and quite enjoy the process now. There are some incredibly talented teams in the world with great processes and communication. Knowing how to spot them is the key.