From one of my earlier posts, the one about how to choose a software development company, based on my own experience as a CEO, you already know my personal advice, that is :
This time, let’s expand it with more facts and tips about development companies and let’s be realistic about it.
Hard facts about software development outsourcing
#1 Abundance of agencies, yet it is tough to find a fit.
The market is excessively saturated, with literally hundreds of companies in every country. It is going to be hard and take time to dig through the colorful designs and sales pitches of companies claiming to experts in everything. Make sure not to get distracted and focus on finding a right partner, who is not just going to treat your project as another one in their “assembly line”.
#2 Software development is more than writing code.
Software developers are responsible for much more. They might impact end customer experience, revenue flow, brand identity, content, and so on… pretty much every aspect of a business. A good software development company will go beyond and try to craft a useful product, contribute to the design, and assist in deployment.
#3 Competition is intense.
All skilled and experienced developers are employed, especially in the field of mobile app development, for instance, where even junior and middle-level developers are in demand. Later on, many become frustrated to learn facts like 60% of mobile coders have delivered fewer than 5 apps, and about 20% have delivered between 5 and 9.
#4 It’s better to produce an exclusive product/service.
Yet, with all these organizational challenges, one has to come up with a unique product that stands out from the rest. The market doesn’t tolerate similar products, thus it wouldn’t be wise to imitate a competitor’s product and expect the same results. Usually, it’s better to choose custom development of a product with individually designed features.
#5 Software projects are costly.
And most of them run over budget (up to 50% or more). The average project cost range is $15,000 to $150,000. The average project also takes about 1,000 hours, while hourly rates are in the range of $50 to $400. Software development outsourcing has been generally seen as a way to reduce costs, but in fact, in most cases cheap development companies are weak. A fair price-quality balance can be found in Central European countries like Poland, for example.
#6 Software outsourcing may fail.
In 2012, because of a failed software update, millions of RBS bank customers couldn’t access their accounts, and the bank was unable to conduct any transactions for few days. This is just one example of how crucial software is nowadays, and according to different estimates, 25% to 50% of outsourcing projects fail.
Software developers can work in all three areas (freelance, full-time, contract) due to the fact that they can execute tasks remotely, and partially due to high demand as well. Typically, freelancers are hired for a particular project, and the agreement is plain: do the job and get paid. Freelance developers often undertake several projects at a time, which is a risky factor you have to be aware of.
There could be a lot of reasons: from business operations out of sync with project requirements, management failures to poor specifications and measuring metrics. Moreover, many companies outline the documentation in hundreds of pages and then hire junior coders to blindly follow that without any creativity.
So these questions arise: How can we make hiring a software development agency less difficult? How can you avoid common mistakes that cost money? What do you need to know before hiring a software development company? The prime goal is to find the right company for the right type of project.
Here are few basic things to know.
Here are few basic things to know.
> There a few different types of outsourcing.
There are at least four software outsourcing types:
Each approach, surely, has its pluses and minuses. Particularly, onshore development offers high quality, face-to-face meetings and a good fit for 4-12 month projects with large budgets. Offshore development is beneficial to companies with clearly defined projects seeking a more cost-effective solution.
Next, be prepared for close collaboration and open lines of communication lines. Though it sounds cliche, building software is like building a house – you know what you have in mind and have to pass it to a contractor cleary and supervise regularly. A good relationship will help you start on the right foot, because, other than the technical side, you’ll be working with people. And talented developers can not only code but come up with creative solutions and ideas.
> Have defined expectations and communicate them
Moving on, has it ever crossed your mind that there are several ways to code the same thing? Non-programmer people often aren’t aware of it, and, what’s worse, may be under the stereotypical impression that a programmer knows every technology. But actually, there are two sides of the coin. Flexibility and creativity on the one hand, and possible headaches with different coding styles, frameworks, tools, etc., when multiple people are involved, on the other.
The better prepared and defined your project is, the easier the company selection and hiring will be. Define your strategy by answering questions like what’s the purpose of your application, who’s going to use it, how does it help, what field will it be in and who are the competitors, what platforms will it run on, etc. Create a list of features then prioritize them. Make annotated design and technical requirements, outline UX, user flow and navigation.
> Costs vary
What is the cost going to be? If you Google the cost of building software/application, you’ll see the general answer that goes something like this: “Apps built by large top-companies are likely to cost between $500,000 and $1,000,000, apps built by onshore agencies cost anywhere between $150,000 to $450,000”. Bottom line: expect $100K to $500K range for a professionally developed app, which will normally take around 4-6 months.
> Important things to look at
What to look for when hiring a software development company? After sifting through options you’ve googled or personal referrals you’ve received, make a list of 10-15 companies. Look at their websites for an initial assessment – projects, experience, expertise, quality of content, etc. Also, pay attention to “red flags” like bad reviews, complaints, or even lawsuits – study the issues and how they were resolved.
After that, you’ll be able to narrow down the list to 3-5 companies – a shortlist. You can get a quote for your project/idea and access how they communicate, their tech stack/expertise area, the current state of things, staff questions, and so on, in order to choose the one that’s best for you.
The next stage will be negotiations and a contract. It actually could be a set of contracts – masters services agreement (MSA), a non-disclosure agreement (NDA), statement of work (SOW). Just make sure to include a non-compete clause and intellectual property rights clause into a contract. And payment terms are, surely, going to be the centerpiece of such outsourcing contracts.
Questions to ask
When you have a potential software development partner and you start the talks, there could be a lot of buzz words and tech terms. You should be prepared not to let it turn into a cacophony like this:
There’s a lot to go through: business questions, process questions, people questions, questions about the schedule, costs, technology, etc. They should be able to walk you through their development process in a way and in words you’ll completely understand. At Brainhub, for instance, we advise customers to have three groups of questions:
Find the detailed sequence of questions here.
Summary of tips for hiring developers
Let’s summarize what you need to know and do to hire a software development company:
We wish you luck in finding the best one!