Big Fish is an app development company in Tampa, Florida. From time to time we receive calls from companies that are not happy with the person or agency that developed their software, and they want to have us take over.
This includes ongoing updates, maintenance and fixing the persistent problems (i.e. bugs and performance issues) that are plaguing their software.
At Big Fish we believe that when you purchase custom app or software development, you should be free to change providers if you are not satisfied. But, switching providers, or moving development in house, requires a full and complete copy of the source code.
Unfortunately, companies sometimes find out their source code is held hostage by the app developer they hired to create it. Switching to another provider will result in losing all, or part of the custom development they paid for; or it comes with a high buy-out fee.
This is one part highway robbery, one part misunderstanding contract terms. Here’s how you can prevent being held hostage by your app developer, and why it happened in the first place.
I. The Technical Stuff You Need to Know Before Hiring a Developer
Software development is not everyday knowledge. The sad truth is, if you don’t understand it, you’re more likely to make the mistake of signing a contract that creates your own hostage situation.
Fortunately if you know a few technical details now, before you invest in custom app development, you’ll have the red flag sensors needed to sniff out a hostage situation before it happens.
Please understand this – a mobile app has four main components:
- The compiled app that is submitted to the app store and users install on their smartphone
- The source code used to create that compiled app (this is where the money is)
- Any custom-developed APIs, or web services that the app depends on to function (also where the money is)
- The database(s) where all of the data used by the app is stored (ex. user account info, images, work orders, GPS tracking data, etc.)
- The compiled app takes minutes for your developer to create once he or she has a complete copy of the source code. The compiled app is a single file and cannot (or cannot easily) be deconstructed back into source code.
- Some app developers give you a copy of the compiled app, but not the source code. This is where trouble can show up. If you don’t have a copy of the source code you can be held hostage.
II. How to Avoid Being Held Hostage by your App Developer
To avoid being held hostage by your app developer, you need:
- The compiled app
- A copy of the full source code, including any custom-developed server-side applications, 3rd party software libraries, etc.
- All of the data used by your app (ex. user accounts, user-submitted information, photos, completed work orders, job details, etc.)
- If you have an Android app here’s what you need from your Android developer
Before hiring a company to develop your app, ask them if you will receive those four things listed above. Also ask them to show you where it states this in the contract.
Red Alert: If they assure you that “you own the app”, ask them if they are referring to the full source code, or just the compiled app file.
III. Other Precautions to Prevent Being Held Hostage by Your Developer
1. Create Your Own App Store and Google Play Accounts
Ensure that your company creates your own Apple Developer and Google Play Developer Accounts. The accounts are necessary to create app store listings for your app, and you’ll want them in your name so you have the lock and key.
You’ll grant your developer access in order to create test versions of the app for your team, and set up and manage your app store listing.
It also makes sense to own your accounts from a branding and communications standpoint. You want the public to see your company name as the provider of the app, not the company you hired to develop it.
Do not take shortcuts to avoid the trouble of creating your own account! At Big Fish we walk our clients through setting up the account (by phone or emailed instructions), so it’s easy. In fact, you are required to have a legal representative of your company create these as there are agreements to sign with Apple and Google during the process.
The same “create your own” recommendation applies to any domain names.
2. Ask Your Developer This Question
“If we decide, in the future, to maintain this app in house, or hire another developer, will they have everything they need to recompile the app?”
3. Review the Contract Terminology
Heads up: This article is shared for information purposes only, may not include full and complete recommendations, and should not take the place of consulting with a lawyer.
If you’re hiring a company to develop custom software you should be paying for their services, not a product. The contract should include wording that specifies a “work for hire” agreement.
Also ensure that the contract assigns copyright of any custom-developed software to your company. If the contract talks about licensing the work to your company this is a red flag that they own it, not you.
4. Read This Article about Source Code
Last year I wrote an article called “Who Owns Your Source Code“. It has been very popular, and does a great job explaining what source code is and why “who owns it” matters.
That article also explains Software Libraries, and why developers often use certain pre-written code across multiple projects. This avoids the need to “reinvent the wheel” every time a client needs a menu in their app, for example.
The fact that they already own the copyright on these is OK, so long as you also receive a copy and license to keep using them.
5. Own Your Hosting Account
Your developer may offer to host your server-side applications and databases on their own infrastructure. Let me say, if you’ve made it this far you’re probably talking to a company that has no interest in holding you hostage, and has safe guards in place to ensure you’re protected.
But, if you want to be extra cautious, you can ask to use your own 3rd party hosting account. In fact, you can even ask who they use and set up your own account directly with that provider.
Hosting has complexities and it can easily be said that using your developer’s hosting solution will be more straightforward from an administration standpoint. An upside of using your own hosting account is it makes it much easier to switch developers if necessary.
Using your own hosting account also ensures the growing data you are accumulating is owned by you and easily accessible should things sour with your developer.
At Big Fish our clients often come to us with their own servers and databases (hosting) already set up and running. If they don’t, we walk them through getting these set up. Our clients own their hosting accounts.
IV. How Your App Wound Up Held Hostage in the First Place
a. You Bought a Platform-Based App
The legit, but sucky, reality is that you might not have actually purchased fully custom software. Some app and software companies create their own proprietary “platform” in house and run all the apps they sell off this platform.
They own the platform not you, but your app requires it to function.
On that unfortunate day when you ask to cancel your services and receive the source code, you find out that won’t be possible.
A well-known example of a platform is Salesforce. You can pay a lot to use it and have custom code written to run on it. But all that custom work is still created to run on the Salesforce platform. You can’t stop paying them and still use it.
It’s not just the big guys that sell platform-based software. Smaller local companies do as well. Simply ask the app development agency you plan to hire if they have their own proprietary platform that your app will run on. If they do, find out what happens if you want to move to another app developer .
b. You Purchased a License, Not Ownership
Check your contract terms. Are you buying a license to their prewritten software suite, or are you buying custom-developed software? This is comparable to leasing a car versus buying a car.
Ask , up front, what you’re buying. Then explore the pros and cons of each for your company.
c. Your Contract Did Not Give You IP or Ownership of the Source Code
This one was the focus of much of this article, so I won’t rehash it here. This is where it is so important to understand the difference between an app and the source code, and who owns what.
Consider this a precautionary article about something that does happen in our industry.
It happens in other industries as well…the web development agency that designs and develops your website but owns the code behind it, the graphic designer who gives you the final print-ready event poster, but not the source files needed to edit it next year. The bakery that sells you the cupcake, but not the recipe to make it.
It’s easy to see why a company would choose to have this policy. Some feel they have legitimate cause to hold back the source and would say their clients are paying for the final file only. They consider the source their creation, to which they then own the copyright as the creator.
This is why it’s so important to get clear on whether you are 1. buying a product that has been created for you (ex. a cupcake), or 2. paying for a service and ownership of the output of that service (ex. a custom cupcake recipe).
Especially in the custom software development world, where you’re investing tens or hundreds of thousands of dollars. I believe it’s imperative that your investment is protected by contract terms that ensure you own the source.