What Questions Should You Be Asking Your Potential App Developer?

Software development is a hard craft to tackle and mobile development is no different. Good developers are hard to find, and even harder to motivate and retain. But without good (preferably great) developers, every project has the capability of becoming a nightmare.

Good developers know how to build good software in a logical and consistent manner and obsess over the small technical details. Without this attention to detail and craft mastery you are left with a brittle, hard to maintain (expensive) app that resists change. When you hire a development shop to build your mobile app, here is a sample of some of the questions they need to be able adequately answer:

1. Do you use a version control system? Correct Answer: Yes. Bonus points for using Git or Mercurial

2. Do you utilize Continuous Integration (CI)? Correct Answer: Yes. Bonus points for using an automated solution like Jenkins, Hudson, etc.

3. Do you have written best practices and development guidelines? Correct Answer: Yes.

4. Do you perform periodic code reviews? Correct Answer: Yes, fairly frequently.

5. Do you use 3rd party code, SDKs, or Frameworks where appropriate? Correct Answer: Yes. Bonus points for having a reasonable policy on this practice. Consideration should be given for cost, license type (GPL licenses are not appropriate for commercial software), maintainability, and quality control.

6. Do you have experience in integrating with 3rd party SDKs? Correct Answer: Yes. Bonus points for having experience across a broad spectrum of technologies.

And the list goes on! Too often prospective clients ask the wrong questions and are seemingly more concerned with checking off boxes about experience on a particular technology. The best development shops are the ones that are skilled at solving complex problems, regardless of the technology or platform. Most importantly, they are passionate about their craft and take their work personally. This encourages a working partnership that pushes both the client and developer to perform at the highest of levels. The end product is a direct reflection of both parties and when it is successful, both teams celebrate the win!