It’s okay to be a little nervous when you first start working with an outsourced development team.
After all, ordering a remote team to code for you can feel like putting your eggs in some mysterious basket. Hidden in a black box. Hundreds of kilometers away. And still expecting a return on investment!
But it doesn’t have to feel that way. Despite working in a different country and time zone, a remote team can work with you almost as closely as if they were sitting in the next room. In 2018, software houses have the tools and proven practices to make that happen.
So if you’re nervous, consider this article your yoga session. We’ll take a deep breath, then go over all the steps you can take to help you rest easy that your outsourced development team is working well.
Table of contents
Let’s say you’re working with a professional outsourced development provider, like a software house. You may find yourself wondering:
How closely can I work with the team? What level of access do I get?
But that’s not how value-driven outsourcing works.
Rather, the software house will ask you:
How close do you want to be?
A lot will depend on whether you have someone on your internal team who is available daily to communicate with the outsourced team. Very often the Product Owner takes responsibility for daily contact—but more on that in a later section.
From our perspective as a software house, we prefer to work with clients who can contact us daily. Tighter feedback loops lead to more business-relevant results, faster.
But you may prefer to take a different approach. After all, your outsourced team is also supposed to save you time.
Let’s break down the different levels of contact with a remote development team, and how you can fine-tune your level of participation.
1. Slack and other chat tools
Slack and similar chat solutions work great for real-time communication and frequent contact, which is often necessary in the initial stages of cooperation.
Chat gives you the opportunity to answer questions on the go, so you can be sure that your team isn’t wasting time reinventing the wheel. You may have insights that will save them hours of unnecessary work.
If your organization uses Slack (or Wrike, or Stride, or Skype), you may find it convenient to keep communication with your outsourced team within the same app as your internal comms. It’s just one way to achieve “remote, but not distant” cooperation.
Chat is asynchronous, which can be helpful if you’re dealing with a time zone difference. Instead of setting up a call, you can always leave a chat message. If someone is online on the other side, great! They will likely respond right away. If not, the message will safely wait for a response until a team member logs in.
Furthermore, chat helps you clarify your thoughts. When you write your comment down, you get to clear up your vague idea along the way. This often helps you realize that a seemingly urgent problem you’re describing may actually be a non-issue.
Chat also clarifies communication on the level of grammar and vocabulary. Not everyone is a native speaker, but everyone has a dictionary built into their web browser or chat client. Even working in a multinational team of experts, you would be surprised how often that comes in handy.
Finally, chat is great for building rapport with your outsourced team. A few jokes (perhaps even memes?) can go a long way. Like this, for example:
I realize rapport is not exactly a precise metric that you can measure. But you can feel how rapport boosts progress when it’s there, and causes tension when it’s missing.
2. Daily catch-up calls
For those who may feel distracted by constant contact via chat, there’s the possibility of organizing brief catch-up calls on a daily basis to get updated on progress and discuss any urgent issues. The call takes place between you (the client) and a representative of the outsourced team or the proxy PO within your outsourced team, if they have one. It usually lasts no more than 15 minutes.
We should note here that this daily catch-up is different from the team’s daily stand-up, a.k.a. the daily scrum. Daily scrums serve the team to sync up, discuss the previous day’s work, go over current work, and discover any blockers or issues the team must resolve. For those meetings, it’s best to let the team self-organize.
3. Backlog refinement
Teams working in Scrum meet regularly to refine the product backlog, clarifying requirements, estimates, and blockers. Taking part in this Scrum event will help your outsourced development team stay on track and keep a clear picture of what matters the most to you.
Keep in mind that backlog refinement always looks a few Sprints into the future. One of the key benefits of this event is keeping the team prepared for the following Sprints, in order to plan and execute them smoothly.
Once again, including a full Product Owner in your outsourced team changes the dynamic here. It is the Product Owner’s job to communicate with you and know your requirements inside and out, so the PO can competently represent you during backlog refinement.
4. Sprint reviews
Agile software development happens in Sprints. Each Sprint is followed by a Sprint review during which the team presents and discusses the work they delivered. Depending on the Sprint length, the review would most typically occur weekly or biweekly.
When managing the work of your outsourced development team, Sprint reviews are one event you should not miss. The team needs feedback from you on whether the delivered features meet your vision, and whether they provide business value for your organization.
For that reason, your team will likely insist on you attending Sprint reviews.
5. Visits and face-to-face meetings
As the cooperation with your outsourced team matures, you may want to arrange an on-site meeting to spend some time together offline.
Depending on your distance from the development team, meeting in person could be costly, and require a bit of planning.
But such a meeting presents many opportunities. On the one hand, you can get together in one room with your team to discuss critical aspects of the project, such as a quarterly roadmap.
On the other, meeting in person can help build trust and rapport on a new level, leading to a smoother cooperation going forward.
After all, sometimes work just “clicks,” and you meet a team that not only delivers but is fun to work with. Once that happens, wouldn’t it be nice to grab a beer with them?
The bottom line is you can tailor your cooperation with an outsourced team and decide for yourself how often you want to be in contact: in real time, daily, biweekly, or anything in between.
You may have noticed that some of the points of contact available to you relate to the various Scrum rituals that a development team uses.
Scrum rituals get a bad rap in some circles. But they can bring tremendous value if they’re done right, and if you remember why they’re implemented in the first place. Here’s a video by one of our Scrum Masters explaining the reasoning behind the rituals:
What is the role of the Product Owner in managing outsourced development teams?
As a software house, we like to keep our clients close and maintain a short feedback loop. If something is finished, we want to show it right away to get your acceptance.
There is one exception to this, however.
If the outsourced development team includes a full Product Owner, and trust has been established between the client and the PO, then it’s enough to present results once a Sprint during the review.
That’s because a full PO understands your view as a client, can represent your perspective to the team, and can even advise on business decisions to ensure the best possible product.
Nevertheless, if you like to take more ownership of the product, and you don’t mind spending some time on communicating with the development team, all of the communication options outlined above are still yours to use.
Aside from communicating with the outsourced development team, it is good practice to stay in touch with the service delivery manager.
The personnel structure for various outsourcing vendors will differ, but there’s usually someone supervising your outsourced team to ensure the best quality of work. In our case, that’s a service delivery manager. They are responsible for managing the outsourcing relationship.
In a productive software outsourcing cooperation, you (the client) and the software delivery manager should stay in regular contact. Calls with the manager usually occur every 2-4 weeks, though they may happen weekly if the project requires additional attention.
For example, weekly calls may occur:
- when the project is just starting and rules of engagement need to be established;
- when major team composition changes happen;
- when the project is in “all hands on deck” mode, e.g. when it’s nearing the deadline.
How does contact with a manager differ from contact with the outsourced development team?
While communication with the team usually relates to day-to-day work and individual tasks, contact with the manager is focused more on the bigger picture.
A call with the software delivery manager gives you the opportunity to:
- discuss the outsourcing relationship in general;
- share your feedback;
- evaluate team effectiveness;
- voice your concerns;
- discuss escalated conflicts;
- bring up business issues;
- discuss team composition;
- communicate and discuss decisions to scale the team up or down;
- talk about the future: financing prospects, development plans after an MVP is complete, etc.
You probably won’t touch upon all of the points above during the call, of course. But even if the takeaway from the meeting is that everything is on course, it’s still useful to stay in sync, stay informed, and rest easy that work is progressing well.
To sum up, here’s how you can manage work with a competent outsourced development team:
- expect regular contact as a requirement, not a bonus;
- use real-time communication channels such as Slack to answer questions, save the team’s time, and build rapport;
- participate in daily catch-up calls with the team and/or the PO;
- contribute to backlog refinement;
- show up to Sprint reviews;
- consider an on-site visit for deep planning and teambuilding;
- discuss the relationship and resolve issues during manager calls;
- explore the role of a full remote PO to handle comms in your name.
In the end, managing work with an outsourced development team is all about transparency and proper communication. Regular contact should be a requirement, not a bonus.
What are your experiences working with remote teams? Feel free to share your stories below. If you have questions or comments, we’ll be happy to expand this article to satisfy your curiosity.
And if you’re thinking about software development nearshoring, go ahead and read our article on avoiding common holes in your contract or grab our ebook to learn how to find the best outsourcing partner in the shortest possible time.