Unless you’ve had a bad experience that put it on your radar, or you’re a software developer, “source code” isn’t exactly a topic that makes the rounds at dinner parties.
But, if you’re planning on hiring an app developer to create a custom mobile app for your company, “source code” is a topic that you must discuss, before you get started.
Here’s what you need to know…
What is “Source Code”?
Source code is written by your developer, and consists of the commands and instructions, behind your mobile app.
There are many “languages” that the code can be written in – such as Java and Objective-C.
Here is a snippet of code that prints the statement “Hello World!”.
What is a “Compiled App”?
Although a software developer can read and write source code, a computer can not.
So, after writing the code, your developer will “compile” it. This process of “compiling” converts the Java, or Objective-C source code into machine-readable code.
The result is a single file (your “compiled app”), which can be uploaded to the app store, or installed on a mobile device.
The source code is the cupcake recipe, the compiled app is the cupcake. Are you buying the recipe, or just the cupcake?
Why You Should Care…
When hiring a team to create your custom mobile app, it’s important to understand their policy on source code, and what the contract says about it.
Let’s play worst case scenario for a minute.
You hire a developer to create version one of your mobile app. You’ve paid all the invoices, and the app (the compiled app) is available for download in the App Store and/or Google Play. Your experience working with your developer was poor, so you find another developer to create version two, and take care of ongoing maintenance. But, in order to update your app, the other developer must have all the source code. So you contact the developer and ask for the source code. Oh? But their contract only gives you rights to the compiled app, not the source code.
Yes, it happens.
What I Recommend…
Here are some pointers, and questions to ask, before signing a contract.
1. Source Code – versus – The Compiled App
- Ask whether you will receive the source code, or just the compiled app.
- Will you receive the full source code needed to recompile the app, or will parts be withheld (see the Software Libraries section below).
Without a copy of the full source code, you could be held hostage by the developer that created your original app.
Be sure that your developer agrees that you’re buying the cupcake (compiled app) AND the recipe (source code).
2. Exclusive – versus – Non-Exclusive Ownership
- Will you have exclusive ownership of your app, and any custom code written, or could the developer resell your app to another company in the future?
This is the difference between buying “off the shelf” software (developed once and sold to many), such as Microsoft Office, versus software that has been custom-created for your organization.
Microsoft doesn’t sell you the source code behind their software, you buy the cupcake…and they sell those cupcakes to many other people.
3. Software Libraries
A software library is a collection of functions and code that a developer may use to avoid writing certain (usually very common) features, from scratch, for each app they develop.
This code was already written before you hired your developer; it has been reviewed, tested and proven to work. Your developer owns, or has rights to this code, and may use it in your app.
This is common. So long as you also receive the code, and rights to use it for the purposes of your app, it is nothing to be alarmed by.
- When your developer gives you a copy of the source code do they include ALL the source code, or are pre-existing libraries (or other parts) left out?
In the cupcake analogy this could be a special mixture of flour created from rice flour and coconut flour. Will you receive a copy of this special flour recipe, or just the instruction to use “flour”?
Take this one very seriously. It is not uncommon for developers to have proprietary code that they use in their projects, and do not hand over when sending the source code to their clients.
Some developers will charge extra for this code.
This isn’t really “right” or “wrong”, just be sure you know, and agree to, their policy.
How We Ensure You’re Not a Hostage
At Big Fish we believe you should be free to choose your developer. To ensure our clients have this freedom, our contract states, and we clearly explain that:
- All source code and documentation developed by Big Fish, for our client, is the sole and exclusive property of our client.
- Big Fish may use pre-existing code, or libraries, developed independently; and our client will receive a royalty free license to use or modify that code in connection with the mobile app we developed for them.
- You receive the compiled app , and ALL the source code.
Who owns your source code? You do.