How to vet and hire a competent software development firm
The software development industry can sadly be opaque. If you’re thinking about building a platform, system, app, or integration, you may have pondered:
- Where should I look to find a bespoke development team?
- How can I vet technical competency?
- How should I value this type of work?
- Do I own the custom software?
- Should I go local? Or off-shore?
There are even questions you may not have thought of:
- What is a team’s quality control process?
- Will I need to pay someone (this team or otherwise) to maintain the code after delivery?
- How can I frame the requirements of this project in a way that optimizes cost, value, and scalability?
K-Optional Software often educates individuals and businesses on the software development process; we hope to answer your questions and share some of our insights publicly here.
Prospecting bespoke development agencies
Your first order of business is locating the pool of expertise. Because software engineering technically only requires a computer, there are a lot of firms and developers out there. Needless to say, some are better than others.
Here are some of the primary ways people look for software talent:
- Many folks ask their network for recommendations; maybe a colleague or cousin hired an app development crew at some point. LinkedIn posts of the variety “Anyone know any good software developers?” are not uncommon.
- Others run a Google search and try to build a profile of what a development group looks like (if that’s you, you’re in the right spot).
- Some tap gig economy marketplaces like Fiverr, Toptal, and Upwork.
Reputation matters: not all development groups are equally competent. So having a personal connection to a firm, verifying compelling testimonials, or speaking to reference clients is advised.
Otherwise, you should look for:
- Experience, i.e. number of projects and years in existence
- Perceptiveness to your industry or idea, i.e. does the firm get what you’re trying to do? Can they relate to previous projects?
- Payment models (see below)
- Your appeal to their existing portfolio
Development firm pool
The size of the pool of candidates for consideration varies. You might hire your first firm, or you might shop around for a long time. For reference, about half of K-Optional Software clients spoke to other potential firms before signing a deal.
What do developer firms charge?
Ideally, you should try to refine your software development needs and get ballpark price ranges at this point. Why just a ballpark range? Well, bespoke software is truly a different language, and sussing out what the translation looks like isn’t immediate. A good development group will ask you questions you hadn’t thought of before, ones that reframe your objectives in the context of digital systems. Research begets precision and certainty.
Expect to get a range of base +/- 20% from a decently descriptive birds-eye conversation. If your needs themselves are vague, then the range can be a lot bigger. In that case, you’ll want to drill down a bit deeper and work together to define what the initial requirements of your project will be. That can take time and brainpower, so expect a relatively inexpensive consultation process.
See also: The Ultimate Developer Engagement
Bespoke development billing modes
Software development businesses typically send invoices in two flavors:
- Rolling hourly bills
- Fixed-cost project bills
Unsurprisingly, each offers advantages and disadvantages, and the optimal model for your project really depends on your needs. Try thinking in terms of incentives.
- You want assurances of deliverables meeting your expectations prior to investing time and resources.
- Likewise, your developer counterpart wants to guarantee stability before shuffling resources around. That’s because allocation overhead doesn’t always get recouped.
Therefore, your chief concern in an hourly mode is for costs to climb unceasingly. A fixed-cost model also creates anxiety at the chance that deliverables don’t meet your expectations.
The wisest clients will maximize certainty by developing a detailed requirements document that aligns incentives.
Requirements document - a specification outlining what will be delivered, at what time, and for what cost. Vague requirement documents run the risk of being interpreted differently by different parties.
For these, K-Optional Software offers a hybrid model: a low-cost consultation engagement aimed at producing a perfect requirements doc for a subsequent fixed-cost engagement. This is the best way to stretch your resources.
Execution: bespoke software development
You decide that a particular firm can deliver your vision for a price within your budget. Now what?
Most firms, K-Optional included, initiate the following sequence:
Both parties sign a contract dictating terms and expectations.
- K-Optional Software always stipulates that the client owns all code and intellectual property, for example.
You receive and pay an invoice or deposit as agreed upon.
The development group onboards you onto their project management system; an experienced firm will set expectations of communication cadence and protocol.
Up and running
Next, your development group should be chugging away, writing code, and hopefully keeping you in the loop. For example, K-Optional sends weekly or biweekly updates on code contributions and project developments. That means a changelog, the focus of the week, next steps, and any new insights. You should expect to periodically answer questions during the development phase, e.g. “iOS now requires apps in the App Store to allow account deletion; where do you think the best place is to present this option?”
Product launch when hiring to develop
As the engagement nears completion, you’ll enter an important phase.
Though some engagements end with the exchange of code, most clients want their developers to handle deployment and launch. That entails uploading all code to secure infrastructure, wiring up live domains, and flipping the switch.
Note: at K-Optional, we typically set up production infrastructure immediately after kick-off. Continuous integration means that deployment for us just means making the live link public.
Two matters of roll-out tend to surprise clients:
- Roll-out demands close coordination between both parties. You will likely be focused on the concerns of launch, like preparing your company to onboard or marketing your product. The development firm will probably be running a quality control process, and it’s best if you both are up to date with each other’s status!
- Regarding quality control, the process where developers formally check off requirements and kick the tires, you give yourself a huge advantage by being involved. That means running through a staging version of the software periodically and confirming that expectations are met.
The roll-out phase ends when platform usage stabilizes: you as a client can onboard users without help and the system takes on a life of its own. This is the most satisfying part of a development engagement.
Finally, you should consider what occurs after launch:
- How can you be sure of system robustness after project completion?
- Did you earmark any features for implementation after launch?
Bespoke software warranty
Some firms agree to monitor your system without extra cost for a period of time. K-Optional is one of these companies. We really like to make sure that you are realizing a return on investment. Ask your developers what their warranty policy is during the prospecting phase.
Custom software maintenance
One fundamental reality of software is maintenance. Code runs on operating systems that update, browsers that evolve, and hardware that generally improves. It’s a good idea to plan for periodic upgrades and audits to keep the system running smoothly. That said, you shouldn’t feel like you’re held hostage by your development group; if maintenance is necessary, it should be a drop in the bucket relative to implementation costs.
Since maintenance often gives clients pause (you paid for development, and you still need to consider covering ongoing upkeep?), K-Optional develops all platforms “resiliency-first.” We deliver monitoring tools alongside your product and generally build in backup systems in the case of an issue. For example, a client of ours launched their platform on HostGator (they had an account beforehand and preferred to keep domains in one spot), which recently had outages. Fortunately, we provided a backup domain for this exact event, and no one missed a beat!
Resilience of custom software
If you’re wondering what you can expect from a well-made platform, here are two helpful rules of thumb:
A good system can handle up to an order of magnitude of growth, i.e. 10x usage increase from initial expectations, before requiring meaningful improvements. 
Infrastructure upgrades occur somewhere between every few months and every few years. For example, the Laravel web framework supports a stable version for about two years. 
- A single system could have 2-10 infrastructure dependencies on their own schedules.
 An Elegant Puzzle: Systems of Engineering Management by Will Larson
Optionally iterating with a development firm
One way for you to innovate within the constraints of an engagement is to earmark features for future development.
Example: you worked with a development group to hit a certain budget, which meant moving a “nice to have” component like SMS log-in to the back-burner. It might be fortuitous to proceed with this piece after achieving some sort of usage threshold. In other words, your investment has now paid for itself, and you can derive more mileage while staying in the green.
K-Optional Software is a boutique product engineering firm. Since our founding in 2017, we have maintained a perfect success rate on our 40+ projects.
Unlike most competitors, K-Optional does not hire sales reps with no engineering background. That means that any personnel you speak to regarding a potential project knows what you’re talking about.
If you’re considering hiring a development firm and have any additional questions, schedule a free 15-minute QA with a K-Optional project manager.
A special thanks to my colleagues Michael Mantzke and Jack Nadal for reading drafts of this and providing feedback.