We’ve all heard the horror stories about using outside software development shops. Project overruns, bugs, poor performance and quality, and an impossible to maintain codebase are some of the most common. As with any service, the quality is completely dependent on the individuals providing that service to you. For custom software development, it’s even more challenging, as writing software is both engineering and art, and the best developers harness a bit of both.
In this blog post I’ll highlight some red flags to consider when choosing a development shop. Every development shop has their own way of doing things and when you’re choosing a team to develop custom software, which hardly ever comes cheap, it’s important to choose a skilled shop who can build your product right, the first time.
Let’s work backwards and start with the ugly. There are many shops that quote crazy low rates. Oftentimes “off-shore” shops fall into this category simply because shops overseas have lower wages and less overhead costs. There are plenty of amazing developers all over the world, but there are many more bad developers, and it’s likely that the really good ones can command salaries higher than $20/hour.
With the ugly shops, you get poor communication, missed deliverables, lots of strange bugs and just an overall poor experience. In many cases projects from these shops need to be scrapped and started from scratch since the initial architecture and design were wrong to begin with.
The bad shops in many cases try very hard to look like good shops. They have shiny case studies from reputable companies touting their great work. These shops really do have some great success stories, but many times they are the exceptions, or the shop had to throw in a lot of free work to keep the customer happy. These shops typically don’t have a consistent process they follow, they tend to underestimate the amount of work and they’re often dismissive of challenges and risks (no problem, that’s easy!). Be wary of the overconfident shop that appears to have no warts.
Saving the best for last, the good shops communicate with the customers on a regular basis. They follow a consistent process, with someone designated to ensure they don’t go off the rails. With a good shop, you get direct access to the developers working on your project, with direct lines of communication through tools like Slack. The good shops will test themselves with their customers, constantly on top of customer satisfaction and any issues that pop up. You’ll also have transparent visibility into your project. At any time you should be able to see where you are in the project, what the budget burn is and what the projected end date (and total cost) will be. Good shops have nothing to hide and in fact operate better when customers are closely involved with the project.
How can you tell the good from the bad and the ugly? Start with this checklist:
- When, how often and with what regularity do you communicate with your customers?
- Do I have direct access to the developers working on my project?
- Will I be able to see the stories, backlog and project management software?
- How often do you track budget burn and report it to me?
- Do you survey your customers for satisfaction? If yes, what’s the data?
- Can I be involved with the project on a regular basis?
- Will I be in acceptance meetings at the ends of sprints, getting demos and helping prioritize in sprint planning?
The answers to the above questions will tell you if you’re talking with a good shop. Make sure you get real answers and don’t let them brush anything off or get too vague. There are many good shops out there, and hopefully you won’t have to kiss too many frogs before you find a prince.