The fourth article in our “CTO asks” series, addressing real issues, which CTO’s need to tackle in their daily work. This question was asked by Gianluca Bisceglie from Visyond.
What should every CEO know about outsourcing software development?
XSolve’s founder Piotr Majchrzak answers his question:
No one tells you how to outsource. They just tell you that you should. This is the age of outsourcing, when it seems that any task that can be passed on already has been. Even the unicorns such as Facebook or Bla Bla Car outsource their software development despite the fact that software is the core foundation of their business.
Unfortunately, with popularity comes choice, and confusion. With the world to choose from, it’s not difficult to find outsourced services, even software development, for just a few dollars an hour. Tempting. Very tempting. Although not so much when you’re left with an unusable product and terrible code.
The question is, if you have to outsource your software development, how do you find your way through the jungle of service providers and find the right one for you? This article offers the 5 biggest problems of software outsourcing… and their solutions.
Software Outsourcing Problem #1: Inexperienced Partners
Assuming the goal of your software projects is to produce the best possible product (and why wouldn’t it be?) then you need to work with the best possible development team. But how can you know which is the best for your project?
- Look for experience – an organization that has been in business 10 years or more know their way around a project; they know what can (and does) go wrong and what to do about it.
- Check past clients – not only international clients but ones that the organization has worked with long-term, on multiple projects; this suggests that the work is good and worth going back for.
- Look for flexibility – can they grow with you and your project? If you suddenly need more developers can they handle that request or are their resources insufficient for your possible needs.
Tools like Clutch.co offer detailed information and verified reviews of service providers (but be a little wary of a listing with all 5-star reviews – if it seems too good to be true, it probably is!)
Software Outsourcing Problem#2: Teams that don’t live up to their promise
The big problem with outsourcing services instead of keeping them in-house is the reduction in control. Suddenly, you are not in charge of resourcing, personnel, and so on. And the service provider is almost certainly providing services to multiple clients and may sometimes ‘swap the pieces around’. The challenge lies in ensuring you have the right people working on your product.
- Check the background and skills of each team member. You need resumes for everyone. You’re looking for professionals with technical mastery and who can also work well with others.
- Look into how long the team has worked together, and on how many projects. The ideal is to have a ready-formed team that is already high-performing having worked through those norming and storming stages.
- Choose a dedicated development team; i.e. you’ll have the same people working together on your project from beginning to end. The last thing you need is the personnel of your outsourced team changing on a regular basis. Do not allow them to be distracted as it will hurt badly their efficiency badly.
- Finally, you need a team that can operate intelligently, for the good of the project, with unnecessary supervision; in other words, they take responsibility and don’t hide behind the Project Manager.
Software Outsourcing Problem #3: The communication is lacking
Ninja-level technical skills are great but a really successful project depends on more than that. The heart of a successful project lies in the partnership between you and your development team, and that depends on the quality of the communication.
- Be alert to how responsive the team is in communication terms. Do you get prompt answers to your questions? Are their language skills up to scratch?
- Are you getting enough communication? Take a moment to count up the number of emails, phone calls, face to face meetings (these should be at least quarterly) and conference calls. Enough?
- Then there’s quality. Are they ‘good’ communicators? Do they listen to you as much as they talk? Do their solutions genuinely seem to take into account your needs and goals?
- Do their communication tools (e.g. Slack, Jira or GitHub) suit your ways of working and your culture?
- How transparent is the company? If the service provider is transparent with their employees it is a good sign that you might be treated equally well and that you will be getting honest information from your remote development team. With such fundations you can build a true partnership not only a supplier-vendor relation.
Software Outsourcing Problem #4: Unfit methodologies
Project tools and methodologies are numerous and if your development team use one that isn’t compatible with your needs then your project will suffer.
- Enquire about the service provider’s preferred methodology – how do they plan to deliver your product on time and on budget? Personally, I’d warn against ‘waterfall’ project processes. They’re too linear and inflexible and don’t really fit the software development process. You need an agile approach.
- Here at XSolve, we recommend Scrum. Its cyclical and iterative approach to development gives you earlier practical results, earlier value, earlier testing, and a more flexible approach to direction and priorities. To the uninitiated Scrum can seem a little chaotic due to its non-linear nature but we know that it is actually a predictable and efficient method for developing software.
Software Outsourcing Problem #5: Your outsourced team are from an alien culture
Culture underpins everything. If you end up working with an incompatible culture then communication will be hamstrung, the team’s skills won’t matter, and you won’t get the product you’re looking for.
- Before you can judge compatibility, you have to know yourself! What are the values and priorities of your organization? Are rules and hierarchy hardwired into everything you do, or creativity and collaboration?
- Once you know yourself, you know what you’re looking for: a team enough like you to be a tight fit, but unlike you in that it provides the things you don’t have (in this case, software development skills!)
- Of course, in this day and age, there are also national and ethnic cultures to consider. Conceivably, you might be based in Paris but your software company is in Delhi, for example. Know and understand the differences and make no assumptions!
Really, my top tip about outsourcing would be: if you don’t have to, then don’t. A lot of the above problems evaporate if you keep things ‘in the family’. But that’s not always possible. Certainly, in software development, we are facing a talent shortage, rising costs, a growing global freelance economy, and a price war. In such circumstances, it can be very sensible to outsource. But if you do, remember you are faced with the above difficulties: finding an experienced, skilled, team of collaborators who use the right methodologies to get the job done.