An individual or business may seek the assistance of a software consulting company to provide a software solution when in-house software development resources either do not exist or do not have the expertise or capacity to take on the project. This outsourcing of software development services is an effective way to expedite a software project.
There are many software consulting companies to choose from. However, not all of them are the same. In fact, most software consulting companies differ significantly even if they appear similar on the surface. Most people use price as a factor when choosing a company but what other factors are important? Here is a list of 13 factors to consider when hiring a software consulting company:
1. Have they built a software solution in the past that is similar to the solution you want to build?
This is an important factor because if the company has built a similar solution they can leverage their domain expertise, technology, knowledge base, etc. to reduce risk on your project.
2. Can they show examples of their work that represent a similar level of complexity?
If the company can only show examples of websites they have built and you need a sophisticated web application, they may not have the expertise that you require.
3. How many developers do they have? What are the average years of experience?
Generally, the larger the team, the more capability they have to deliver your solution. If they underestimated the hours they can always add additional experienced resources to get your project done. You should seek to have senior-level developers on your project, which is generally defined as 5+ years of relevant experience.
4. How detailed is the proposal? Do they provide a line item breakdown of tasks and hours? Do they include time for design and testing?
The more detailed the proposal, the more confidence you can have in the hour estimates. And, every software project requires some design and testing time so these hours should be included.
5. What technologies do they use? Are they using modern design patterns and programming languages?
Most modern web applications use jQuery, JSON, and MVC and are running as Software-as-a-Service (SaaS) in the Cloud. Mobile applications use iOS, Android (Java), and HTML 5. If they are not using any of these technologies, this should be a red flag.
6. Did you check references? If so, were they positive?
Past success is a key indicator of future success. Ask their references if the software solution was successfully delivered and has actual users using it.
7. How does the price compare? If it is higher than another quote, is the company able to justify it?
Price is certainly a factor in the overall decision but you must make sure you are comparing apples to apples, which can be tricky. Building better quality software requires more time and effort so you should not just base your decision on price if you are interested in an elegant, high-quality solution.
8. Does the company offer any sort of warranty on their work?
If they do, this is a sign that they are confident in their ability to deliver quality software.
9. Do they use an agile development process? How mature is their project management process?
There are four primary attributes of an agile development process: 1) Rapid feature iterations, 2) Transparency, 3) Frequent communication, 4) Scope flexibility.
10. Do they have their own internal QA (Quality Assurance) Team? Do they follow a continuous testing process?
You don’t want to get to the end of the project and find out the system looks great but doesn’t really work. It’s best to catch errors up front by doing continuous testing throughout the project. It is a good sign if the company has an internal QA team and even better if they write automated tests.
11. Do they have any business partners that can vouch for them?
Client references are important but so are business partner references.
12. How are their communication skills? Is communicating with them easy or difficult? Are they helpful and engaged?
Positive communication during the sales process is an indication of positive communication in the future, which is vital to the success of any software project.
13. Do they seem to understand what you want to build? Do they “get” your vision?
You want a long-term development partner who understands your vision and can add value, not just by providing software development services but also by providing advice in other areas such as marketing, pricing, business model, IT, etc.