Where and how to: Find your software outsourcing company
After 29 years of software -and client relationships- development, we have some insights to help you choose the right nearshoring / offshoring software development partner.
The case for custom software development
Every company consumes software. Whether you are a manufacturer or a service provider; a startup or an enterprise; and even an experienced software company – the chances are that you need some degrees of software development.
You probably buy software applications that become obsolete within few years: your market and needs change, the software gets more complex and less useful for your specific case, and the two of you are increasingly estranged. Buying different software, in ever-shorter lifecycles, does not really help – it’s hard to find a software solution that does precisely what you need, on long term, without the extra bloat that reduces usability.
Enter customised software:
Made just for you, with your needs in mind
Customized software is tailor-made to your specifications, in order to best serve your business’ needs. The software solution should do precisely what you need, with the appropriate complexity level.
Medium- / long-term, custom-made software costs less. It stays focused on your specific requests, leaves everything else out, and evolves based on your future needs – therefore reduces all unnecessary costs. Always adapting, customized software eliminates the need for buying extra applications.
Easy integration and flexibility
A custom software application can integrate multiple processes and achieve several goals. For example, you can consolidate data entering from several platforms into a single point-of-entry. The result is a less-complex, more-flexible solution.
Maintenance and support
Custom-made software solutions usually provide efficient and reliable technical support plans. This way, your company has full access to a technical support team to resolve issues and consult you on productivity enhancements.
Where to start with software outsourcing
The first step: check your internal software development resources. The chances are that your internal IT team has the needed skills and experience to take on software development projects.
However, more often than not, your team might be missing some parts: a skill, a product owner, an architect, or a tool. This can be the case even with actual software development companies: you don’t always have all the skills, available when needed, at the right cost.
The second step: proceed to recruiting the right developers for the project.
This assumes you have all the answers to questions like: How long will the project take? Will you keep the developers once the project is done? Can you find and recruit the appropriate skills? Does the cost fit into your budget?
If the answers are less than optimal, enter step three: software outsourcing.
Why consider software outsourcing
From our experience with hundreds of software outsourcing projects, we see that the main reasons to outsource software development are:
Access to specialists: the internal teams can usually develop parts, but not the complete software solution. A software outsourcing company brings the appropriate skills and makes sure that your project doesn’t have any blind spots.
Provide modern solutions: compared to legacy-bound teams, external software developers have more freedom to offer and develop innovative solutions. By working with fresh methods and technologies, the outsourcing company can make sure that your software is future proof.
Focus on core activities: especially when software development is not your main expertise, a software outsourcing company lets you focus on your core. You will benefit from increased productivity with lower time and cost expenses.
Operations control: without established processes, software development can easily spiral out of control and burn resources quicker than planned. A software outsourcing company comes with controlled workflows and business stability.
Risk management: software development comes with a lot of incertitude. Will it be done on time? Will it do what it’s supposed to do? Will it stay within budget? A software outsourcing company is paid when functional software is delivered within deadlines, which takes a lot of risk away.
Work-time optimization: by subcontracting specialists, you skip spending time on recruiting, training, extra meetings and team management. This way, you will have more time to build and manage your business.
Cost reduction: you only pay for the personnel with the appropriate expertise for your project. This consolidates with lower costs for software tools, equipment, office facilities and administration. All of these will be handled by the contracting company.
Flexibility of hiring: unlike your own personnel, you hire a software outsourcing company strictly for the project. You spend less time recruiting / contracting, and you’re completely free upon project completion. Flexibility and simplicity will bring you peace of mind.
Where & how to find a software outsourcing company
The hottest spots for software outsourcing companies are Eastern Europe, Asia and South America. Each of them has its own specifics regarding field of expertise, cultural affinity, legislation, pricing, time-zone proximity and impact on travelling.
There are two major ways of outsourcing: offshoring (outsourcing regardless of location) and nearshoring (from neighboring geographies).
At Berg Software, we think that nearshoring comes with multiple advantages:
Similar time zones: similar working hours, calls and meetings can be easily scheduled, quicker solutions to any issues.
Fewer cultural barriers: geographical proximity usually translates into higher degrees of cultural familiarity and proximity. People know more about each other’s environment, possibly speak more common languages than just English, therefore building stronger relationships. Beyond exotic interestingness, an Eastern European company will always be culturally closer to a German company than its Indian counterpart.
Easy travel: there are more travel options, at increased convenience and lower cost. You can meet the software outsourcing on a regular basis without disrupting your timeline or budget.
Similar (or common) legislation ensures that you are legally protected without significant extra costs. For example, EU-based companies are all subject to common commercial and data privacy laws (e.g. GDPR, intra-EU taxation etc.).
For all these reasons, countries like Romania come on top of nearshoring list.
We all google things, so it is only natural to do it for searching software outsourcing companies, too. You might have the nice surprise of landing on a professional website – the first sign of a serious, experienced company.
Just make sure you check that their stack overlaps with your needs, and that there are people who recommend them. In any case, you will want to find people who are passionate about their job and industry. You’re probably looking for a partnership, not a one-time transaction.
For more recommendations you might also want to check in more places, such as Clutch, Linkedin and Xing.
Clutch is a “data-driven field guide for B2B buying” that empowers clients to review their service providers. Reviewer’s identity is always checked, so there are no fake reviews. By getting insights into a company’s technical expertise and behavior, you can then double-trust your software provider of choice.
On top of expertise, make sure that provider’s company size matches your project. Too big, and your project might not get the whole attention. Too small, and they might have troubles delivering. If unsure, have a chat with them.
Skills & What to look for
Now that you have a shortlist, or at least a potential software outsourcing partner, you probably want to check the details. At minimum: technical knowledge, management and development methodologies. Ideally: industry expertise.
Moving beyond their website, this is what you can do:
Call: it’s easier than ever to schedule a call, where the software company can present themselves, you can introduce the project, and both of you can get a first insight whether you match or not. Although costs can come up, this is not the most important factor (at least, not in this phase). You will first want to understand whether the service provider is able to deliver, without delays and problems.
RFI / RFP: to further check if their experience and skills are what your project needs, you can prepare an RFI (Request for Information) or an RFP (Request for Proposal): a questionnaire to request relevant information about partner’s qualifications.
Within the RFI / RFP, you can ask questions like:
– What kind of projects have you developed so far?
– What technologies do you specialized in?
– How many developers do you have and what are their seniority levels?
– How much time would you need to round-up a team for my project?
– What is the price structure?
– What is the invoicing process?
– How do you communicate during the project?
– What is your approach of software development process?
– Do I own the code?
– Will you do the maintenance after the launch?
Watch how the answers are formulated. See how carefully (or not) your request is processed. These are good indicators about how the software company will treat your project in the future.
Interview: if you’re happy with the RFI / RFP answers and interaction, then you can proceed to interviewing the key people for your software project.
Depending on your own (/your company’s) software skills, you can talk to technical people such as Software Architect, Senior Software Developer, DevOps.
If software development is not your main field, you can talk to your (potential) direct contacts: Chief Technical Officer, Project Manager, Scrum Master. Ideally, maybe you can have a trusted software architect join you for this interview, in which case you can get into deeper technical details.
Most probably, supplier’s stack will never overlap 100% with your requests – and that’s ok. With so many software technologies on the market, more than one can be deployed for your product. A strong provider, with experienced developers, can easily adapt existing technologies to your needs. It is more important to have talented developers with experience and vision, rather than high connoisseurs of a single technology stack. Moreover, in some cases, a different stack can actually be better than the one you considered in the first place.
The point is: if you get a reassuring sense of experience and adaptability, go further.
To trust or not to trust
References: to make sure the software company is serious business, ask for customer references.
Just be aware: since the customers are usually CEO / CTO / Project Manager / Product Owner and similar, it might be difficult to interview them in person. Also, their companies’ internal rules might prevent them from publicly speaking about the ongoing software development projects. That’s why they usually prefer to do reviewing only once via an online platform (see Clutch), so any third party could have access to public and transparent information.
Office visit: once the know-how, the price and the credentials are clear, you will want to make sure that you really can trust the supplier. The best way to do it is to visit their office / headquarters, where you can meet the people who will work for you, in their own environment.
Ideally, their location is within a day’s trip, so you could arrive in the morning, attend the meeting, then get back home in the evening or early next day. Spending the evening with the software company, in their city, provides a great opportunity to know them better.
Start small: if your project can afford it, try starting with small steps in order to get to know each other and build trust. A small project of 1-2 weeks minimizes the risk while showing whether the supplier is suitable. Make sure you test communication methods, transparency, compliance with deadlines, and professional level.
If you’re not a software development but have a large project on the table, you might not have a small project to start and test. In this case, you can take an agile approach: break it down into several small iterations of 2-3 weeks each. The first one or two of them will give you the chance to evaluate. If the results are not on par with what was agreed, you can terminate the collaboration and use the resulted assets to advance your project with a different software development company.
By starting small, you reduce to minimum the chance of selecting an inappropriate partner.
Quick overview / Checklist
To make sure you got things run smoothly, here’s your quick checklist:
- Call / presentation:
— Company profile
— Company culture
— Your project & your need
- Technical interview with CTO, Architect, Senior Developer, DevOps.
- NDA / Non-Disclosure Agreement is a must if you need to communicate sensitive project info to the potential software supplier.
- Customer references:
— request direct contact with previous clients;
— or check online reference resources (e.g. Clutch).
- Visit supplier’s headquarters: although optional, it can dispel your doubts (or not).
- Sign the collaboration contract
- Test project:
— one more, final checkup re. skills and processes;
— you can use it to build trust.
That’s it – you are now ready to go out and get your most perfect software provider. As long as you follow the minimal steps above, you should be safe. Should you need further info or guidance, feel free to get in touch.