Choosing a software development company is tough.

You’ll probably spend tens of thousands of dollars, and stakes couldn’t be higher—your business depends on a great solution.

To make matters worse, just about anyone can call themselves a dev agency.

Even the savviest businesses can get duped into choosing a development team that ends up being a terrible fit.

But it doesn’t have to be that way.

The process we’ll share today will help you choose the right software development company.

You’ll understand how to find a team that’s a perfect fit to your needs, and how to steer clear of poor fits and outright scammers.

But first, here’s how we’re different from other agencies.

How Devize is different

At Devize, we do things differently than your standard software development agency.

Here’s what sets us apart:

We build in 6-8 weeks instead of 9+ months. We use cutting-edge tools and modern automations to speed up the development process, meaning you get the benefits of custom software faster.

We bill monthly, not all upfront. We charge a lower rate divided into monthly payments, which makes it easier on your checkbook than spending five figures at all once.

We build on a tool you can edit yourself. We build your software in a no-code tool that you can update, change, and maintain yourself so you’re not shackled to a development team for every tiny change.

Sound interesting? Get in touch.

And if you’re still on the hunt for a dev team, here’s our step-by-step process.

1. Set clear goals to prepare for success

The first and most important step is to get a clear idea of what you want.

If you’re not clear on your project requirements, you’ll struggle to compare firms—and they’ll struggle to give you accurate estimates.

These six areas matter most:

Project requirements

Write down as many details as possible for the software projects you’d like to build. Understand your business needs and list out all the most important features you’re looking for.

If possible, find a few apps that are similar to what you want to build. If there isn’t anything quite like it, find a few with a layout or design that’s similar to the look you’re going for.

Type of project

Most apps can be broken down into two categories: minimum viable products (MVPs) and full-scale apps.

MVPs include the core features you need, but that’s about it. They won’t include “nice-to-have” features, and may not have as polished a look and feel.

Full-scale apps have it all. They include the core features plus any bells and whistles you’d like, and look like a finished product.

Both choices are fine, but they’re very different in terms of pricing and timeline.

Platform

You’ll need to decide which platforms matter most for your application.

At Devize, we focus on custom web app development. Web apps are one of the most versatile options, as they’ll work on any internet-connected device.

But you may also consider mobile app development for a native iOS or Android app, or a desktop app that can work on Mac or Windows without an internet connection.

Usually, these must be developed separately, so building native apps for several platforms will cost extra.

Budget

Have a clear idea of what you’re willing to spend.

Custom software ranges wildly in price, but expect to pay at least $10,000 for a small product and up to $500,000 for a complex and multifaceted enterprise application.

Timeline

Decide how long you’re willing to wait before you can use your software.

Most custom software development companies will take 4-9 months to build your app, and more complex applications can take a year or more.

At Devize, we speed up the custom software timeframe and can deliver an app in as little as six weeks. Decide what’s a reasonable timeframe for your business goals.

2. Build a list of prospective partners

With your goals in hand, create a list of possible development partners.

Here’s where to get ideas for your list:

Ask your network. Get recommendations from colleagues, friends, and family members. A positive referral is the best way to make sure you’ll be working with an agency that’s trustworthy.

See what thought leaders use. If you follow thought leaders on social media, podcasts, newsletters, or elsewhere, see what they recommend. Look for genuine recommendations as opposed to sponsorships.

Check review sites. Look for top-rated firms on review sites like Clutch (for agencies) or GoodFirms (for B2B companies and agencies).

Use a search engine. Use your favorite search engine to find companies that offer the kind of services you’re looking for.

This process will probably lead to a list of several dozen companies. Now it’s time to filter that list.

3. Research to narrow your list

Now that you have a list of companies, you’ll want to narrow that list down.

The best way to start is by researching the companies on your own. Here’s what to look for:

Case studies and the company’s portfolio. Look at their past projects. How do they look? How is the user experience? Are they high-quality projects, or are their work samples lacking? If the company’s track record doesn’t match up with what you’re looking for, it’s probably not a good fit.

