Choosing the right software development company for your business is like finding the right person to marry. A reliable provider will help your business to grow and you personally to thrive. So usually a collaboration with a good provider doesn’t end with the development of one product, and in some cases lasts for decades.
But how do you choose a software development company that could meet your requirements? On the one hand, there are large well-known companies with high levels of skill and end-to-end offerings. On the other hand, there are the small ones and new niche innovators, the startups which fit their particular solutions into the overall landscape. These include specific solutions for certain areas, businesses, or even regions.
Here is a list of the 15 questions a company should ask before starting to work with a new software development company. The CactusSoft team hopes that these will be of great use to you when selecting the right software outsourcing partner to meet your needs.
Stage 1: Needs and importance
Are you sure you need these new software solutions and services? What about your team? Are your people ready to meet a new disruptive change?
Think about it and during the first stage, keep in mind these five questions.
1. Why should we buy this software now?
Honestly, what’s your reason for buying a new technology? If the answer is just about your successful competitors that already use the same technology, think twice. Compatibility is one of the points. You would be surprised how many implementations fail because someone spent $20–30 million on a software solution without understanding the integration points with their legacy systems, etc.
If the same software solution brings value to business in other companies, that doesn’t mean that it will work in your case.
2. Do we really need to buy the product or do we need to consider re-engineering our business processes?
Before starting to select a software development company, spend ample time clearly defining your use cases to gain clarity on what you need from the software based on your business goals. Talk to your employees working at different levels, analyze your business processes, and evaluate the problems.
In some cases, before you spend a big pile of money it makes sense to ask for business transforming IT consulting services, which include business process analysis and an IT infrastructure audit.
3. Which features (including reports and analytics) are important to us?
How can you choose the best provider if you don’t know exactly what you want? Form an outline of the solution you want in order to meet the objectives.
4. Does a new product add any value to our business?
The main objectives of any business are to find out what a customer wants and give it to him or her faster than your competitors. So, think about if a new technology will help you offer better quality than other companies at the same price.
5. Are our people or users ready for a change?
In some cases, people are ready to embrace some of the efficiencies but they are not ready to experience big, disruptive changes. And that’s normal. So, make sure that all these people from your team who are not technically savvy get the right training from the technology providers.
Another thing you can do is to make sure that all these non-IT people do their homework and educate themselves. A huge part of succeeding with new technology is knowing where to start, and that’s where educating yourself about the technology market and landscape factors in.
Stage 2: Exploration and fulfilment
6. Is the product secure enough and is it compliant?
While you are not using the product or services, you will not understand its pain points. The way to evaluate your fears is to go out into the field and reach out to the people who are using the same technologies to find out where the pain is.
The same goes for the post-implementation process. If you have a problem with the solution, ask the customer group, as one of them will almost certainly have solved that problem before.
7. Have they done significant work in the market?
They should be experts in the technology on which they work. If you want a new Sales Support Platform and are thinking about microservice architecture that can easily expand the functionality in the future, a potential software development company must have the same case study in their portfolio. So, ask them if they have done any project similar to yours, regarding the industry/technology/product features.
8. Can they easily provide case studies, references, and client satisfaction statistics?
Check their reputation with others. Check the clients’ and customers’ testimonials/reviews on platforms like Clutch, GoodFirms, DesignRush, LinkedIn and Facebook; connect with their clients through social media channels to learn their opinion about the company and talk to real people via online forums and social media.
If a potential software development company doesn’t have a customer group or they are not keen for you to talk to them, move on to another provider.
One more point. Do you feel relationship chemistry between you and a software development company? Yes, it exists. And having it will help you avoid communicational problems.
9. Did the demo meet or exceed our expectations?
It’s not all about the code and technology behind your product – it’s about business. You personally know it, but what about a software development company you are going to work with? Your provider should understand that and advise you from a technical perspective, helping you focus on priorities.
If you had a couple of meetings with them, and you have a strong feeling that they don’t fully understand the problems that a new solution has to solve, start to look for another provider.
Ultimately, they have to do whatever is necessary to help your business to succeed, not only build the product.
10. Who owns the data and how do we get out of the contract?
You pay for custom software, so ask the software company about ownership of code. Check an agreement and ensure you have ownership of the ensuing source codes and the creations from it – no one wants to pay for development of a solution that could be sold to your competitors.
And the truth is that you can like your vendor very much, but one day you will leave it. Think about your divorce before it happens and get proper agreement about safety and security issues and how you get your data back in case you leave the vendor.
Stage 3: Planning and strategy
11. When will we start and how long will it take?
Do you have a deadline? If the answer is ‘yes’, the company interested in further collaboration with you should be eager to start working on your project as soon as possible and show you the progress after each sprint.
But keep in mind that there are limits to how quickly software can be developed, tested, and delivered. Don’t confuse the construction of software with the construction of buildings. Writing software is not a construction and it isn’t even design. Most of it is gathering detailed requirements and writing them down in unambiguous form (code).
Remember that the speed of project implementation shouldn’t affect its quality; therefore, try to set a schedule that has a buffer of additional time.
12. How tightly is scope defined and how will the change be managed?
Change management depends on the model you choose.
If you have made up a detailed and clear project plan and have prepared all the necessary documentation, you’d better choose the fixed price model. But the scope and cost will be tightly defined. Making changes will require additional payments and additional contracts.
Those customers who don’t have a clear project plan, specification or a well-documented product choose the “Time & Material” (T&M) model. Therefore, the customer pays not for the scope but for the man-hours the contractor’s team spent on the software’s development and deployment. Using the T&M model, you can make changes whenever you want and pay for the result.
13. How does the vendor charge for support?
There are no 100% perfect solutions – there is always a chance that things might go wrong after delivery, especially in the case of software.
So, discuss the warranty period and make sure your software development company provides direct access to the technical team and offers good support, maintenance, cloud-based updates and upgrades and troubleshooting services for a fair period of time after sales at no additional charge.
14. What is the vendor’s upgrade and update policy?
Ask your potential software development company about their upgrade and update policy. If it’s once a year or even less, find another partner. Technology changes every single day, and tough business conditions will not allow the updating of your system only every year or two. Remember that an update process is regular thing – if it is not an essential part of a project for them, move on.
Another thing you need to find out is what percentage of vendors’ last updates were changes requested by the customers? If they don’t understand what you are talking about, move on. Customers use a product on a daily basis, and often know its pain points better than the vendor itself. The vendor must be listening closely to their customers – it is win–win collaboration for each one.
15. Do you have an exit plan?
An exit plan doesn’t mean you are ready to stop working with a software development company. It just means that you know what your exit will look like. Strategic exit plans allow you to maximize the value of your business.
Eugenia Bereziuk is a business analyst at CactusSoft, an international organization that provides a full range of services required to build, adjust or improve HR or Business process in a company. She was a reporter and an editor for a decade and worked as the head of a financial department, and then as the chief of special reporters. In addition to her primary job, she is the chief editor of CactusSoft blog and WISP HR blog, where contributors discuss ideas around technology, the digital world, human resources, and HR tech. Tweet at Eugenia Bereziuk.