Now that the use of remote software development is becoming a standard strategy to enhance your software development capabilities, there is no shortage of helpful articles and papers on points that you need to bear in mind to maximise the benefits for you.
There are, no doubt, several key aspects involved in choosing, engaging with, and managing business relationships with your remote software developer, and addressing them will increase the likelihood of success.
But a successful partnership is a two-way street. As well as the checklist of desirable behaviours that you need to display, your partner also needs to be on-board, and have similar goals for their interactions with you.
This article reflects the situation from the point of view of your partner organisation. Your development partner should ideally have been in this business for decades, and have a well-developed set of standards and aspirations for how they would like to work with you to achieve a long-term, high-trust relationship with your company. You may be interested in what a development partner may expect from themselves in such a partnership with you.
One of the hallmarks of successful integration of remote software development into your organisation can be consistency and stability of the partner resources. There is a lot of work involved in on-boarding new development resources and getting them up to speed, and that can be wasted if there are high levels of churn at your partner’s end. A great question to ask when considering a software development partner is “Are your development resources your full-time permanent staff?”
Some development partners’ business models are to identify, employ and train new development resources for on-sale to clients. Others, though, take your requirements and go to market (in their local area) looking for contract candidates on your behalf. The latter model, though it might be a quick fix for you, means that long-term engagement of the same resources is often much more problematic than dealing with permanent staff.
If you opt for this arrangement, be prepared to conduct regular on-boarding as development resources come and go from your team. If you are looking for a longer-term remote software development capability, a partner who permanently employs staff is likely a better option.
2. Great communication
Maybe the most important key to a great long-term relationship is for your remote software development resources to maintain open and honest communication with you at all times. Like any good team, it is vital that all of the key players are always on the same page, and completely aware of the dynamics of the project at hand. Software development is an endeavour that is notorious for it’s fluid and changing nature.
It is natural that requirements, specifications and timelines can vary in response to internal and external factors, particularly where the development is occurring under an agile methodology. Things just don’t stay the same for long.
A good development partner will try to achieve the closest possible connection between your local team and your remote development resources. Weekly written reports to all stakeholders should be standard operating procedure, and they should offer regular stand-up meetings as another great strategy to keep everyone on the right track.
Good vendors are generally enthusiastic advocates of video and screen sharing software to support this communication. The bottom line is to avoid surprises! Good news should travel fast, but bad news should be faster.
3. Fast response
Part of ongoing project success is to maintain momentum and velocity within the team. Nothing destroys those attributes quicker than silence from either end of the engagement. Everyone needs to know what is happening at all times.
All parties love working with responsive teams who are active and engaged in making every project a success. Facilitation of real-time interaction between team members is a great way to make them an integrated unit.
However, your remote software development partner’s physical location can make this a challenge. Consider the time-zone in which your remote resources operate.
If there are hours of overlap each business day, your team members can be directly discussing project issues and happenings with each other at all times.
Quick questions and clarifications can be resolved quickly, allowing the project to maintain it’s momentum, and establishing personal connections between team members regardless of their location.
Changes to scope of timelines can be instantly conveyed to the entire team, ensuring that misunderstanding and confusion is minimised or eliminated.
4. Clear escalation path
Issues do happen, even in the best managed teams. The key to effective team management is not in these issues though, but in how they are addressed.
Your remote software development partner should have an experienced relationship manager assigned to you, and ideally have a nominated Technical Lead or Project Manager involved from their end as well.
By having clear and explicit lines of escalation in place from the outset at both ends of the partnership, FUD (Fear, Uncertainty and Doubt) can be minimised.
Again – clarity and certainty in the lines of responsibility are key.
5. Standards matter
When dealing with dynamic and evolving software solutions, it is vital that the resultant artefacts (including technical documentation and code) are produced in a manageable and maintainable fashion. Any developer (even one with no initial involvement with the project) must be able to go back to the project in months or years and quickly be able to interpret and understand it’s structure.
Your remote development resources need to conform to generally accepted industry standards in their products, and that should be their default position. Such standards are widely propagated through software vendors (Microsoft, Apple and others regularly publish recommended standards which development partners should usually adopt) or communities (similar standards exist by agreement for Open Source).
Many clients have their own well-established standards in place to ensure consistency of product throughout their applications. Where such standards exist (and do not conflict with industry standards), your partner should have no problem adopting them for work on your projects.
If there is any conflict, your partner should recommend changes, along with the reasons behind their recommendations. In this way, your internal processes can actually be enhanced by working with an experience development partner.
Some development clients just need “arms and legs” capacity to get things done. Many, though, are interested in their remote development resources’ advice and suggestions regarding their products.
This makes sense because even a modest-sized remote development team may have many years of combined experience with a variety of projects, and leveraging that experience can be advantageous.
Your remote resources may well come up with suggestions and insights that improve the useability of your product, or the strategy for it’s development. Take advantage of this.