If you’re contemplating an addition to your house, buying a new car, or making any other kind of big-ticket purchase, conventional wisdom tells you to shop around, do some research, and make sure you understand what you’re getting into.
That advice goes double for large business expenditures, such as real estate, capital equipment, or custom software. Shop around. Get competitive quotes. Get to know the providers.
When it comes to custom software, many entrepreneurs don’t really know what to look for or how to choose a software development team. The terminology and processes used in software development can be unfamiliar or bewildering to non-technical people, who may feel completely lost. The unfortunate result is they simply accept the lowest bid. The end product may be disappointing or worse.
Choosing a software development partner isn’t rocket science, but it does take some time and effort. A healthy investment in researching and choosing the right software development shop will pay dividends in a higher quality end product, better adoption rate, and happier end users.
In this article we discuss some of the homework you should do, questions you should ask, and things to look for in selecting a custom software development partner.
1. Understand the Business Problem
The first step is to make sure you understand the problem you’re trying to solve. Whether you have an idea for a mobile app that will make life easier for users far and wide (and make money in the process), or you have an internal business process that needs automating, you need to define what you want to achieve—then draw boundaries around it, because the temptation to extend the solution to a neighboring problem space will be hard to resist.
Once you examine the situation, you may find that the app you have in mind is a solution in search of a problem, or the business problem doesn’t need a software solution at all. That’s why this step is so important: You won’t be happy if you burn a bunch of cash building an app that nobody needs or automate an internal process you shouldn’t be doing in the first place because it adds no value.
This exercise lends itself well to writing a request for proposals (RFP), if you need or want that level of formality.
2. Educate Yourself
If you’re unfamiliar with the process of software development, do some research. Learn about different development methodologies, what’s meant by terms such as “technology stack” and “cloud services,” and how software testing works. You don’t need to go into extensive detail or become an expert in software engineering. A little knowledge will make the conversations with candidate shops much more productive, and you won’t feel like you’re being bamboozled by jargon-spilling con artists.
3. Start Your Search
With a cursory web search, you will find no shortage of contract software development shops, from one-person “lone wolf” developers to fully staffed enterprises with impressive client lists. Filter your results by focusing on those that claim expertise in your industry or on the type of problem you’re trying to solve. Read customer testimonials or case studies and see what resonates with you.
Look at their blogs and see the kinds of topics they cover and the breadth of knowledge they bring. When you’ve assembled a shortlist of candidates, it’s time to make contact and set up meetings.
4. Get Signed NDAs
It seems like a small thing, but it’s important to get each candidate to sign a nondisclosure agreement (NDA). This is critical if you’re seeking solutions that involve trade secrets, intellectual property, a world-changing app idea, or anything that could provide advantages to your competitors.
Professional shops will have no problem with being asked to sign an NDA. Any candidate who hesitates or balks should be crossed off the list.
5. Pay Attention to Their Questions
You can tell a lot about software development candidates by the questions they ask. Are they only interested in the specific software solution you’re seeking, or are they asking questions that place the solution in the context of your business model?
Do they really know your industry, and seek to understand your business model and competitive landscape? For apps you intend to distribute externally, are they asking about your market research? For internal software, are they asking about the details of the business process?
The strongest candidates are the ones showing an interest in and understanding of the business problem that’s driving your desire for a software solution. These are the candidates who want to partner with you for the long haul.
6. Understand Their Process
Now it’s time for you to ask them questions, such as:
“What’s your preferred methodology?” Almost all software shops or candidates will say “agile,” but is there something special about their approach to agile software development, some “special sauce” that makes their flavor of agile better than their competitors’?
“What technology stack do you use?” This is really a trick question: If they have a ready answer, their preferred stack is probably the only one with which they’re comfortable. Look for candidates with expertise in numerous technologies and a willingness to understand your problem before choosing the right technology to solve it.
“Where are your resources located?” Use of offshore developers might reduce the hourly rate, but can lead to communication problems. Issues might include language- or time-zone-related confusion.
“What is your testing process?” It’s a huge red flag if the developers do their own testing. The best shops will have dedicated QA testers to ensure the quality of the end product.
“What is your overall software lifecycle strategy?” The first release of your software should not be the last; that is, version 1.0 should be the foundation on which future versions are built.
If the candidate talks about minimum viable product (MVP) for the first release, keep listening. If the candidate wants the first version to have everything you could possibly want, it’s likely that the project will be over-budget and behind schedule in short order.
“What role do we play in your process?” This is important. The best shops will want to involve you every step of the way. If they don’t want to talk to you until it’s time for a demo of the final product, run—don’t walk—the other way.
7. Get References and Contact Them
Any software shop worth its salt will be happy to provide satisfied customer references. Ask for references in your industry or a closely related one that faces challenges similar to yours. And don’t be shy about contacting them—they are references for a reason.
Ask them why they would recommend this candidate. Ask them if there’s anything about their experience with the candidate that could be improved or perhaps annoyed them. If the candidate uses offshore developers, ask if this caused any issues.
8. Dive In!
Once you’ve factored everything—the references’ feedback, candidates’ understanding of your needs, their process/approach, and of course cost—it’s time to make a choice and get going on the project. If you’ve been diligent and honest with the selection process, you’ve found a development partner that’s a good fit (technologically and culturally). You should be pleased with the results.
Software is a big investment. The process of developing quality software can be more complex than you might at first imagine. Good custom software shops understand this and will partner with you to ensure your project is a success. They know they succeed only if you do.