Managing Offshore/Offsite Software Delivery Practice

554-9.jpg

 

Svitla Systems is proud to share an article written by one of our long-term clients, Newsha Makooi, a Division Chief, Technology Services in Statline. Statline is a nonprofit organization that provides world-class technology and solutions for the organ transplantation fields. But for us, Statline is a group of amazing people behind the services and systems, who manage unbelievably hard, delicate and important work, and whose mission makes us proud to be a part of this amazing company.

Svitla Systems has been providing development services for Statline since 2015, helping to develop software for two key systems DonorTrac Plus and DonoRegistry. Svitla Team was responsible for various tasks connected to improving user experience, helping the client’s US team with the implementation of new features, improving workflow of registration systems, creating new reports and fixing bugs.

So this article is a result of our combined work and contains valuable experience and recommendations to those who want to employ outsourcing companies and have questions about how it works. Interested? Then read below and find out answers to all your questions.

***

Managing Offshore/Offsite Software Delivery Practice

You have a software delivery practice and want to add additional team members offshore, or let's say you want to start a software development project/practice offshore. For the purposes of this writing let's assume offshore refers to any team that's remote to your main team.  Your remote team might be in a different state, country or across oceans. I'll refer to all these scenarios as offshore in this post.

So, what should you consider and how do you go about an offshore software delivery team?

With over 20+ years of experience in software development & delivery; and having been involved with a number of failed and successful solution delivery practices, here are my suggestions/recommendations - for your consideration.

1. Select the right partner & be involved.

Make sure you pick the right consulting and staffing partner.  How do you select the 'right' partner?  Evaluate them for the quality of the candidates they present to you.  Yes, that means you'll have to interview and select your offshore team members. Don't rely on the staffing agency to do this selection... that's your responsibility. If you delegate that responsibility to the staffing agency, you'll end up with whomever is available.  Availability is not a qualification.

Make sure your partner can address not just your staffing but also your billing, support and other needs.  For example, the partner we currently work with has assigned a part-time PM to our offshore team. We also have access to our account manager anytime - she's very responsive as is our PM.  These are all good signs of a good partner, in addition to several others.

We evaluated five potential partners over three months before we decided on our current partner and entered into our agreement/contract. Give yourself plenty of time for this evaluation because it will make all the difference. 

Managed Services Require the Most Reliable Partners Discover how Svitla Systems takes full ownership of your software operations, ensuring efficiency, stability, and ongoing innovation. Get Started

2. Mind the time difference.

Working with offshore teams means you'll invariably have to deal with time differences.  This can be a challenge and a good thing!  Challenge in the timeliness of communication - especially when not managed well. When managed well, it can be a positive thing because you'll be making more consistent progress on your projects. Your projects will be progressing for 10-16 hours per day instead of 6-8 hours (on average).

Shoot for an overlap of 4 hours between your on-site and offshore teams. This will allow time for collaboration, troubleshooting, training, code reviews, peer programming and meetings.  Depending on the time difference, you might need to negotiate a modified working schedule for your offshore team; for example our Ukranian offshore team works from 1 to 9 PM to accommodate our business day in Denver.  The time difference of 9 hours between the two locations is addressed by our team in Ukraine working from 12PM to 8PM.  This modified schedule allows our teams to have an overlap of 4 business hours.

Make sure you negotiate this arrangement ahead of time with your partner.

3. Tools and technologies matter.

Clearly the software development discipline requires technology. When working with an offshore team, you'll rely on a number of different technologies.  Don't go cheap on your tools. You'll need stable VPN connections, good source code repository options, real-time web-meeting, screen-sharing, webcams & headsets, etc.  Consider your Cloud services for different scenarios. 

Again, don't go cheap on these tools or you’ll pay in other ways - such as a failed attempt at an offshore development team engagement.

4. Pay Fairly.

While you stand to realize great savings with an offshore model, don't get greedy!  Pay fairly and treat your offshore development team members as if they are your full-time employees. Otherwise, be ready to consistently hire to back-fill for your offshore team as they resign for better opportunities.

5. Embed your offshore team members.

It is critical for your new offshore team to be embedded with your business workgroups.  Being remote is hard enough and keeping offshore team members isolated will make things more difficult for them and you. Offshore team members should work as individual contributors on different teams; paired with other developers or QA on the team at your office.  From time to time, the offshore team can focus on specific tasks and projects independently; for example, an R&D sprint for a specific new feature. Remember that while they might be working independently, your methodology must be followed in the same consistent manners.

The above approach also helps reduce the 'us' and 'them' thinking that could come up.  Embed your team members and you'll be working on different projects with different team members regardless of where they are. Much better!

6. Baby Steps!

Exactly as you can imagine this being... start small. Start with simple bug fixes, unit test and automated test development, provisioning dev and test environments, etc. Let the team members go through the motions of software delivery with small units of work. The value of the process at the on-boarding stage is more important than what is being delivered until you have established successful deliveries consistently.

7. Apply your methodology and practices consistently.

What's your development and delivery methodology?  Don't have one?  Don't start an offshore team until you have a good, well-performing methodology.  You have a good methodology now? Great!  Use it consistently with your offshore team. Keep to your existing tempo and maintain your delivery cadence.

This ties back to item number one - Baby Steps - because you can implement and refine your methodology using small units of work. Don't get this wrong and don't move your offshore team to any critical or client-visible projects until you have this buttoned down.

These are big items for working with and managing offshore software development teams. Obvious topics such as communication are omitted on purpose. You already know how good communication is critical to your success; you don't need to read about it here again!

FAQ

How to manage offshore staff?

Select the right people yourself and require your vendor to provide responsive account and project management support. Require a minimum of 4 hours of daily overlap and agree on modified schedules so that it is the time zones that work to your advantage, not against you. Arm teams with good tools: secure VPN, source control, video and/or screen sharing, decent audio, and cloud environments. Pay well and embed offshore members into your product squads to avoid “us vs. them” silos. Begin with small, low-risk deliverables and rigorously apply your current delivery methodology before scaling the role.

How to effectively manage an offshore team?

Interview the candidates yourself. Make sure to have a dependable account/PM support, not just staffing. Try a 4-hr daily overlap and get upfront modified schedules that will turn time zones into a productivity advantage. Invest in solid tooling (VPN, repos, video/screen share, headsets, cloud) to prevent friction. Pay fairly and embed offshore members directly into your product teams to avoid “us vs. them” dynamics. Start with small, low-risk tasks and use your existing delivery methodology consistently before scaling to critical projects.

How to manage an outsourced team?

Take control over who you hire, and make sure your vendor gives good account and project management. Have at least four hours every day when everyone can work together to turn time zones into a speed boost. Buy the tools you need – a safe VPN, a place to keep code, video/screen sharing, good headsets – and use the cloud to make work smooth. Pay well and put outside workers right into your product teams. Start with small, safe tasks while using your own way of working before doing more.

How to motivate an offshore team?

To spur the team member offshore, treat them as you would all your full-timers with fair treatment and fair pay. Work to integrate them directly into your business workgroups rather than isolating them to one side. Let them first try their hand at smaller jobs so that they can notch up some early wins in your methodology and gain confidence, building up inside the system. It goes a long way towards minimizing the “us vs. them” attitude and getting a team environment that works!