Customer reviews and testimonials. Read client reviews both on their website and on third-party platforms. What are the common benefits and common complaints? Do they align with your expectations and requirements?

Pricing. Make sure the company’s pricing aligns with your budget. Look at both the overall range of projects as well as the hourly rate, if it’s available. Agency review sites like Clutch can list the average price of projects.

Certifications. Most projects won’t require an agency with a certification. But if you’re working in a regulated industry or need expertise in a specific provider, a certification could be helpful or even a requirement.

Industry and tech experience. Does the company have years of experience in your vertical, or using your product development stack? Perhaps most importantly, do they have a track record of building the same types of custom software you’re looking for?

You should also decide whether or not to outsource.

Common locations for outsourcing software development include Eastern Europe (e.g., Poland, Ukraine, Romania), Asia (e.g., India, Thailand, Philippines), and Latin America (e.g., Argentina, Mexico, Brazil).

Europe and Asia are usually considered offshore, and Latin America is typically considered nearshore.

The major benefit of outsourcing is a lower price tag. But there are a few disadvantages as well:

Time zone differences. Coordinating meetings with a team on the other side of the world can be challenging. You might also struggle with accountability and prompt responses to questions.

Language barriers. Most software outsourcing companies have English speakers on staff. But there may only be a few points of contact, leaving you a step removed from the team doing the development work. And the level of fluency can vary dramatically between team members and companies.

Different design standards. Outsourcing partners might not be as up-to-date on design standards popular in the U.S. The final product may look outdated compared to other apps on the market.

Deciding to outsource depends on your business goals. Beware, though—make sure you’re outsourcing intentionally.

There are plenty of companies that appear to be based in the U.S., but ship the development work overseas.

The best way to spot a company that’s secretly outsourcing your work is to look at the “people” section on their LinkedIn profile.

If most of their employees are based somewhere else, it’s a strong sign they’re really just an IT outsourcing firm with a US presence.

There’s a lot of research to do, but you should be able to narrow down your prospects to a shortlist of 3-5 web development partners you’re considering.

4. Talk with the companies on your shortlist

Now, you’ll want to speak with the companies on your shortlist to decide which are the best fit.

Schedule a call and share that you’re interviewing agencies to work on your project. Share as many details as you’re comfortable with in this process—the more the team knows ahead of time, the better.

On the call, you’ll want to look at the following areas.

Communication style

One of the best signs of a potential software development partner is good communication.

You’ll probably be more frustrated with communication problems than technical issues. A team that can clearly explain what they’re working on is underrated.

Look for a team that asks a lot of detailed questions about your project—ideally questions you hadn’t even thought of before.

That level of detail usually means they’re committed to making sure your project is a success.

Project management

Software development services are like any project. They can end up over deadline and over budget, they can get off track, and they can end up frustrating you with how long they’re taking.

That’s why skilled project management is a key factor in choosing the right software development team.

Ask questions about their workflow, how they manage projects, and the strategies they use to ensure your project stays on track.

Business guidance

A great team won’t just build the project you’re envisioning—they’ll also provide guidance along the way.

Great development partners will want to understand how this new software will fit into your existing business processes, how those processes might need to be changed along the way, and they’ll share tips for success you might not have thought of.

Look for a team that includes strategists and business analysts as part of their service. It can help ensure your software is as successful as possible.

Development methodology

A key piece of project management for software development is the development methodology the team uses for their custom software development process. There are two main methodologies: waterfall and agile.

Waterfall methodology plans out the software development project all at once, with sequential steps that must be completed in order. This has the advantage of providing a clear roadmap, but can be brittle and cause delays if a single step doesn’t happen on time. This methodology is most popular with large enterprises.

Agile methodology breaks up software engineering into small parts, each of which delivers a feature. Agile includes several subtypes, the most popular of which is scrum. The agile methodology provides the flexibility to iterate with a functioning product at each stage, but it can be more difficult to create a predictable timeframe. This methodology is most popular with startups.

Tech stack

Ultimately, every software development firm is going to use a specific technology stack to design your solution.

