5 Insider’s Tips to Avoid Mobile App Development Problems
Recently, a friend approached us for “Help !!!” – literally, with 3 exclamation marks ! He had developed a mobile app with another development house, but due to some dispute, the development house threatened to stop hosting the mobile app (which is gaining some initial traction) and blocked his access to the backend administration system. He could not even access his existing customer list.
Such horror stories happen with disconcerting frequency. Therefore, we thought we could offer some tips on how buyers can protect themselves. Obviously, the best way is to avoid horror stories is to select a reliable developer. We give tips on doing that in our main Mobile App Buyers’ Guide article. This article focuses on the unforeseen circumstances that may arise even after best efforts to find a reliable developer.
- Legal protections
Ultimately, the buyers’ bargaining power derives from the agreement signed with the development house. So here’s what to look out for in the agreement:
- Singapore incorporated – The development house should have an entity based in Singapore. This would mean that in the event of any dispute, the development house is likely to have some assets at risk. If the development house is incorporated in other countries, you would have to go through a great extent (i.e. time and money) to pursue any recourse.
- Singapore jurisdiction and law – Enforcement and dispute resolution mechanisms are efficient and well-established in Singapore. The agreement should be governed under Singapore law.
- Clear intellectual property, source codes and data ownership – Make sure the agreement specifies that the buyer owns all intellectual property, codes and data generated from the development process and also in the operation of the app.
- Payment terms – Having a tranched payment as work is completed is a fair way of payment. Should you be dissatisfied with the progress of development, you can stop development without having paid the full amount.
2. Source codes
While legal protections are great and would strengthen your bargaining position in the event of a dispute, ideally you don’t want to have to go down that route. So protect yourself upfront by making sure you have access to the source codes at all stages of development. If the development house uses a source code repository such as GitHub or Bitbucket, get access to these repositories and download a backup copy at all stages of development. With these source codes, should you face disputes, you can try to get another development house to continue development.
3. Passwords and hosting
Make sure you have admin passwords to the backend system that you can change should a dispute start to occur. Also, make sure you sign up directly to any hosting providers that are being used, and that accounts are created in your name. You can then provide access to the developers as needed. Many hosting providers such as Amazon Web Services have Access Management systems that allow you to delegate access to developers as needed.
4. Agile development
Agile development, in simple terms, means that the development house should provide interim builds to you as the project progresses. These interim builds may be buggy and not fully functional, but it pays to test them as thoroughly as possible to make sure the developer is on track with your timeline and expectations. If you sense that progress is unsatisfactory, at least you can pull the plug and look to switch developers early in the development process.
5. Go native
As mentioned in our Mobile App Buyers’ Guide article, there is much debate on the merits of using hybrid systems (and there are many) versus coding in the native iOS and Android programming languages.
Nonetheless, we are going to reiterate our simple recommendation to go native. If you get into a dispute and want to switch developers, there are vastly more developers that support native iOS and Android development. If your initial developer (which you are now dissatisfied with) used one of the hybrid development platforms, you have to find a new developer who is familiar with that particular hybrid platform. As you can imagine, you will have very limited choice, particularly in Singapore. At that point you will be faced with a tough choice – be held hostage by your current developer or start again using native development.
Too often, we get requests to take over from other developers. We hear of stories where other developers hold buyers hostage. Frankly, even with the best intentions, it is tricky to take over a project mid-stream, so it is best to avoid such situations. Hopefully, the above tips help to level the playing field.