We decided to compile a list of the TOP-5 mistakes when outsourcing your software development. We at Axon believe that you can avoid these mistakes when you are acutely aware of the possible pitfalls. So, grab your cup of coffee, a notebook, and take notes.
A software project’s success depends largely upon two things - a client and a vendor. You can’t “throw your requirements over the wall” and expect a vendor to provide you with excellent solutions. You will need to participate in the development process on an ongoing basis. And by “you” I mean your company and the person assigned to the project.
You will need to assign someone who will be completely responsible for the project on your end. It might be a project manager, CTO, separate software engineer, etc. This specialist will be primarily responsible for leading the project from your end and will include:
- Gathering requirements and suggestions from all stakeholders (or organize communication between the vendor and your stakeholders), prioritize these requirements, and provide the vendor with all the updates;
- Taking part in daily communications with the vendor, answering developer questions;
- Checking project status, prioritize tasks;
- Updating the backlog together with the vendor project manager.
The success of the project will largely depend on your ability to provide the vendor with actual real-time information in a timely manner. So try to allocate your best project managers to these projects.
Pure cash flow planning is one of the most common mistakes and why most software projects ultimately fail. Especially for early-stage startups. Project owners often overestimate their financial capabilities and spend most of their money before the project is completed. So vendors have to pause development because they need additional capital to pay salaries to their developers. They also can’t afford to cover costs in terms of future money earned. In the end, there is no guarantee they will receive a financial windfall in the future.
On the flip side, vendors often provide clients with underestimated quotes to win a project. They expect clients to be willing to pay more if they already started the project with them and won’t actively search for other vendors to proceed with their development projects. Moreover, they often won’t inform clients promptly about budget changes in advance. It often leads to the ruin of a relationship between the vendor and the client, but the last one standing often has to finish the project on a deadline, so they don't have the opportunity to look for new vendors or to pay additional costs incurred.
Before starting a project a good vendor will provide you with a quote with a preliminary budget you will need to allocate to the project and the approximate time it will take. The best vendors will provide you with a Gantt chart - a project schedule that indicates each task’s start and finishes dates of each task and what resources will be needed at every stage. So you will be able to better plan your project capital.
A good vendor will most likely inform you about every time and budget change that occurs if such an event happens during development. Moreover, they will notify you about such changes if you decide to change the scope or correct some tasks. All of these minor changes can change the project budget, so you won’t be in for any unexpected surprises closer to project completion or a much bigger invoice than you initially expected.
Most clients expect a proactive approach from software vendors. And there are usually no problems with that. Moreover, the first indication of a good vendor is an exacting and proactive approach in their work with clients.
Problems may arise when clients want vendors to define the list of features for their product and manage the backlog by themselves. This scenario is completely possible, but the end result is, you get the vendor’s software product, not yours. There will be too many features you don’t like or may not understand. Because the software vendor doesn’t know every nuance related to your business as you know, they may be unaware of all your internal business processes.
The client’s primary work during outsourcing their software development is to compile every feature idea and document requirements that are added to a document known as a Software Requirements Specification (SRS) or functional specification document together with a vendor. The vendor may make suggestions about what features are necessary and what can be postponed, but the final word is from the client.
So, when hiring a software development vendor, be ready to actively participate in requirements gathering and managing the backlog. As the client/consumer, it’s your primary responsibility.
Some entrepreneurs want to develop “breakthrough” software solutions but have little to no idea as to how they will attract users. Their thoughts usually focus on people willing to buy their solution simply for the amazing quality. Unfortunately, that mindset doesn’t work anymore...
Yes, you can develop an incredible app with various features. However, the market is saturated with solutions today, so marketing and sales channels are more important than a platform or solution’s number of features.
You should always carefully consider how and to whom you will sell your product, write persuasive points as to why users should buy your product, calculate the preliminary customer acquisition costs and choose the correct sales and marketing channels, etc.
The software development vendor won't help you with that. They will develop a solution based on your requirements and deliver on production. Once delivery has occurred, your primary work starts - the marketing and selling of your product to your intended target users.
Moreover, please don’t forget about customer support - one major thing omitted is user acquisition, and the other is user retention. A good software vendor will offer you technical support from their side. You should diligently organize the process and assign responsible specialists from your side that will lead the customer support campaign.
The first time I heard about this mistake was from Darja Smite - a Professor of Software Engineering at Blekinge Institute of Technology in Sweden and a part-time research scientist at SINTEF ICT.
Some clients are driven primarily by their self-interest, and try to establish a hierarchical power relationship between them paying for the services and the contractor. Their primary goal is often to get the job done cheaper, and they expect software outsourcing to be a cost-saving initiative.
The obvious result of such an approach is an “us and them” attitude and a “thrown-over-the-wall requirements” implementation which often leads to cost overruns.
The research into IT outsourcing indicates that successful collaborations are not based on a “win-lose” power relationship but “win-win” long-term partnerships which are instead, characterized by a high level of social integration of engineers and a “we are in this together” attitude.
So, if you decide to outsource your software development, try to follow a “we are in this together” attitude and deal with contractors as partners, not adversaries.
Now, when you know the possible mistakes, we hope you will avoid them and the world will see more successful and completed software projects.