While you don’t need technical expertise yourself to choose a team, you should have a general understanding of what frameworks and programming languages are best suited to your software solution.

All things considered, a popular stack is better than a niche one. You’ll still need to maintain your software even after the team develops it for you, so it’s best to rely on a skill set that’s easy to find elsewhere.

Another option—and the one we use at Devize—is developing apps on a no-code tool that you can update and maintain yourself. That means anyone, even without technical skills, can keep your app up to date. You won’t be tied down to a developer in the future.

Secure your intellectual property

You want to protect your ideas.

The risk of a team stealing your idea is pretty unlikely, but you should still take precautions.

Before working with a software development team, look for security measures.

Non-disclosure agreement (NDA). A non-disclosure agreement is a contract that prevents either party from sharing sensitive information. For example, if a competitor contacts the company asking for details on your product, this would prevent them from sharing information.

Non-compete agreement (NCA). A non-compete agreement is less common for a client-agency relationship. It prevents the agency from competing against you, and may also prevent them from taking on competitors. If you want an NCA, do your research—they aren’t legal in all jurisdictions.

Maintenance

Finally, pay careful attention to how your software will be maintained moving forward.

It’s easy to forget that building the software is just the starting point. Once it’s built, you’ll inevitably find ways to improve and expand it.

Common examples include:

  • Updating the design to a new logo and rebrand

  • Adding additional features your users want

  • Improve the design or look and feel

  • Changing data providers or integrating with new software

If your software is built by a small development team with an idiosyncratic tech stack, it can be next to impossible to find a team with the technical skills to build the changes you need.

For most software projects, the ideal is an ongoing maintenance contract that guarantees ongoing help once you launch the product.

Another option is to have your app built in no-code software like what we use at Devize. This lets you update and maintain it with your in-house team, no additional support required.

5. Look out for red flags

As you decide which agency to work with, there are a few major red flags to look out for.

1. Not enough questions

A skilled team that’s committed to making your product a success will ask lots of questions.

These help them understand the exact requirements you’re looking for, help them solve the technical challenges your idea poses, and deliver a quality solution.

If you’re speaking with a software developer and they’re guaranteeing they can build your solution without asking lots of questions, beware. There’s a good chance they’re underestimating what it will really take to develop

2. Poor portfolio

Chances are, your product won’t look any better than the best piece in the company’s portfolio.

The portfolio is where the company will showcase their best work, and there’s no reason not to have at least a few samples.

(Even if they have non-disclosure agreements with their top clients, they can and should have sample projects to showcase.)

If their samples are lacking, or don’t look like the kind of software you want, you should probably move on to another company.

3. Wrong size agency

You don’t want to be too big or too small compared to the agency’s other clients.

Ideally, you want to represent about 10-40% of their current client workload.

Why?

If you’re too small—if your product is less than 10% of their total time and revenue—you probably won’t get great service. Bigger clients are a bigger priority, and they’ll get the attention and care every time.

If you’re too large—if your product is 50% of their overall time and revenue—you’ll probably get lots of attention, but you’re running a risk. The agency may not be equipped for a project of your size, and will work to keep you on their roster for as long as possible.

4. No ownership of the code

Make sure you own the final product, not them.

Most agencies will hand over the finished product once they’re finished with development, and sign the necessary paperwork to ensure you own the rights.

If they don’t, you’re trapped—the agency owns the source code, and you’ll never truly own your own product.

6. Choose the best software development company

Now that you’ve spoken with the companies on your shortlist, it’s time to make a decision.

Look over the hard and soft skills, and decide which is the closest fit to what you’re looking for.

Remember to trust your gut instinct as well. If a team gives you an overall positive impression or an overall negative impression, even if you can’t point out why specifically, you probably feel that way for good reason.

The process can be complicated, but it doesn’t have to be.

Look for a team that aligns with your expectations for code quality, tech stack, and communication. Ensure they’re willing to give you the rights to the product and sign a non-compete. And make sure they have the portfolio and customer reviews to back up their expertise.

Perhaps most importantly, make sure they have a system in place to help you maintain the product for the long-term.

If you’re considering Devize, get in touch.