How to find the right software development partner for your business
We are going to show you a step-by-step approach, to help you find the right software development partner for your business.
Most likely, you have already used your favorite search engine to find a long list of potential candidates. Ideally using very specific search terms geared around your industry or use-case, such as “university elearning software development company” rather than just “software development company”.
But now, you have to properly evaluate all these candidates fairly and effectively – so you can be sure that by the end you will have a high quality software product.
So what is the best way to achieve this? Here we will give you some answers.
Step 1 – quickly filter your candidate list to eliminate the non-viable options
Not all software companies are operated equally, and the quality of work that they provide greatly depends on their business model and technology approach.
This means we can apply some quick criteria to eliminate the obvious mismatches.
Here are some things you should check on their website:
- Do they seem overly anxious to take on any job? (Tip: such companies usually rely on “quick sales” and fast turnarounds to be profitable; rather than delivering quality software.)
- Do they specialize in the type of software solution you’re looking for? (Tip: quickly eliminating generalists is a great way to save time evaluating candidates.)
- How long has the company been operating? (Tip: check their domain registration date instead of trusting what they say on the website.)
- How many developers so they employ? (Tip: <10 are generally not enough for anything but the simplest / smallest software projects.)
- How many clients they have? (Tip: basically you just want to see a list of customers somewhere, and be wary of any company that cannot point to a portfolio of successful work).
- What size clients do they typically serve? (Tip: you generally want to deal with a software company experienced in working with a company of your size)
- If they have local representatives, or at least worked with your country before? (Tip: it generally saves a lot of time working with a partner that already knows your business culture).
Hopefully these quick filters have helped you narrow down your candidate list. At this stage you generally want to have between 5 and 10 candidates available for the next step.
Now you will contact the remaining software companies on the short list.
Step 2 – evaluate shortlisted candidates based on their first response
At this stage you will want to apply stricter criteria, so you are left with at most 2 or 3 of the most promising software development candidates.
The best way to do this will be to contact all the candidates on your short list, and see how they respond to your inquiry. This first response will provide you with a lot of key information to help you identify the best candidates – at least if you know what to look for.
Here is what you should look for in order to determine the finalists:
Prepare for the first contact
Your first contact should be very formal and straight to the point. So make your introductions as you would normally, and then write a few sentences to describe your project.
You don’t need to provide extravagant detail just yet, but make sure to provide a basic idea of what you want the software to do, and what goals you are trying to achieve with said software.
Then request the following information:
- Standard work process description
- Relevant work experience
- Hourly rate or standard billing practice
- Cost and turnaround estimates
- Any available reviews, testimonials, and/or case studies
Carefully check the work process description
The work process description is the most important part of the information they will send, as it provides you a feel for how the future work will be organized.
It is important to check if the document addresses such points as:
- How the product release process is organized
- How change requests will be handled
- What will be done to ensure project quality
A good sign is when, before providing the description, the developer asks questions related to your project and general preferences. A bad sign would be when they ask you to sign a contract right away, and assure you that “we will provide you with the best work process ever.”
Check their testimonials
It is important to check whether the company gets recommended by previous clients. You may even want to contact their previous clients directly, so if they offer this information (at least a name and the client company) – then this is generally a good sign.
If they offer you case studies or something similar, then this is also a good sign. Be on the lookout for interesting details, such as how they solved a particularly challenging issue for their client.
The last but not least is how fast do they answer
If it takes them more than 2 business days to send you a response, it usually means there will be communication issues even after signing a contact. Generally you will want a response time within 24 hours, even in these initial stages.
You can now use all the above criteria to select your finalists.
Step 3 – evaluate the finalists by asking for a project analysis
By this stage you should only have 2 or 3 remaining finalists – and hopefully a favorite has emerged.
Now is the time to check their software development approach, and assess how the company intends to solve your problem. Though there is something you should keep in mind…
It is usually a bad idea to sign a contract at this point
The reasons for this are because:
- Estimates at this stage are usually not accurate.
- Even a highly recommended company may not be the right fit for you.
- Software companies generally employ multiple developer teams, so you need to make sure the one they intend to use for your project has the right skill level and best practices.
The points above provide the best reason to start with a project analysis phase, and then move onto a “Proof-of-Concept” (or PoC) project to test the software company.
This involves setting up a relatively small fixed price project, set with clear boundaries and measurable goals. You can then use their project analysis to determine whether to proceed, or go with someone else.
Evaluating candidates using the project analysis
You should let the candidate organize and drive the process, because it is useful to see how they will act when given this challenge. So let their representative gather and document your requirements.
Once you receive their documents, check whether the content is clear, specific, and understandable. If the language is too vague or overly formal, then this can be considered a bad sign.
If this phase goes too hard, then stop at this point and test other contractor.
Any further activity will not pay for itself, but as you have only risked a small fixed price so far – you still have the ability to find a more suitable candidate for your whole project.
During this phase it is important to check:
- If they ask for the business goals or just request formal requirements
- If they document all the information from you or whether something gets lost
- If they ask for the project assumptions and restrictions
Check that the final document includes non-functional requirements like:
- Ability to integrate with existing infrastructure
- Ability to work under specific load
- Security requirements
- Supported platforms
When the documents are ready, and presented to your satisfaction; you should then ask for a revised project estimate for both budget and the calendar.
Step 4 – use the project analysis to setup a proof-of-concept project
The main goal of a Proof-of-Concept (PoC) project is to provide essentially a “trial run” of the whole project. If everything goes well with the PoC, this is good a guarantee as you can get that your software project will be handled properly.
First we need to define the PoC requirements, which will generally be the same as your overall project on a smaller scale, or for a single component of the whole solution. You can do this yourself, or ask the selected contractor to prepare the requirements, and then review/adjust them as needed.
When the requirements are ready, you can sign a contract for the PoC project.
During PoC development the main goals are to:
- Check if their work process suits your own (e.g. how fast they respond, how well they handle change requests, how well they understand tasks when formulated on a business level).
- Determine how they behave in a conflict or high pressure situation.
- Check if the contractor has your business goals in mind, or if they just focus on formal task execution.
- Check the resulting PoC product quality (i.e. is the resulting software stable, or is it full of bugs that “will be fixed later”).
- Check for predictability (i.e. if they follow their own estimations and timelines, and whether they can release new product versions in a predictable manner).
- Check if the real expenses match the real results, and that these correspond with your expectations for the project.
Assuming the results of these checks are good, you can then safely decide to start long term cooperation with your final chosen software contractor.
Step 5 – use the PoC to award the whole project to the best candidate.
You should have now found the best possible software development partner for your project, and you can be safely assured that there will be no big mysteries or major quality issues during the engagement. Go ahead an award the whole project to your chosen candidate, and sign the contract to get started.
Do not forget to mention following point in the contract:
- That key persons of the team will not be replaced without your approval. Otherwise the software company could move their best people to another more profitable project.
Thank you for reading, and good luck!