All those in the IT industry who have given any thought about optimising their current software development processes and arrangements, inevitably wind up thinking about some sort of outsourcing.
Alas, many IT businesses that could potentially profit financially from a viable outsourcing arrangement, and could, in many instances, even improve the quality of their products, prefer to keep on funnelling the corporate moolah into the costly, if outright failing, arrangements and, often, mediocre resources they are saddled with in-house.
One could point out several reasons for why this is happening. We will dwell on just one being the breaking point for many a brilliant cost optimisation undertaking – the fear of choosing the wrong outsourcing partner.
We’ll also try to look at the issue at hand from an altogether different angle – through the eyes of a seasoned outsourcing provider which we are.
So, how would we go about selecting an outsourcing partner for ourselves were we in the shoes of a technology business that doesn’t have too much money to burn, but is poised for action for the fear of getting into a dodgy arrangement with an out-of-the-country outfit, unable to deliver as expected?
Relevant Industry Expertise and How it Should be Verified
First and foremost, in addition to a good portfolio, excellent development skills, a favourable geography and time zone, and cultural proximity, it may be mission-critical to opt for a provider that has sufficient industry expertise, and has previously catered to reputable businesses in your particular industry.
While this is clearly understood by most companies looking to outsource, many of them omit to find out what is in actuality behind your partner’s-to-be claims of having the industry-specific knowledge you are looking for.
Due to the customer turnover that inevitably takes place at any company, it may well happen so that none of the employees who have implemented their reference projects in your business domain are actually available to tackle your project. It must be firmly stipulated by you from the outset that at least one of the employees on your project team, preferably, the Project Manager, must be one who has taken part in projects similar to yours.
It is also imperative that you pick a company with a well-established corresponding industry practice, and probe whether there are any more similar ongoing projects: the presence of one or more ongoing similar projects always helps the provider ensure continuity in their industry practices, and may come in handy in the future, should you need to scale up your development effort. To beef up our own project teams, we also practice appointing regular consultants from among those knowledge holders, who are allocated to other projects.
While checking your potential partner’s industry expertise, also think about it from the point of view of the added value they can generate. See who the clients are, and what exactly the service provider’s employees have done for them. After all, this is one of the less touted, but tangible advantages of outsourcing (provided you find the right partner) – expertise-wise, those folks don’t stew in their own juice, and have, often, taken part in developing several standard-setting solutions for different clients.
This means that although the details of one’s previous industry-related development experience may be NDA-ed, the knowledge and skills remain, and your solution is much more likely to end up at the forefront of your industry than when handled by people who are brand new to the field.
To cap it all off, a business domain-savvy team will always implement the project considerably faster, thus saving you oodles of dough and the need to be providing feedback iteratively during several months. There have been several instances when we had a chance to truly realise how important business domain knowledge is to both the service provider and their client.
For instance, we’ve had two similar projects associated with building payment systems for two different European clients. With the first project, it did take us a short while to figure out the industry specifics and get a grasp of the terminology, but we managed to do it quickly and that wasn’t really the pits.
The real hassle kicked off when we started integrating our system with external payment gateways: the churn was excruciating. That’s when we realised, that had we known the industry workings before, the team’s downtime (not to mention the client’s bankroll) could have been somewhat smaller – a little of timely planning was all that was required.
We never got slowed down by similar hurdles while implementing our second payment system project.
From our personal observations, depending on the specific business domain (in our case, it was FX trading), it may take a project team up to half a year to fully learn the ropes of a particular industry. The shorter this process is, the more wholesome it is to your project.
Finally, it is also important that you find out how your outsourcing partner-to-be is prepared to guarantee that the intellectual property rights to your product will belong to you when your project is completed. This is something that must be taken care of before you sign with them, and start spending time on negotiating other issues and holding interviews with their employees.
Your Partner’s HR and Recruitment Processes & Potential for Growth
Never get overly enthused if you’ve managed to find an outfit that has done it before – this is only part of the puzzle. Another major aspect that needs to be researched by you prior to the take-off of your project is how stable your outsourcing arrangement with this selected service provider can be, given their existing HR infrastructure, and the current potential of their IT labor market.
What Needs to Be Taken Into Account
Western businesses looking to outsource make the hackneyed mistake of overestimating the weight contractual relations between employers and employees carry in setting up a steady and efficient offshore development team. Surprisingly, some believe that contractually harnessing a bunch of developers for what they reckon to be a sufficient time period is the answer.
Nah, it doesn’t work that way.
And we’ve known this for certain ever since the early 2000s, when sweatshops, disguised as IT multinationals’ local branches, were, briefly though, part of Ukraine’s IT landscape. To our memory, the sweatshop approach had never worked out to result in any more or less well-implemented projects: all you can do is make some people (who’ve probably been beating the bushes for a job for a while) go through the motions for the period you mention in the contract. Just like with mercenaries in combat, your platoon will fink out on you one by one in search of greener pastures at the very first opportunity.
Although the importance of contractual relationships should not be altogether disregarded, what matters a lot more for long-term engagements is, in our reckoning, whether your partner’s workforce is motivated enough to stay with them long enough, and whether they are in a position to increase your team quickly and with the same quality.
To find this out, pose and try to find answers to the following questions:
How happy the employees with the service provider?
How long are employees contractually obliged to stay with the service provider for, should they want to terminate their contract?
What is the employee turn over in the company?
How well does the company rank on the local IT labor market?
Is the service provider’s Recruitment team on par with their IT market’s realities?
Your Provider’s IT Labor Market
Whenever you are looking for something other than just harnessing a brace of developers to do a two-month gig for you, the local IT labor market’s peculiarities and characteristics must be factored in.
Once you go with a service provider, it may not always be easy to furl your development effort, and launch it elsewhere. That is why, if you are looking to hire, for example, a Java development team over the long haul, it would be essential for you to also know the ability of your service provider’s IT labor market to provide a larger number of qualified professionals within an acceptable time period. In order to gauge this ability, you can contact several companies in the area, or just look up the corresponding statistics on the Web.
In this sense, it would be more prudent to go with a service provider that is based in a well-known software development hub with a large pool of qualified resources available. For example, due to our location in such a hub, finding a senior Java Software Development Engineer takes us the average of 3 months, which is roughly twice less than is required for finding one in the US. However, this may not always be possible for other providers located in some other places in Ukraine.
The existence in the area of other software development vendors engaged in developing similar products would be a significant plus.
Your Provider’s HR & Retention Policy
Besides the ability of the local IT labor market to bolster your possible expansion plans, what really matters a lot is the whether your partner’s Recruitment Team is qualified enough to use this ability to the company’s and your own boon (from our experience, by far not all recruiters should even be there).
See your partner’s recruiters’ profiles, take a glance at the employment initiatives the company has launched, or taken place in (university job fairs, educational student programs and internships, and others), and make a conclusion about how well-established they are on the labor market. Here, special attention should also be paid to the service provider’s retention practices that can be roughly evaluated by the number of various corporate events, seminars, trainings, and business trips abroad.
Most companies also list their employment benefits in the corresponding sections of their websites, and this info should also be taken into account by you. Note, that often software development companies also list their employment benefits in their websites’ corresponding sections, and have separate websites specifically intended for employment purposes.
From our company’s experience, how active a firm is as an employer is one of the more meaningful indicators when you need to evaluate their position on the IT labor market.
As a company that is Java-driven technologically, we organise different events for the local Java community, and run a student IT Incubator for talented beginner programmers. To broaden our exposure to the IT community, we are also currently planning to host a well-known intellectual game with teams of the locally based software development firms competing. For us it is a time-proven truth that such initiatives have a tangible positive influence on one’s recruitment process, and help ensure a steady inflow of qualified candidates.
Finally, as a client, you too have a lot of sway over what, seemingly, lies solely within the realm of a service provider’s HR policy and practices. For one, if you have a large-scale and long-term project, do make this known to all candidates you are going to interview. Do mention the project’s scale, duration, applicable hierarchy, and related career opportunities.
Your Service Provider’s Account Management Practices
Although, this is one of the key points to affect the well-being of a project, it is invariably overlooked by 90% of those looking to outsource, and even seasoned professionals often get down to ironing out the relationship bugs when the negative impact can already be sensed.
So, why not ask the right questions during the negotiations stage, and keep the trouble away from day one?
To be able to do so, one must understand the role of Account Manager well, and be aware of the different variations it assumes in practice, including undesirable ones.
Generally, an Account Manager monitors what is being done by a team of technologists and how that corresponds to the client’s business realities and plans, thus ensuring a business-driven approach vs. an engineering-driven approach.
In other words, in terms of the functionality that your application will provide, you will receive what your business actually needs, and not what your programmers may reckon to be neat to implement technologically.
Oftentimes, it doesn’t really matter all that much which of your service providers employees will double in brass as your Account Manager. This can be their CEO, CIO, Delivery Manager, Senior Project Manager, or an employee whose title with the company is Account Manager.
Regardless of his or her position or title, this person must play the role of an auditor, and regard the project and his or her responsibilities as one. In addition to being able to supervise the project schedule and scope, a good Account Manager must also be familiar with the project’s history, and be in the know about the customer’s plans, problems, and opportunities. And, certainly, ideally, an Account Manager must be an expert in your business domain to act as a consultant.
Note that sometimes major outsourcing companies offer outstaffing arrangements, whereby the role of Account Manager is reduced to the minimum, and, in essence, their responsibility is just to hire personnel to be managed by senior IT staff of your company. Do you employ anyone who would meet the description? Are they qualified enough to do the job? Are you really prepared to bankroll their shuttling to and fro, which, to boot, is not so likely to translate into something of value?
Always make sure to ask your service provider who your Account Manager will be, and what will be his or her responsibilities. Ask them for the guy’s CV, and, finally, request a personal interview with the candidate.
Go for a Full-Stack Provider
Projects vary in size and complexity, but if you have a full-scale project to be implemented, especially one to be implemented from scratch, the service provider of your choice must necessarily be able to support the full-cycle of software development. This means that they must be experienced in gathering requirements and designing the solution architecture from the ground up. To check this, you can request a list of specification documents the company can provide, and look into which part of the relevant referenced projects they have actually implemented.
Ideally, the business analysts and solution architects who have worked on the referenced projects must be involved in implementing your project too.
If your company is a technology start-up, and you want to focus on your business goals, rather than get involved in the project’s technical implementation, the ability of your service provider to support a full cycle of software development is mission-critical, and becomes the determining factor in the selection process.
Moreover, nowadays, most businesses are on the lookout for comprehensive business solutions, as they seek to avoid the need to procure different parts of their solutions from different providers. Incidentally, their motivation is clear: they do not want to spend more time on unnecessary interactions and fiddling with some awkward inter-company arrangements only to hit snags while trying to stitch it all together. In this regard, we believe that you should seek a provider that meets the following requirements:
If your system is to have a GUI, make sure the service provider can handle front-end development.
The service provider must be able to develop a mobile client.
To ensure scalability, the service provider must be experienced in creating clustering solutions.
Your outsourcing partner must be able to test the solution in its entirety.
Hold Personal Interviews with the Members of Your Future Team
And this is a crucial part of the selection process where making an error may cause the whole or part of your outsourcing arrangement to turn belly up when you least expect it and are halfway through your project’s implementation.
What we would do to mitigate risks, is hold two rounds of personal interviews with each member of the team being recruited: a general personal interview, and a technical interview, conducted by one of our lead technical experts.
During the general interview, it is obligatory that you find out about how long each employee has been with the company, and try to sense whether they are happy enough to stay on. Ask them about their career expectations, and see how that fits into your plans.
At the technical interview, among other things, we normally ask our candidates about their technical and academic interests, as well as the areas in which they would be interested in developing professionally. This may help forge better bonds between the members of your team and your project, and prevent unwanted changes during the project’s implementation.
As soon as you have your team ready, the service provider’s Recruitment team can completely take over from you, and handle any forthcoming hires on their own.
Selecting an outsourcing partner for any mid-term or long-term project is a demanding and multi-faceted process that should best be handled while relying on a skilled advisor.
But the most important question you should have a clear answer to before making a decision to outsource, is whether you really need it, and how suitable your project is for outsourcing.