Outsourcing a software development project is full of uncertainties.
After many years of managing hundreds of software development projects, teams, and clients, I’ve learned to recognize – very early on – whether a project has a high likelihood of success. It generally boils down to one thing: Are you and your development team acting in partnership? Are you each leveraging the skills and talents of the other for the benefit of both?
Here are five key Don’ts & Do’s for companies looking to outsource a software development project.
Whether you are augmenting an existing IT department to develop a skunkworks system or bringing the next great mobile app to market, following these recommendations will help you establish a great working relationship with your outsource development team. That relationship is the key to your software project’s success.
1DON’T overly weigh an hourly rate when comparison shopping
DO ask for a detailed breakdown of the project phases and the estimated total cost of each
Developers and development companies come in all shapes, sizes and skill levels. Knowing a dollars-per-hour cost tells you very little without knowing how many hours a team will need to spend. Instead, what you want to determine is:
- Does an estimate or quote cover everything necessary? For instance, does it include adequate time and expenses for testing and bug fixing? (It’s a fact of life – no matter how great a team you hire, there will be bugs.)
- Assuming the quote sufficiently covers everything, what are the total dollars and real-time estimates for the project?
This is where a fixed-price contract can be a life-saver for you. It incentivizes the development company to truly understand the full scope of your project – and be in sync with your expectations – before putting a number in front of you. It also requires them to assume the risk of underestimating the effort.
2DON’T simply submit the project to a formal bidding process.
DO engage personally with a short list of potential software development companies. Choose one based on your direct interactions.
You can buy a diamond ring from Tiffany’s, Kohl’s, or the private jeweler down the street. Choosing the shop that is the right fit for you depends on more than just the cost. Availability, quality, selection, uniqueness and the shopping experience are all part of your decision-making process.
Custom software development is not a commodity. Who you partner with is critical to the success of your project. Take time to get to know each of your potential vendors and then decide with whom you want to partner.
At Digital Mettle we seldom respond to open bids. If we can’t ask questions or provide advice up-front, there is little opportunity to differentiate ourselves from our competition except based upon price. And as I previously mentioned, price alone is not a good way to comparison shop for development services.
3DON’T bite off too much development at a time.
DO roll your technology out to users in smaller steps.
I was once part of a team that was developing a system for transmitting digital data over analog television signals. The product owner was so concerned about potential competition that we spent many extra years – and he spent hundreds of thousands of dollars – trying to “perfect” the system before releasing it for public use. In this case, “perfect” meant the entire system had to work on a single computer chip. At the same time we were working out the last kinks, the government finally approved a new digital TV standard which instantly killed our project.
The moral of the story? Get users familiar with new systems and workflows in incremental steps.
We often encourage our clients to define an MVP (Minimum Viable Product) and work toward that for a first release. In many projects there is a large amount of pressure from the Sales and Marketing departments to ‘scope creep’ by adding features during the initial development process. The answer to that pressure is a well thought out (but flexible) release plan where every stakeholder can see exactly when their key feature will be made public – not just the initial release date.
4DON’T start software development without having sold the project internally to all stakeholders.
DO utilize your development partner to help you sell the project internally.
At Digital Mettle, we are always on the lookout for the “Sensible Maverick.” The Sensible Maverick is an executive willing to take a risk and shake up their organization in order to make big long term improvements.
These execs are mavericks because they are willing to put their own reputation on the line by taking on the task within their own sphere of influence. They are also sensible because they know that, ultimately, they must get buy-in from their peers and the Board. They know that a great idea can make them a hero but it can also be squashed by internal politics. They are calculated risk takers, with an emphasis on ‘calculated.’
Being viewed as a development partner, rather than simply an outsourced vendor, we can be a valuable secret weapon for getting internal buy-in. We excel at showing how intra-departmental systems can become inter-departmental assets. We ‘grease the wheels’ by helping to formulate a forward-looking plan that shows benefits throughout your organization. We establish good working relationships with existing IT departments and other corporate partners.
5DON’T get technology locked into a one-size-fits-all platform.
DO discuss your future plans and goals with your software development team.
We all know the phrase ‘If all you have is a hammer, then every job looks like a nail.’ Beware of development teams that are hardwired to a single technology stack. Expertise is certainly a good thing, but problem-solving requires experience in using (a variety of) the right tools for the right tasks. Ask your prospective partner to tell you how they would implement your solution using multiple competing platforms and whether there are off-the-shelf solutions that might be cost-effective to leverage.
Be sure to share with your development team ideas and plans for the future. Knowing how a system might be expanded greatly helps your partner when developing the up-front architecture. Think of it like building a house. If it’s likely that you might add a third floor in the future, it’s best to create the proper foundation to support it right from the beginning.
When searching for and engaging with a custom software development team, look for a company who will partner with you, not simply act as a vendor. Develop the relationship before developing the software. These two things will not guarantee success, but will give you the greatest probability for a successful software project.