Outsourcing software is normal and often sensible. The risks are well known, and most of them can be reduced with habits you can start before the first line of code is written.

The common risks

Most problems fall into the same few groups.

  • Unclear scope that grows without anyone agreeing to it
  • Knowledge that lives only in one developer's head
  • Quality that cannot be checked until the end
  • Code or data you cannot get back
  • Security handled as an afterthought

Habits that reduce them

Agree the scope in writing and change it only in writing. Ask for working versions every few weeks, not one delivery at the end. Keep the code in a repository you own.

Keep a way out

Require documentation, access to everything you paid for and a handover at the end. If you can leave without losing the system, the relationship stays honest.