Investing in a custom application for your business is an important decision, and it’s even more important to choose the right development partner. With thousands of firms in the market and even more freelancers, it can be difficult to know which are legitimate and able to deliver the high-quality application your company needs for mission-critical operations… and which are lacking in what it takes to carry the day.
Thankfully, there are some criteria that you can use to evaluate the strength of your application development partner candidates. Having a set of guidelines can be helpful as you interview and weigh potential partners based on competency, business practices, and the ability to add strategic, expert value to your project. Here’s what you should look for.
1. Good Match to Your Tech Preferences (but Not a One-Trick Pony)
If your tech team prefers to work with a certain tech stack, you’ll want to find an application development partner that is well-versed in those technologies and has the expertise to fit your needs. Beware of potential partners who don’t specialize—it’s a good sign they’re outsourcing your project to whoever they can find to do it and may not have the depth of knowledge they need to execute efficiently or deliver a high-quality product.
But the other end of the spectrum is potentially problematic too: firms that offer only one solution as a “one size fits all” approach to every problem. A firm that’s the equivalent of a hammer looking for a nail may miss potential opportunities for optimizing performance and functionality by clinging to a single infrastructure or framework. Your partner should have enough diversification in technologies that it’s well equipped to make strategic suggestions that will improve the final product, even if they’re not currently present in your tech stack.
2. Proven Application Development Experience
Any potential application development partner should provide no doubt that they bring a wealth of experience to your project. It should be clear that they have done the type of engagement you are looking to do many, many times. While they likely haven’t built the exact application you’re looking to develop (after all, this is custom development), their work experience should reflect expert working knowledge of key components of success in your software. One way to vet that is to review case studies, testimonials, and links to previous projects. When evaluating the firm as a potential partner, you can glean a lot from the quality of the case study—including how well they were able to understand their client’s challenges and specific needs, as well as the quality of the finished product.
But to go even deeper, make sure that your potential development partner is willing to provide you with references. Speaking with past and current clients will give you the opportunity to ask questions. It’s in unfiltered, open conversation that will allow you to really find out what went smoothly and what didn’t and how both parties worked together to solve it. How flexible and adaptable was the firm? How communicative and responsive to their clients’ needs? You’ll gain a more accurate sense of the working relationship and what you can expect from the partner in the future.
3. Multidisciplinary Expertise
If the team is comprised of employees, it’s also good to ask about their knowledge and skill sets. Is it a team of generalists who know a little about a lot, or are there experts in specific areas across the organization? Are there dedicated front-end and back-end engineers? Infrastructure specialists? DevOps engineers? UX/UI designers? A team of specialists will possess the skill sets to develop creative solutions to your and your users’ problems and be better equipped to work through potential challenges that may arise during the development process. Expect a large difference in quality when you transition from working with generalists to experts in their field.
4. Developers as Employees, Not Subcontractors
It’s not uncommon for development firms to hire subcontractors to execute on their projects. It’s cheaper to hire ad hoc, and they can expand or reduce their staff according to their client load. Many even use offshore labor. But it’s generally not a great customer experience and it doesn’t lead to high quality work product.
In order to provide consistent, reliable outcomes, your application development partner should employ and invest in training developers on staff. This provides more continuity for projects throughout the lifecycle. It also allows the firm to set and hold employees to standards and best practices and invest in professional development. This enables their team to grow their skills over time and stay abreast of new trends, which benefits your development. Also, having the same team that built your original application building new features and functions down the line is very beneficial.
5. Frequent, Transparent Communication
An application development partner is a partner in the process, meaning you should expect collaboration and open communication around work progress, questions, and changes in the delivery schedule. Any firm who brokers in “black box” development without providing you insight into the product lifecycle is not a good fit. Too many clients have to find out the hard way, investing thousands of dollars into a project and getting burned in the process when it goes over time and over budget without a clear explanation. It becomes very hard to know who to trust.
At MercuryWorks, we’ve developed several ways to keep our clients apprised of their project’s status. First, they can see progress firsthand in demos completed at the end of every two-week sprint. But for even more transparency, we’ve also developed an extranet specifically for clients to login and see the progress of their project, work completed to date, work that still needs to be done, project spend to budget ratios, and more. It’s not common for many application development partners to offer this level of transparency, but we find that it brings value and peace of mind. Our clients can trust as much as they’d like and verify as much as they need.
6. Strong DevOps Culture
DevOps is a system of practices that makes application development more efficient and improves product quality. From best practices for maintaining code repositories to managing complicated projects, DevOps has evolved in the past decade from eliminating bottlenecks to creating a pipeline for continuous delivery and improvement.
What does this mean for clients? A development partner with a strong DevOps culture and proven experience tends to produce better, faster results up front, which ends up saving you time and money. In addition, a continuous pipeline for release management enables ongoing support after release, reducing the amount of technical debt that your team might otherwise incur from a firm that releases a product manually.
7. Investment in Your Product Vision
Product vision is what separates a strategic partner from a simple order taker. They will help you think through your users’ needs. A good application development team will begin by attempting to gain a deep understanding of your users and their needs, as well as yours. In fact, it’s not uncommon (and good business practice on both sides) for the work agreement to take the form of two independent contracts: one for discovery, planning, and assessment, and a second for the actual application development.
The discovery process should involve your partner gaining a deep understanding of your business and assessing your challenges before making a recommendation. Being able to view your product from a business perspective instead of just a tech perspective is absolutely vital to creating an application that meets your needs. It also enables your application and your relationship with your partner to contribute increasing value after launch—so that every activity from hosting, managing, and maintaining the application to investing in ongoing product development is accomplished with your product vision at top of mind.
8. Commitment to Knowledge Transfer
One of the greatest differences between a mediocre development partner and a stellar one is an expectation for a long-term relationship based on open sharing of knowledge. It makes no sense to pay for a firm to develop an application, only to have them “hold the keys” when it comes to knowing how it’s built and how to maintain it.
A good partner is more than a good developer—they’re a teacher and a guide who is committed to your success. They should work to empower your team and share how the application works inside and out. They should be willing to codevelop with your team, if desired. After release, your partner should be equipped to assist with onboarding and support for as long as you’d like and have the requisite organizational infrastructure for doing so professionally.
9. Should Feel Right
While there may be many firms out there that can handle your technical challenges, that doesn’t mean that they’re all a good fit for you and your organization. Pay attention to how the firm is engaging with you and your team. Are they professional in how they do so? Do they get back with you in a timely manner? Are their communications clear? These are important questions to ask yourself while engaging with a prospective partner. Having the right fit for your organization’s style and preferences will go a very long way towards a successful long-term partnership.
MercuryWorks has solved wicked problems for hundreds of clients and has developed many long-standing relationships based on trust, customer service, and quality. With more than 20 years of experience in software development, we consistently ship custom solutions that closely align with business needs and continue to work with clients for their long-term, ongoing, evolving support and development.