If you today search for outsourcing and software development in Asia you will find a plethora of companies providing product development services. Asian product development companies attract startup companies all over the world. This is truly a thrilling business and which I am very happy to be taking part in. My own perspective on this is as a consultant working for Hire Quality Software providing software product development teams to companies all over the world of various sizes.
Software product development is challenging for many reasons and startups more often fail than succeed with this venture. As a startup, you have a choice if you want to employ developers and develop the product in-house or if you rather outsource the development work to someone else.
Here below are 8 areas where things might go wrong when outsourcing software product development.
- When doing product development less is more and to be able to succeed you need to start with a small scoped project. When talking to clients I always emphasize the need to scope the project to what we call a “Minimal Viable Product” which only contains the necessary features needed to go to market. If the product is a success you can always add more features later.
- Be prepared to cancel the project. If for external or internal reasons the prospect of succeeding with the product diminishes, then be prepared to cut your losses and cancel the project. It’s mentally hard to do, but if you, and/or your people in your surroundings, no longer think that you can make money out of this product, then you need to reassess the situation and make a decision.
- Learn from your competitors and take inspiration for areas like graphic user interface and user interactions. Don’t try to come up with totally new ways for how things work. This is especially true when you are outsourcing the development, are working with a limited budget and you need to get the product right the first time around.
- Be careful when it comes to outsourcing requirements gathering and solution design. The best outsourcing companies out there all rely on helping the client with system requirements and solution design during the sales process. The problem with this is that when the project is won the incitement for supporting you with further detailing the requirements might be reduced when the superstar system analyst/architect goes on to the next sales lead. The teams “deliverable” will be delivered to you and you need to have access to people in your organization who can give necessary feedback and give details to the developers for how the product should work. It might not sound like it, but this is a really big issue in many projects
- You have an objectively bad idea for a product. I don’t personally get involved in a project if I don’t believe in it myself. But most outsourcing companies don’t have the decency of saying “No” to clients in a similar situation. On the contrary, most outsourcing companies have no issues with taking your money even if they don’t think you can succeed with your product.
- You end up developing a “good product” but are then stopped from monetizing it due to rules and regulations. For example, I have seen finished mobile apps that can’t be uploaded to App Store, and portal solutions which can’t be used by the indented groups of users due to government rules and regulations. Make sure to research this beforehand.
- Neglecting the need for graphic design and markups early on in the project usually leads to big issues. Most people can’t make correct assumptions for how a feature will work without being able to see a user interface design for it. Starting a project by spending a significant amount of time developing API and backend code and relying on feature descriptions and use cases without any graphic / user-interaction design is a road to a failed project.
- You have too high ambitions for the product. Make sure to have a reasonable definition of what a successful project means to you. Despite challenges with outsourcing, in more than 9 out of 10 times you will end up with a finished product. But only a few of these products will match the expectations when it comes to actual market adoption.
Based on the list above, a summary of my recommendation would be to make sure to have a “short time to market” strategy and aim for a minimal viable product. Be prepared to stop the project in advance if it ends up not progressing as expected, even if it means that money is lost. Furthermore, take inspiration from competitors and make sure that the system analyst/architect has good enough reasons to follow the project through. Also, make sure you have your idea validated by others and that it is feasible according to all rules and regulations. Make sure to start with wireframes and graphic and interaction design, since without it you will not get a full grasp of the requirements and you will end up with something that does not work as expected.