I can’t tell you how many clients have come to us after having disastrous experiences with other software developers. While those nightmare situations give us the chance to shine by contrast, I hate hearing about failed projects. They make people skeptical about whether an external software development partner can actually deliver great value to the companies that hire them.
“As you interview potential software development partners, ask open-ended questions that beg for more creative problem solving. You’ll get a better sense of who will be a better software partner – and who’ll simply be yes-people.”
The truth is, it’s not easy to hire a consulting firm of any kind, including software development. Since I manage a software development firm, friends and colleagues often reach out to me for tips on how to evaluate different agencies. While every situation is different, here are eight musts that can help you avoid making a costly mistake:
1. Hire a professional
There may be a temptation to hire that friend who talks like a modern-day MacGyver and says he can hack you up a solution on the cheap. DON’T DO IT unless they’re a regularly practicing software professional – in other words, software development is their day job! While you might be able to save some money at the start, it’s a good bet it’ll cost you more money down the line. Worse, you’ll waste more time before you have functioning product. As our director of software development Ned Robinson likes to say, “Software development is a craft.”
One of our clients hired a neighbor to develop an application. The original project was estimated at a cost of $5K (unrealistic). In the end, it cost $30K and the company got a horrible product. When we arrived on the scene, we found chaotic code in a state that no professional developer would have written. The client spent nearly $15K just cleaning up the software to make it barely functional.
2. Work with a business, not an individual
There are plenty of great independent contractors – heck I started out as one. Some run their operation as a business, but most do not. What’s the difference, you ask? Many independent contractors like the lifestyle and limited hours, but that means they’re not always available when you need them. A larger team like eAlchemy provides backup when team members are out. Bigger teams at established agencies also are more likely to have best practices they follow when it comes to QA, documentation, and support. Furthermore, more well established businesses will be there for you when something goes wrong a couple of years later — individual contractors may have moved on to the next thing.
Again, there are some great independent contractors out there — but if responsiveness, stability and future accountability are important, hire a firm.
3. Get a referral
Trust is crucial when it comes to hiring anyone — and a great way to hire a software development company is to leverage referrals from your network. When someone refers you to a partner, they’re usually giving that referral from experience. Even beyond making the decision to hire, that referral relationship could come in handy down the road. Because you know people in common, your new software development partner will be more motivated to amicably resolve any disagreements with you.
4. Find a fair and flexible partner
There comes a point in virtually every software development project where the original project scope needs to shift. It could be because there was a misunderstanding at the start, or that the needs of the business changed, or that the development team encountered an unknown.
How you and your partner software development company respond to this tension will be a major factor in the success (or failure) of a project. As you’re vetting development firms, ask for examples of how they resolved similar issues. The answer should always include a little give-and-take from both the company and the developer.
If you take an adversarial approach and a firm repeatedly bends over backwards to accommodate you, things will end badly. You may get what you want in the short term, but you’re likely to foster feelings of resentment from the team members that are working hard for you.
Conversely, your development partner must accept responsibility for their role in challenges. If every unknown turns into a change order and increased cost to you, there’s a problem. Properly estimated projects should include some contingency for potentially missed/misunderstood requirements. At eAlchemy, we often build a 20-30% contingency budget into our project bids. We only use these funds when the work falls outside of the original scope, and it’s mutually agreed that the work should be done. But, clients aren’t billed for unused contingency budget.
5. Partner with people who understand your business
We pride ourselves in understanding the ins and outs of our clients’ businesses — and their place in their respective vertical industries. We come across a lot of software developers who are experienced in their craft, but don’t have a great capacity or motivation to understand the business or the target user they are building a solution for.
One of our clients worked with a company that by all technical measures was a pretty good development shop – but the product manager at the center of the project didn’t understand the business. He didn’t understand the context of the solution he was building. And this lack of understanding led to several wrong turns, corrections and ultimately a project that quickly broke the budget.
Before you hire a software development partner, interview the product manager or person who’ll be managing the project for the firm. They should ask you relevant questions, and show a curiosity for and at least a surface understanding of your business and industry. Explain your needs in detail, and then ask them what they think the biggest challenges to the project will be. Their answers will give you a pretty good idea if they’ll truly be able to “get” your business and the software experience you’re trying to build.
6. Don’t hire yes-people
You shouldn’t hire a software development firm because they can write lines of code on command. You should hire them because they are developers who can find creative ways to solve a problem or address a business need. It may sound a little cliché, but we consider ourselves strategic partners with our clients. We try to understand the goals and motivations behind a project. With that understanding and some room to innovate, we’ll often find solutions that can be developed more quickly than our clients’ expectations – and even under budget. And at times, we’ll be able to anticipate client needs in other areas where their limited knowledge of the technologies has limited their thinking.
As you interview potential software development partners, ask open-ended questions that beg for more creative problem solving. You’ll get a better sense of who will be a better software partner — and who’ll simply be yes-people.
7. Don’t choose your partner on pricing
Everything has a price — but in the world of software development, if you go cheap at the start, you’re more than likely to pay for it later. Our office has a running joke about some of the “competition” we affectionately refer to as TNDI, or Top Notch Developers, Inc. We’ve cleaned up the aftermath of code catastrophes from individuals and agencies that quote a rock-bottom price, only to deliver a rock-bottom product.
I recently read a post on the neighborhood social site NextDoor. The person posted about two painting estimates — one for $28K and the other $7K. The person commented on how overpriced the first estimate was. What that person missed was that the services weren’t the same. The lower estimate covered painting the house. The higher estimate included prepping the house to ensure the paint job would last a long time, a premium quality paint, insurance for the contracted painters in case of injury, taped and protected windows, and precautions to ensure neighbors weren’t affected by overspray. Know what service you want, and don’t be fooled by the pricetag alone. Like it or not, you always get what you pay for.
8. Check references
Some folks can talk a great game. They may have a shiny new website boasting of great capabilities, and everything sounds awesome when they’re telling you about their service on a qualification call. But when you dig a layer deeper, the experience and product may not deliver.
The best way to cut though the surface-level hype is to check references. Ask the potential partner how many projects they’ve completed in the last six months. If it’s fewer than six, ask for contacts at all of them and call three. If it’s more than six then ask for their last five. This avoids them cherry–picking the best clients who love to talk about their great experience.
When talking with these references, don’t just ask about whether the overall project was a success. Ask them how disagreements were resolved. Ask about the differences in cost and timeline between their quote and the final bill. Make sure you talk to at least a couple of people who worked with the project manager, and ask about their experience working with that person. Finally, ask them to show you the work. Would you be happy with the quality of the product? Were they?
Speaking of references
I hoped this helped and that you are successful in your search for a top-notch software developer. And if you’re looking for a software development firm specializing in data integration and business intelligence, we’d love to talk – and yes, we’d be delighted to provide client references (in the meantime, feel free to check out some of our work here).