Outsourcing has stopped being something exceptional, quickly turning from a novelty into a widespread and well-established business approach. Being flexible and cost-effective, this practice of hiring a skillful workforce beyond the city limits or even the country borders suits an expanding circle of entrepreneurs in many industries. Some fields are susceptible to this model of remote employment, and the IT sector sets the pace among them, shaping the contours of the outsourcing trend for the coming years.
Offshore and nearshore software development is gaining momentum and is expected to exceed $4 billion only in Ukraine in 2020, with an annual growth of 1.2% in the following three years. However, bright perspectives which attract both customers and developers don’t open without a fair share of IT outsourcing risks.
Those are consequences of the outsourcing boom that continues to attract hundreds of new developers to the already full IT outsourcing market. With the wide range of variants, consumers of software development services find it increasingly challenging to make the right choice of a partner that will deliver them a high-quality product at a reasonable price within the agreed time box.
Our company has accumulated considerable experience of working with clients who faced outsourcing failures because their initial request wasn't successful, so we had to correct mistakes and remedy slips to make a system work smoothly. Communication with customers who went through bitter experiences in dealing with offshore sellers let us identify common mistakes that they make while selecting an outsourcing partner.
Reducing Risks of Outsourcing Software Development
Finding a development team that will suit you to a tee is never easy chiefly because employers aren’t aware of problems with outsourcing that lie in wait for them. Having analyzed previous failure stories of our numerous clients, SOFTLOFT has collected here all major delusions that hamper the effective hunt for an adequate IT outsourcer and suggests a way to avoid getting into typical traps.
1. Looking for the Lowest Rates
As the primary purpose of outsourcing that, in fact, has led to the emergence of this business practice, is cost reduction, it seems natural that scouring the market customers shop for the lowest possible price. And this is why software projects fail as often as not, like the saying goes, you can’t make a silk purse out of a sow’s ear.
Companies that offer the lowest rates try to make up for them by the number of projects they take up. If this is the case, the attention that the outsourcer will pay to your project will hardly be enough to meet your deadlines and – more importantly – leave you with a high-quality result. Consequently, the product (or some of its elements) doesn’t work properly and the developer has to fix it over and over again. Such a course of events doesn’t affect positively both the attitude of the vendor and the reaction of the client, which sooner or later leads to a conflict between them.
In the most terrible outsourcing failures examples, customers may choose to quit the project since everybody is fed up with it, so the wretch seems not worth the headache it causes.
Solution: The price isn’t the main factor you should be guided while choosing an outsourcer. What you should rather pay attention to is the qualification and experience of the team, which is estimated by the projects they have successfully completed and references of the customers they worked for. This way, eventually you are likely to arrive at the best value and speed of implementation for your money. Yet, typically, the developers that can offer this balance are booked for weeks or even months in advance, so the problem with outsourcing here boils down to squeezing your project into their already filled up schedule.
2. Exaggerated Expectations
What do you expect to get, hiring an outsourcer? An adequate product at an affordable price received within a reasonable time, right? Considering that, many unscrupulous developers are ready to promise you anything you would like to hear. Their ultimate purpose is to close the deal selling their service and adopt Scarlett O’Hara’s approach (tomorrow’s another day) as to the solution of possible problems. So your main concern is to figure out what they are trying to impose on you and not to buy a pie in the sky. How can that be done?
Solution: Check and double-check the promises the outsourcer makes. There are several ways to estimate the risks of outsourcing of this kind.
- Submit your project for parallel estimation (as to the budget and time of implementation) to several independent teams with high repute. The average numbers will probably be as close to the real ones as possible.
- Submit to the prospective outsourcer a project that has already been completed (which means you know all about it) for estimation. If the announced sum and deadline are significantly different from what you had, the integrity of the developer may be questionable.
- Invite an independent and fair expert who can offer their judgment on what an outsourcer promises. But make sure this consultant has an adequate qualification for it. In our work, we ran into some would-be experts who had only a vague idea about an app architecture or coding but were actively engaged in providing consulting services.
3. Neglective Communication
It may seem that communication is crucial before the deal is closed, while customers and vendors discuss conditions, deadlines, costs, and other details of the project. However, the real work starts after this, and the problems of outsourcing begin to crop up.
Developers might discover that they lack the time, resources, or (worst of all) skills and experience to proceed with the project. Yet, being out of touch with the client, who might wrongly think that their next contact will take place when the completed product is delivered, and being reluctant to admit problems or incompetence, some outsourcers tend to keep silence until the boil bursts.To avoid this, you should inform the developers to notify you whenever there is a problem and it could only get worse if hidden. How do you go about it?
Solution: Rules of communication must be agreed upon from the beginning:
- Developers have to submit a step-by-step plan of the project, which will include communication and reporting procedures.
- Regular meetings with the team, where developers have to inform the customer about what is done and what they are up to at the moment, should be scheduled. Such timing is very convenient with a view to 2-week Sprints employed in Scrum Agile methodology, which is used for planning and implementing software projects.
- Any issues, no matter how insignificant they may seem, have to be reported as soon as they appear. The experience of SOFTLOFT taught us that nipping them in the bud takes much less time and effort than trying to put out the wildfire that has already spread all over the forest.
- Communication means should be adequately chosen. We have come to realize why software outsourcing doesn't work anymore the way it did. The reason is it relies on the good old Skype/email combo. IT specialists ought to be aware of more efficient communication tools. At the moment, our team is working on a project where we use JIra, Slack, and GitLab to maintain rapport with our customer, that allows the prompt exchange of information as well as keeping them regularly updated on the development process milestones.
4. Developers’ Failure of Promise
This hitch becomes explicit at an advanced stage of development if not on completion. The customer is surprised to discover that the software they ordered doesn’t contain some functionality or it doesn’t operate in the way they wanted it to. The reasons why outsourcing fails in this aspect are different.
Sometimes, vendors or customers have a poor command of English (or any other language they choose to communicate). More often it is misinterpreting the customer’s requirements and goals that have to be brought into line with the allocated budget and aimed with the technological side of the project. It may also happen that the developers don’t display enough flexibility and adaptability to fresh trends to introduce them into the project which doesn’t bode well for the completed product.
Solution: Take steps to eliminate the listed difficulties.
- Make sure you are on the same page – both linguistically and technically. The first is easier, the second takes more time. To guarantee mutual understanding, proceed from the simple to the complex. If the developer doesn't cope with the former, there is a slim chance that he will master the latter.
- Pay attention to the way the outsourcer asks questions. If he doesn't, you are in trouble. The algorithm that SOFTLOFT conventionally employs is “read-analyze-ask questions-analyze-advance a proposal”. In case the developer starts the project as soon as he gets the task without asking anything, it means that his only motive is to get an upfront payment. And it goes without saying that the result you will get (if any) will be disappointing.
- Сoordinate basic terms and methodology of development before the project is launched. We recommend Scrum Agile that allows introducing changes into the original plan at any stage of development, getting the project in accordance with the shifting requirements of the customer.
5. Absence of Quality Control
What happens if the software you ordered doesn't run properly? You do your best to eliminate the problems, while your marketing campaign and sales activity stay put letting your competitors fill the gap at your expense. How can you avoid such a scenario?
Solution: It is all about testing. You must be sure that there is a testing plan that provides the necessary procedures at all stages of product development, including functional testing, code testing, load testing, etc. No functionality must stay outside the procedure leaving possible holes through which errors might creep in. Just make sure testing is performed by people with adequate expertise.
The list of challenges of outsourcing offered in the article is in no way exhaustive. Moreover, you may face quite different issues depending on the nature of the outsourcing project you want to implement. Our company's forte is Magento/E-commerce development, so we can claim to know all the nuts and bolts of outsourcing in this domain. Yet, the basic rules of building satisfactory relationships with an outsourcer hold good for any software development, whether it is an e-store or an app.
Conclusion
Outsourcing is an efficient approach to software development that allows you to get access to a quality workforce and cut down on cost at the same time. However, finding a reliable partner who can realize your project is tricky. Paying close attention to possible pitfalls mentioned in the article, you can form your outsourcing strategy and minimize risks related to it.