Choosing a Software Development Company

Choosing the right software development company can make or break a project. Some companies meet you with exorbitant change order requests for tiny changes to the project scope, while others bend over backwards to ensure your satisfaction. To break through the crowded space of software development, ensure you ask thorough questions and review their processes to find the perfect match for your project. Finding the right company can be broken down into seven simple tasks that include:

  • Asking your professional network for referrals
  • Conduct a thorough examination of their portfolio
  • Review the company’s development methodology
  • Test their communication skills
  • Create a clear project scope with deadlines
  • Ask for a detailed breakdown of their QA/QC process

Ask Your Network For Referrals

The most effective way to find a competent software development is simply to ask your professional network for referrals based on who they’ve used in the past. This ensures you receive a truthful review about how the company worked with your peers in the past. We all know most companies skew their online reviews in one way or another making receiving referrals all the more important.

This also gives you a great starting point to finding a great software development company. While you may not go with who your peer recommends, it at least gives you a few companies to reach out to and a base point for comparison.

Examine Their Portfolio

Before hiring any software development company, make them submit a portfolio of similar projects they’ve completed in the past. Looking through a portfolio maintains the only real way to fully understand the quality of their work before hiring them. You can also reach out to who they completed projects for in their portfolio to see how they enjoyed working with the company.

When reviewing the portfolio of a software development company, look for any bugs in the code, messy code, and their expertise in similar projects. You can look for bugs in the code by simply taking a moment to use the software. By actually using the software they created, you can get a feel for how polished their end result will be.

You can also review the actual code to see if you understand how they wrote it. Look for how they comment within their code. A software with appropriate comments throughout the code makes it easier for you to make any changes after the project is complete as well as maintain the software.

Also look for how many other projects they have completed similar to the one you are looking to complete. Having a software development company with expertise in the same area as your project allows them to provide effective feedback throughout the length of the project. This allows you to be sure you receive a full, complete software that fulfills the goals you set out to achieve from the beginning.

Review Their Development Methodology

After examining their portfolio, you want to find out how they go about developing projects. You need a software development company that follows the methodology you lay out the project with. This determines the rate at which they can complete the project as well as the overall structure of the project from start to finish.

If they follow an agile methodology, you can expect demos throughout the entire project as they will create a minimum viable product, or MVP, at a fast rate. Once they complete the MVP, you can expect fast-paced meetings where you establish how you want the MVP changed. This takes the form of debugging, design, and additional features.

When following a waterfall methodology, either you provide them with a detailed breakdown of the project structure with specific deadlines assigned to each milestone or request they provide it to you for approval. Once you establish a timeline for the project, you must hold them accountable for each discrete milestone. While you might not have a demo product throughout each milestone, you still want to review the code at each milestone to ensure they are on the right track.

Beware of any company that consistently misses deadlines as they will continuously delay the project and likely scramble to finish it at the end leaving you with buggy code that requires a lot of cleanup.

Test Their Communication Skills

While receiving quotes and sending out specifications, pay attention to how the company communicates with you. The two main categories of communication you need to pay attention to include timeliness and effectiveness. If each time you request information they take multiple days to respond, you can expect that same level of communication throughout the project. This makes it difficult to alter the project and track their progress as well as simply frustrates your staff managing the project.

The effectiveness of their communication can be a bit more difficult to judge. However, looking at how often you need to ask them to provide more detail to a response they give provides you insight into the level of thought they put into each response. If they do not put thought into the way they respond to your requests, you can expect them to put in the same level of effort into the project as a whole.

Create a Clear Project Scope With Deadlines

Once you are ready to reach out for quotes from companies, put together a detailed project scope including deadlines for specific milestones. If you do not already have a technical writer on staff to create this document, it could be worth hiring one to ensure you receive accurate quotes.

When sending out this project scope, look for how each company responds to the deadlines you created. A company that simply says they can reach each milestone without providing any feedback to you likely has little experience working on similar projects. Instead, find a company that actually looks at the layout of your project then suggests alternative approaches to speed up the overall progress. This immediately builds a level of collaboration into the project where you can expect them to continue offering suggestions to make the project run smoothly.

Pay Attention To Their Questions

If a software development company barely asks any questions, run. Paying attention to their questions throughout your contact with them gives you insight into how much time and thought they’ve put into your communications. It can also show how well they understand the project and their expertise in what you’re looking to achieve.

A company asking questions that require you to reevaluate your project or dig deeper into what your trying to achieve is a great sign of a company you want to work with. While it may end up taking additional work on your part, you will likely end up with a better end result. This can become frustrating, but the frustration is usually worth it to ensure you receive a fully functional product with every feature you need.

Questions can also give you insight into how they approach your project and their overall timeliness. If their questions always come in at the last minute, they likely have a culture of chasing deadlines instead of preparing for deadlines. This leads to rushed work, bloated code, and bugs. A company that promptly responds with the questions they have understands the importance of preparing for the overall project and each deadline. This gives them the time required to ensure the milestones they deliver have undergone extensive testing and quality control prior to sending it to you.

Ask For a Detailed Breakdown of Their QA/QC Process

In order to deliver you an efficiently coded, bug-free project, the software development company you hire needs to have a proven QA/QC process. So, if they struggle to provide you with a detailed breakdown of that process, they likely do not have one in place. You can also ask for examples of when their QA/QC process has worked for insights into the effectiveness of their process. They should provide you with details into individual projects of the outcomes of their QA/QC and what issues that process caught. Some companies even hire independent testing firms to ensure their individual biases do not affect their QA/QC process.

At the bare minimum, their QA/QC process should include:

  • A timeline of when they conduct their testing and for how long of the end result and after each milestone.
  • Whenever they discover an error, they test that area of the code extensively. More often than not when a single error is found more errors exist within that same area of the code.
  • Multiple different methods of testing tailored to the project to ensure a robust product.
  • A method to record and report any issues found complete with the solution to that issue. This allows you to easily fix any similar issues that could pop up as you maintain and update the software.
  • Testing within the systems you intend to use the software for.

FAQ

Is the additional costs of hiring a software development company instead of an independent freelancer worth it?

Typically, a software development company charges more up front than an independent freelancer to complete a project. However, when hiring an independent freelancer they provide very little in terms of collaboration and testing of the end result. This leads to constant updates and messy code that end up costing your company more than if you had just hired a competent software development company.

What is the easiest way to find a software development company?

Relying on your professional network to provide a referral is the easiest and quickest way to find a software development company. However, just accepting the first referral you receive could lead you to a company with limited expertise in the project you are developing. This makes it important to still interview the firm to ensure they understand your project. It also allows them to charge you more if they know they are not competing with other companies for the project.

I already have a shortlist of companies that all seem identical. How do I choose which one will suit my needs best?

Multiple companies promising the same results is a common issue decision makers face when choosing a software development company. Picking between two companies that seem identical can be difficult. However, this is actually a great position to be in. Now you can look at their track record of completing projects similar to yours, their cultural fit, and their price. This gives you the power to determine your most important aspects of the project then proceed. It also makes for a competitive bidding environment so you can know you’ll receive the best price possible.

Choosing a Software Development Company – A Definitive Guide