Every person, company or organization that is looking to hire a software development company is different and, yet, they are all looking for the same thing — that one partner that who will develop a product which will be the perfect (or as near to perfect as possible) realization of their idea.
Unfortunately, identifying and choosing the right software development company is no easy task. There are myriad companies out there vying for your attention and if you ask them, they are all the best at what they do.
So, how do you do it? How do you find the right people to turn your idea into working, valuable software?
Step #1 — Identify Your Needs
Before anything else, you need to determine what it is that you actually need and want from a software development company.
Are you an individual or a small company with just a vague idea for a piece of software? Are you a major company looking for someone to add to your existing development team and handle some of the work? Are you a design agency who needs a partner to work together on new accounts? Do you need front-end or back-end developers?
The options are endless and this is just the very first qualification of your needs.
Depending on your expertise and familiarity with software development, you might also have an idea on what frameworks and programming languages will best suit the project. You will also have a more or less comprehensive list of requirements that the piece of software will need to meet, perhaps a list of defined features and functionalities.
At the very least, you will probably be able to explain to some extent what you want this product to do for its end users.
Of course, not everyone knows everything. If you have little to no knowledge of software development and this is the very first time you are looking for a company to hire, you might want to talk to someone more experienced who you can trust.
Another way to go is to meet with a couple of software development companies for some consultations. Most of them will gladly meet with you and discuss your initial plans. This should give you more insight into what your needs really are. Keep in mind, these companies you consult early on do not necessarily have to be your final choice.
Step #2 — Talk to People You Trust
The vast majority of software development companies get the biggest share of their work from personal referrals. They do a good job for a customer and this customer recommends them to their acquaintances and partners.
This works both ways.
In other words, if you talk to some people you know who recently worked with such companies, the chances are you will be able to get a few names.
This is the kind of advice that is invaluable because you will be getting pure data from people who have worked with these companies and who have nothing to gain by recommending someone who isn’t that good. You will also be getting all the little details that you cannot learn from other sources.
For example, you might learn that a certain software development company has great developers, but that their customer service is lacking, or that there were problems when it came to payment details or something like that. This is not the kind of info you will find advertised anywhere or even on various websites that are aimed at connecting customers and software development companies.
Step #2.5 — Find Some Names Online
In case no one you can ask has a single name to recommend, it is time to turn to good old Google (or any other search engine you might be using) and try to find a few companies that might be the right choice. This is definitely a more demanding and risky proposition, but you wouldn’t be the first to find a great software development company online.
While some people think you should only search local companies, the reality is that we live in an age when you can sit down face-to-face with a company thousands of miles away the same way you would with one that operates two blocks from you.
Moreover, if you happen to be located in a country with exceptionally high living standards, you might discover you can find much more affordable options if you forego the “always go local” frame of mind.
There are also plenty of websites that put together customers with software development companies (like Clutch, for example) and you will easily find various resources on companies that have a great track record. While these can be of huge help, you always need to make sure the reviews and recommendations are genuine and not the result of someone forking over money to get a featured spot on a website.
Of course, when you find some names, you will also want to check their websites, learn more about the companies and perhaps even try and get in touch with some of their past customers.
Step #3 — First Contact
By now, you probably have a list of a few companies you are considering and even if you have just a single name, you still have to find out more before you make your decision.
The initial contact is crucial and if you do it right, you will have a pretty decent idea of the kind of software development company you are talking to.
While some of it can be done via emails, the best way to do this is to sit down face-to-face for a conversation, either in person or via Skype (it doesn’t have to be Skype, of course).
During these initial talks, you will want to find out the most pertinent information about the company and what they can do for you.
One of the first things to find out is if they had worked with a similar customer in the past. Do they have any experience developing software for your industry? Have they handled projects that are similar to yours? Do they have the capacity to handle the type of project you have in mind? Regardless of their experience with similar types of projects, you should definitely ask them for a few references that you will check in the next step.
You will also want to make sure they have the technology stack and know-how to handle your needs. Their website may state that they can work with Python, only to find out that all of their past work revolved around Java and that they perhaps have a developer or two who meddle in Python.
Finally, during these initial talks, you should also get a rough estimate on whether they would be able to meet the timeline that you have played for your product and how much it would cost to have it developed.
This will allow you to learn at least something about their process and the way they charge for their services.
Step #4 — Checking the References
As mentioned in the previous step, after the initial conversation with the software development companies that have garnered your attention, you should have at least a few references that you can check on in this step.
This is something some people fail to do, either because they feel uncomfortable reaching out to people they don’t know or because they are trusting by nature and think that mere willingness to provide references is good enough.
This step should definitely not be skipped as you might learn far more than just whether someone was satisfied with the service.
Of course, you need to consider the fact that not everyone is particularly interested in talking to someone they never heard of. On the other hand, most people are happy to help and also do something for a company that did well for them. Still, you will want to walk the fine line between learning enough and not coming across as annoying.
One thing you can always count on is that if someone had a negative experience with a certain software development company, you will hear about it. This may involve minor issues (that might actually be very important to you) or major ones, although this is rarer since companies usually choose their references carefully.
Step #5 — Serious Talks
Once you combine the information you got from initial talks and speaking to past customers, you will probably have a pretty good idea about who you could work with. This should narrow down your search to one or two companies.
This is the time to get serious and sit down with them for a more comprehensive session where you will learn the ins and outs of their software development process; the way their teams are organized; how they handle communication with customers and the business side of everything; more details about their pricing model and how they would approach your particular project.
When we are talking the process, you should find out where they stand on the waterfall-agile spectrum and how long their development cycles are. Ideally, they would be an agile software development company which would release useable, value-adding increments every two weeks or more often.
This can have a huge impact on the way your product is developed and the entire process.
In addition to this, you would want to learn more about how they organize teams for various projects. For example, would they form a single, cross-functional team for your product or would they move your product across various structured teams in their company according to the phase in which it is? You want to find out how dedicated your new team would be and how engaged they would be handling your project.
You would also want to find out how they handle communication with customers, as you might want to stay involved and get regular feedback on your product. Once again, companies that are agile handle this better and you can easily add or remove requirements and wanted features and functionalities should the need arise.
When discussing their approach to your particular product, there are a few things you should be looking for. For one, how well they understand the business side of software development and your product in particular? Namely, you need to know that they understand your product from the business side as all work they do for you has to make sense in terms of business value.
Also, when discussing your product, you need to look for signs of a team that knows how to say no and make suggestions. For example, if they think that your product roadmap should be modified for easier and more efficient development, they should says it and not just nod to whatever you suggest. They should be able to suggest their own alternatives when discussing technologies or tools or anything else.
Finally, you will want to get a more precise estimate on the time and money needed to develop your software. On top of that, you have to make sure that everything is clear when discussing additional or unexpected work they might have to do for you and being billed for that work.
Throughout these serious talks, you will be trying to gauge the always elusive fit. It should never be the primary deciding factor, but if you find that you are having troubles communicating with them, getting your message across or if you feel like they are disengaged, you should definitely take note of it.
Step #6 — Finalizing the Deal
It goes without saying that the steps we outlined so far are not set in stone and that you might want to modify them to better fit your situation. That being said, by following the aforementioned steps or at least consulting them, you will most likely be able to make an informed decision on which software development company will best fit your needs.
The only thing left is for you to finalize the deal.
And there you have it, 6 (and one alternative) steps to choosing the right software development company for your needs! If you happen to be looking for a software development company at the moment, make sure to get in touch!