Have you ever asked yourself how to succeed in outsourcing software development? If you have, you are in luck. This article attempts to shed light on what to consider once you have decided to start working with outsourced developers. This is primarily for dealing with a software development agency, but the same principles can also be applied to freelancers. You might find this post especially useful if you are inexperienced in outsourcing software development.
Once you have decided to use outsourcing, you have probably had some discussions with a few development agencies. But which one to choose? Selecting the right partner is an important decision. The answer is seldom clear, but there are a few things to keep in mind. Let’s focus on the following three components:
- Communication – Proactive and honest service on the agency’s part is a sign that you matter.
- Competence – Find out about the agency’s competence through discussion and references.
- Contract – There should be room for negotiation when the contract is drafted.
When discussing your project with an agency, pay attention to their communication. Do they generally reply swiftly to your emails or calls? Do they approach you with further questions or suggestions?
Quick replies and higher proactivity on the agency’s part tend to mean that they genuinely want to work with you. They truly want to commit to your project. The activity and proactivity are also a tell of the agency’s working methods. If communication with the agency is sluggish before the project starts, you can expect difficulties when the project is ongoing.
Furthermore, the saying “If it sounds too good to be true, it probably is.” also applies here. Software projects are constantly evolving, which means that there will be some unforeseen obstacles sooner or later. Because of an unexpected issue, there may be a delay in the project, or parts of the project might have to be revised. Unexpected obstacles are nothing out of the ordinary, but you as a customer should be aware of this risk. Therefore, if the agency tells you that they are uncertain about some aspects of your project, it can actually be a great thing. You are most likely dealing with someone who will honestly tell you the things you need to know, not necessarily the things you would like to hear.
Judging the competence or quality of a software development agency’s services can be tricky. For that reason, here are two main things to bear in mind when choosing your partner.
First, talk with the people that will be directly involved with your project. Get to know them as people and dig into their knowledge a little bit, if possible. Bring a technically capable person with you to the meeting if you can, in order to uncover more of the developers’ skills and thoughts.
Second, references. You should be presented with some reference cases of the agency’s previous projects. If the references have some similarities to your project, or to your company, they clearly have some experience that will support the success of your project as well. However, I urge you to go a step further. Talking about a reference case with the agency is good, but talking with the customer who gave that reference is even better. Ask for the customer’s contact information, so you can get a more objective view of the agency’s competence.
The contract will vary depending on the agency you will sign it with. Some are going to be more detailed, whereas others offer more flexibility for the development process. In development jargon, this is basically meant with “Waterfall vs. Agile development.” Whatever the software delivery method will be (i.e. agile, waterfall, or something in between), two key points should be highlighted for you to check during contract negotiations.
First, whether the contract and payment model is designed to be more flexible or fixed, you should understand what the billing is based on. For example, will the agency be billing you monthly depending on how many developer hours are spent, or are you paying a lump sum when certain milestones of features are reached? The “flexibility” of the contract should be agreed upon depending on the customer’s budget and cash inflows.
Second, make sure that you (or the company you represent) will own the rights to the results of the agency’s work once you have paid for their service. It should be a standard procedure that the right to results is transferred to the customer, but you should always check that the contract includes a specific clause for this.
By bearing these three tips in mind in your outsourcing negotiations – Communication, Competence, and Contract – you will certainly be on the right track. However, it must be said that there is no absolutely guaranteed formula for negotiations to be smooth sailing. The tips shared in this blog will hopefully increase your likelihood of selecting the right partner for you, and eventually, succeed in outsourcing your software development.