Outsourcing mobile apps or business automation projects can be unwieldy, because there are many, many factors that might become a headache: different time zones, dissimilar approaches to project management, use of unconventional tools and practices, and, above all, the notorious human factor. Nonetheless, after successfully completing many projects for clients that outsource development, we can confirm that outsourcing can be quite productive.
Three relatively simple things come to mind when thinking of what makes for effective and mutually beneficial client-developer relationships: trust, understanding, and cooperation. You may find useful the following ten tips on how to implement these principles and handle outsourcing more efficiently.
“Don’t make them earn your trust – give them your trust," says Luke Bucklin, co-founder of The Nerdery, a successful development company repeatedly ranked as one of the best places to work. While Bucklin was speaking about in-house culture, that maxim is equally true when working with distant teams.
Tip 1. Save time by avoiding micromanagement
Development partners are not usually chosen randomly. Finding a reliable company that shares your principles and adheres to high-quality standards is difficult, but once you find the right one, let the team do its work. Regular meetings will allow you to monitor progress and initiate timely corrections, while constant interference with the team’s work and unnecessary restrictions can slow down the development process, make the team nervous, and eventually turn them into passive coders rather than active participants.
Tip 2. Take advantage of service packs
Many companies offer services in packs that in addition to development tools include analytics and project management and quality assurance features. If you work with one of those companies, we strongly recommend using their service packs rather than skipping certain service in order to lower your costs. While there are companies that add services for the sole purpose of increasing revenue (although you will probably not choose a company with a dubious reputation to be your business partner), these extra services generally reflect the optimized and time-tested development and business workflows. By not using some service, you miss important advantages and create a breach in a smoothly running mechanism, which might have rather unpleasant results for both the team and the client.
No matter how much experience your team has, each new project, especially if it is your first project together, has its peculiarities. As a result, it is crucial during a project’s initial stages to give your team an overall vision of both technical tasks and business objectives.
Tip 3. Be ready to explain
As the owner of an idea and a product, you surely know more about the business or the product to be developed than any developer you employ, whether in house or outsourced. You have probably been thinking about the project idea for months or even years before creating the brief and specifications and initiating the development process. This means that you are the person who knows the project best. So be ready to explain.
Tip 4. Do not let questions irritate you
Say for example, you have submitted a project and are waiting for an estimate but instead you receive a frightening list of questions. Do not be upset: questions are auspicious. The thing is, questions are inevitable, and the sooner they appear and are dealt with, the more accurate will be the project’s estimate and the quicker the implementation.
Tip 5. Explain the business logic of your project
Make sure your development partner understands your business objectives and business logic. This is important because this influences implementation of features and sometimes the choice of programming tools, platforms, and methods.
Teams work best when they work with you, not for you. Although this does not mean you need to control every hour committed and interfere with the choice of coding tools or methods (See Tip 1).
Tip 6. Be involved
It is a good thing to estimate how much time you can devote daily or weekly to collaboration with a distant team before you hand them an important task. Developers usually break projects into segments and report on their progress weekly, which doesn’t take much time, and their work will be more efficient if they receive prompt answers to their queries. If you feel that your schedule is too tight, we strongly recommend appointing a dedicated PM to curate the project and be available to deal with questions during working hours.
Regular meetings—whose frequency depends on the team’s approach and on the specifics of a project—help both the team and the client to ensure that a project is evolving according to plan and that the results are meeting core business objectives. Sometimes it becomes apparent in the course of a project that the original strategy was partially or totally wrong, but if you or your assistant are sincerely involved, timely measures and necessary changes can save the project from becoming a business failure.
Tip 7. Set reasonable deadlines
Based on our experience, ‘ASAP’ is the most popular deadline and the most unwieldy one—for both developers and customers. For a developer, it would be very helpful to know which ASAP is really urgent and which is not. You will help developers immensely, if you set a realistic deadline and if you discuss the considerations involved.
For a client, setting ASAP deadlines throughout a project can produce two unfavorable results: (1) ‘ASAP’ loses its urgent status and is gradually downgraded to ‘regular’, which is risky in the event a real ASAP emerges, and (2) there will be a noticeable decrease in quality as the team is pressured to work under stress, which is intolerable as a permanent situation.
Impact of Overtime on Productivity
Tip 8. Test software yourself
We try not to raise doubts about the abilities of outsourcing QA teams. You are the one who knows what the end result should be and what business goals should be fulfilled.
Even though every team always strives for a smooth-running development process, all kinds of problems will still arise during project implementation.
Tip 9. See the first problem as a test for the team
It is how a team handles problems and reacts under stress that will either strengthen the ties between customer and developers and allow delivery of an even better product or result in budget overruns and missed deadlines. Problems reveal a team’s true potential and help to reveal whether you have made the right choices.
Tip 10. Make product quality your priority
“We cannot meet your deadline” unfortunately means that the team cannot meet a deadline even if all developers pull all-nighters. Whether because of an inaccurate estimate or a major error in product management, this is a very serious shortcoming, but if a company treasures its reputation it can redeem itself by not charging for extra hours and making the delay as short as possible.
Nevertheless, if a delay become inevitable, we recommend giving developers extra time rather than insisting on the original schedule, especially if the deadline is not linked to a significant event, such as a new product line launch or an important conference.
Why is it better to give developers extra time? Because that is how they will produce a quality product although slightly off schedule. By insisting on meeting a deadline, you risk producing a buggy product that will require significant fixes after the official release as it is quality that will be sacrificed. Give an extra day to the quality assurance team to find all bugs, otherwise those bugs will be found by your users.