Finding The Best Custom Software Development Company
Putting your software development project into the hands of strangers can seem an arduous task, full of potential risks and pitfalls. You are entrusting your vision and putting your faith in a partner that you’ve never met before, without a clear idea of how they present themselves outside of an interview situation. It can feel a bit like a dating game – trying to find the perfect partner and not ending up in a bad relationship. So where do you start?
The first thing to do is to make a list of potential software development companies. The list can be developers within a location you prefer, or meritocracy based on web presence from your potential search terms, or indeed any other criteria you’ve identified. You may also have competitors or clients using technology that have given them a competitive edge, in which case look at their developers. The questions you want answered are:
- What’s it like being a customer of a particular developer? and
- How well did they do in realising your vision?
Once you’ve short-listed your potential partners, the next step is to dig into each one. Use the ‘Contact Us’ and ‘Enquiry Form’ links to get up-close and personal. Don’t be afraid to ask challenging questions and don’t be intimidated if you don’t know your technical terms. It’s your vision and that’s what you need to get across as succinctly as possible. How the conversation goes will be your first clue to the developer’s suitability as your partner. Ideally, it’ll feel like a conversation between friends, where an exchange of information takes place so you both come away thinking, ‘that went well.’
If you want your project to remain confidential, look at getting an NDA signed before going into any sensitive details.
Now that you’ve honed your shortlist into an even shorter list of candidates, it’s time to delve into the matchmaking specifics.
1.Trust and Integrity
The most important assets in any relationship are trust and integrity. That means not always going down the cheapest route, unless the software is so straightforward that there’s not much to go wrong and you’re prepared to deal with some rough edges when it’s delivered.
2. Business Expertise
Most customers are business people with a requirement for custom software that must fit into their business and must meet their business goals. In contrast, most software developers have an unfortunate reputation for being isolated from the business world with little experience of the way businesses operate. Find a software developer that not only has the right skills, but the experience of working in a similar industry.
3. Size matters
Find a custom software company that is big enough people to handle large projects, but not so big that it can no longer deliver a personal service. A customer should never be just a number in the monthly sales chart. A customer project, no matter how small, should never seem unimportant to a reputable software development company.
4. A strong team
A modern custom software system requires more than just development expertise. There are firewalls, databases and system security that need to be considered too. Look for a strong systems administration team that has database expertise too. A company that has Cisco, Linux and Windows expertise under one roof eliminates communication problems and gives a wider view of all possible software solutions.
5. Management skills
Having the right management skills can help drive your software development project. An ideal case is having a project manager in charge that can combine technical management skills with business communication skills. This skillset is usually found in managers who started out as developers and progressed in their careers to management positions. Why it works is because their experience allows them to ask the right questions early on in the design process, and then to effectively manage progress so the project concludes fitting the customers’ needs accurately.
It may seem obvious, but look for a company with a decent track record of projects, preferably spanning several years at least. Having broad experience across a range of different technologies can also be a boon, as a complex system might need an ingenious solution.
7. Strong Infrastructure
A good developer requires strong infrastructure and the right tools. The code they write should be stored in a central version control system and regularly backed up. The tools they use should make their life (and yours) easier, such as log files to help remove bugs, a tracking system to manage the software development of the project, and software testing tools. Another bonus to look out for is a developer toolbox for building software applications to best practice standards and design guidelines. This ensures code is written in a very straightforward way using established software technologies to avoid the risk of lock-in.
8. IPR Policy
Ensure that Intellectual Property Rights are assigned to you when the project is completed. Some developers will sometimes try to retain copyright and later come back to charge “licence fees”. Steer clear of companies that practice this policy.
Check the longevity of the developer, especially if the project is big, complex, or likely to be more than a one-off. How long have they been in business? How much repeat business do they get? Is it a profitable business?
Essentially, look for a company that you feel you can build a long-term relationship with. Always take the long view. In the end, your relationship with your developer must survive all the way from initial consultation to software design and development to hosting, warranty and support.
In fact, your relationship with your software developer could last much longer than your last ‘serious’ date – so matchmake with care!