How to hire a (great) software development company

How do I hire a software development team? Ask these questions.

While you may have worked with teams on digital products in the past you may not have technical expertise to fully understand the differences between potential partners. Understanding these differences will help you avoid pitfalls that lead to the same result. Ultimately, what may start as a clear and concrete design or concept ends up as an app that doesn’t meet expectations and requires significant followup work that is “out of scope”. How do you avoid these pitfalls and this unfortunate result? Unfortunately, the only bridge is experience. Here are the key questions we would ask our developers, and how we would use our experience to avoid these pitfalls.

What is your design process?

Every project should have a lead designer, even if multiple designers are eventually involved. Having a lead designer allows the product to be built around a consistent and coherent vision. So how do you choose a designer? Before choosing your lead designer you should be able to see a portfolio of their work with other clients. The designer should also be asking you for examples of apps that you think are well-designed. If this type of feedback isn’t happening then what might be happening is that the design team is acting in an egoistic fashion – designing something for them, as opposed to you or your customer. Throughout the process your designers should be showing to you. The industry standard is for designers to show their designs often, which gives the client the ability to comment. If any or all of these things aren’t happening, you should look for another design shop. 

What design best practices do you adopt?

Early on the client should be looking to see whether the designers are trying to reinvent the wheel, or are iterating on proven products. While designing something completely new can be the right solution, more often than not it causes distractions that lead to downstream engineering problems. The best designers will usually work around decisions made by industry leaders, and innovate on top of them. Large internet companies often spend millions of dollars making even the simplest of decisions, and taking advantage of these decisions is the most cost effective way to build new and innovative products. 

Are analytics being baked in from the start?

Analytics are a key tool in measuring your return on investment. How do you know that your shiny new development is generating the business results you require? Analytics will help you improve your product and help measure your ROI. Very often a quote from a development shop will not include adding analytics. Often development firms do this to be competitive with their bids and/or to avoid sticker shock. However, unless you are building the analytics outside the project, it will be much more expensive to add in the analytics later. The bottom line is: don’t skimp on analytics. Make analytics part of the product development conversation – your developers should be asking you what you want to measure and what success looks like from the beginning. And, if the firm doesn’t ask you these questions at the beginning they aren’t thinking strategically about your business or problem and this is a major red flag. Walk away now.

What third-party services should we use?

Developers should help you think strategically about third-party services. When you have a conversation with them, you should be asking what third-party services they recommend for you, why do they recommend them, and what experience they have with them. As an example,  customer support is a major touchpoint with users. What happens if a user has a problem with their account? What happens if they can’t identify a charge? What happens if the data they need isn’t found? All of this interaction should happen through a customer support service. Choose a customer support service early on. Is it going to be ZenDesk, InterComm, or another service? Your developer should help you think strategically about this, and help you choose the best one for your needs. A good developer will also guide you to choose this early on and make sure it’s as good as any other service you are building.

RKS software development firm

What about the admin tools?

Admin tools allow you to maintain, operate, and update the app once it’s complete. When thinking about the user experience for a development project, the admin tools are just as important as the “user facing” side. Almost every product you build these days is going to require some admin tool so that you or your operations team can view orders, flag offending posts, reset passwords, or block users impossible as an example. To avoid the need for having a developer make each change or update, they need to provide you with an admin console. This admin console is usually designed by an engineer, and not very user-friendly. But it has a user and why should you subject your operations team to bad software? The admin console should be front and center along with the rest of the designs. The bottom line: don’t make the admin console an after-thought – put the admin console conversation on the table at the beginning of the project.

How do you choose the right tech stack?

In software development, choosing the right tech stack is akin to choosing the right building materials in a house. There are cost considerations, longevity considerations, and contextual considerations. Unless you have an engineering background you simply won’t know if the stack is appropriate. And unfortunately, you can’t just trust the developer you hire unless you’ve worked with them before. That’s okay – your job is to oversee the strategy and be an advocate for your customers and your company. There are two tried and true ways around this problem of information asymmetry. One way is to find a trusted advisor – an engineer who is up to speed on the latest frameworks and technologies to advise you. Another way to overcome this issue is an interview style approach that will help you judge the qualitative decision-making ability of the development firm. Some questions to ask: What is the most challenging project you’ve worked on? Describe that challenge? What is the most interesting thing you’ve worked on? You’re looking to see if they have experience solving more than just your narrow problem, because the solution now doesn’t always use the same technologies as the solution before.

What are your quality assurance protocols?

Quality assurance (QA) is a technical issue that can end up producing non-technical usability issues down the road. QA issues could turn up in errors, data breaches, downtime, or projects that stretch on and on. The simplest way to avoid issues around QA, is to make sure that the development firm follows industry best practices. Some of these best practices include test cases or test matrices for every product that they develop. You may also ask what types of testing resources they have, and who on their staff does testing. You don’t want your developers (the people who are doing the code) to also be doing the testing (being a check on the people doing the code). While you do want someone with an engineering or product background to do the testing, these should be separate. If you want to get even more granular, you may ask what bug tracking services they use, for example Jira or Instabug. What kinds of bug reports would you receive as a client? You should be receiving reports that allow you hold the vendor accountable for quality.

What happens after launch?

Once an app is built it needs to be operated. A lot of software teams can build software and fulfil the requirements. But can they launch it? Can they observe it? In a common example, what happens when the service breaks once people start using it. Does the team have an escalation procedure if the system breaks? Or in another example, what happens if money is not being charged properly. You need to know what happens to the development team in adversity. No project goes 100% according to plan, and you need to know that your partners can handle uncertainty and adversity.

About RKS Design

RKS is a comprehensive digital development firm with expertise in design, development, and engineering. Whether creating digital products or improving existing ones, we assist at all stages of a product’s life cycle. We use our advanced psycho-aesthetic process to solve complex usability issues that address design, engineering, brand, and regulatory issues. Our cross-disciplinary specialists, researchers, designers, and engineers leverage their deep experience within multiple industries and technologies to spark creative and innovative solutions.

Learn more about our team:

Learn more about RKS Software Development: