22

I'm working as a independent software developer for mobile applications. A customer asks me to develop a mobile app. So at the moment I'm calculating the time and effort to write an offer for this project.

The app itself will only be used for a certain time as it is related to a certain event after that if will be useless. But the base functionality of the app will be reusable for other customers who want to have a similar app for their event.

At the moment I'm wondering if it is OK to develop the app for the customer let him pay the development and reuse part of the source code for another customer's app?

So what would be the best way for me to deal with this scenario?

  • To whom belongs the source code of the app?
  • Do I have to give the source code to the customer as they paid for the development?
  • If I have to, can I still keep a copy of it and reuse it later?
  • Do I have to ask the customer to reuse the code?
  • Do I have to work with some kind of licensing model here. And let the first customer only pay a certain part of the development so I can reuse the code without any concerns?

I hope I made my situation clear. I'm looking forward to you answers.

6
  • Have you established a formal contract with the customer yet?
    – Thomas Owens
    Jan 30, 2012 at 11:49
  • No, at the moment I'm in the planing phase. Until now I've only talked to the customer about the requirements.
    – Flo
    Jan 30, 2012 at 11:53
  • 5
    @Flo - Write a contract that addresses all these concerns. By default the copyright goes to you as the author. Of course if you agree to a contract that says otherwise that is on you.
    – Ramhound
    Jan 30, 2012 at 12:32
  • 9
    You should consult a lawyer, instead of relying on the guesses of a bunch of programmers who don't know the details of your situation and your local laws. Jan 30, 2012 at 14:38
  • 1
    Related: stackoverflow.com/questions/900803 Jan 30, 2012 at 17:28

6 Answers 6

26

You should decide before you start the project, who will maintain ownership of the code.

If they happily allow you to keep ownership then you're fine to use it in other projects. If they wish to take ownership after then it's a negotiating point.

3
  • 6
    It may be in your interest to suggest a deal in which you can reuse the code, but not in projects for your customer's competitors. That seems more palatable from their point of view. Jan 30, 2012 at 15:06
  • 4
    If they object the usual option is to quote 2rates. 1 if I can reuse existing code and libraries and 2. an amount 10x as much if I have to recreate everything from scratch for this project only. In practice you put in a bit about "reusing standard code and libraries" just to cover yourself and nobody ever notices or cares. Jan 30, 2012 at 16:56
  • 3
    +1 to Martin Beckett. You should have two codebases in any project; A set of "common" libraries containing code with global application, which you "license" to your clients, and the "custom" code that your client will actually own on completion. You can stipulate in the contract that development of the "common" libraries with new features in response to this project's requirements is still billable. You will have to negotiate with the client case-by-case on what qualifies as "common"; the client may want a codebase that isn't wholly dependent on your licensed code.
    – KeithS
    Jan 30, 2012 at 17:36
6

Since you don't have a contract yet, you need to work out these issues with the customer before you sign the final contract. From my understanding, this will happen if the customer agrees with your estimates on time and cost, so it's something you should be thinking about discussing with the customer now, along with the requirements. These are things that are often included in such a document. What's included should be agreeable to both you and the person paying for the product, although depending on the person or organization, you might not get everything you want.

If you don't have a lot of experience in writing contracts, or if you have very specific questions, the best person to ask would be a lawyer who specializes in contracts and business law - they would know if what you wrote would stand up in court should there be a problem. You wouldn't want a mistake in your contract to cause problems later on.

1
  • 7
    +1 I would like to add too that getting legal consultation or help writing your first contract is a good idea so that you can get it right. Generally then most deals are very similar so it is pretty easy to use your old contracts as a template for your contracts that you write for new clients later.
    – maple_shaft
    Jan 30, 2012 at 12:45
4

The answers so far have been excellent. I wholeheartedly agree with the advice to:

  • ask a lawyer
  • draw up a contract every time you work with anyone
  • continue to work with your lawyer
  • profit!

In this situation, you already know that the "base functionality of the app will be resusable for other customers", and in fact I am sure you (and others) have already experienced situations in which you know some basic functionality or frameworks -- be they web, mobile, desktop, or otherwise -- are going to be reused. I mean really, why wouldn't we reuse something we know works, and we're familiar with? We probably all do it all the time.

This might not work for you, but it has worked for me over the years:

  • Eat the development cost of anything you think you will reuse, retain ownership, and license it to your clients. No external money changes hands in this process, to keep the ownership clear.

In that situation, with the help of a lawyer, you can make it clear that your clients are paying for everything built on top of that base functionality that you provide, they own that customization but not the base, and you continue to be free to develop for others in a similar way.

If the client demands exclusivity of use, then you can offer it to them at a price that remunerates you for the the time, effort, and inability to sell it to anyone else in the future.

The downside, of course, is that you're developing something for free. You have to be certain it will be resusable, and that others will pay you, otherwise it's a bad gamble. But if you plan to be an independent developer for some time, and have a client base -- or at least want to -- this line of thinking might be something to consider for the long run.

And talk to a lawyer!

3

To whom belongs the source code of the app? Do I have to give the source code to the customer as they paid for the development?

This depends on the contract. In general, you must ask the customer about what is known as exclusivity. For example, you could charge much more for exclusive development (and then the customer will own the code); alternatively you can tell them customer will have to pay less but you are legally owning the source. You can supply/install binary-only version of the software to customers so that customer's will have to come to you for modifications.

If I have to, can I still keep a copy of it and reuse it later? Do I have to ask the customer to reuse the code?

Generally, keeping a copy is not illegal/unethical. You can use it when customer asks more development. However, distributing code (to someone else) if the deal was exclusive, is not right.

Do I have to work with some kind of licensing model here. And let the first customer only pay a certain part of the development so I can reuse the code without any concerns?

Not only from the point of view of reuse of code otherwise, the licensing process must be there to define all items of customer's and your concerns. So you must license irrespective even if the deal is one sided. Also, you should include provisions for future development later for the same customer.

7
  • 1
    -1, There is no reason you can't distribute the source code even if you own it.
    – user606723
    Jan 30, 2012 at 15:22
  • @user606723 will you read the full sentence please? However, distributing code (to someone else) if the deal was exclusive, is not right. i.e. if you had developed the code exclusive for a customer distributing to someone else is not appropriate! Jan 30, 2012 at 16:44
  • "alternatively you can tell them customer will have to pay less but you are legally owning the source. You can supply/install binary only to customer." <- this is what I am referring to. You can give non-exclusive rights to source code.
    – user606723
    Jan 30, 2012 at 17:00
  • @user606723 isn't this covered in my answer as well? alternatively you can tell them customer will have to pay less but you are legally owning the source - what is the point of disagreement? Jan 30, 2012 at 17:07
  • 1
    @DipanMehta: I agree with user606723; and your latest edit hasn't fixed the problem. The problem is that "[...] alternatively you can tell them customer will have to pay less but you are legally owning the source. You can supply/install binary-only version of the software to customers [...]" makes it sound as though you can't give customers the source-code if you want to still own it. The fact is that you can still license the source-code to them for specific purposes, without giving up ownership and/or relinquishing all rights.
    – ruakh
    Jan 30, 2012 at 18:52
-1

You can always use in your code other libraries, open source for example. Obviously client will not have copyrights over them. In special case, you can use libraries written by you. Client pays for customization - that part, that is designed for him and his business needs. Everything that is not user-specific and is to be used in multiple projects can be your own library. I see no problem there.

The problem would be if you reuse the interface or business logic, or even resell the same project to someone other. Utility code is something the client usually isn't aware of and doesn't care either.

2
  • 1
    Of course, this would all have to be disclosed to the client.
    – user606723
    Jan 30, 2012 at 16:17
  • 1
    No, it wouldn't. Licences such as Apache or MIT allows commercial usage. Jan 31, 2012 at 8:40
-1

The other answers are oversimplifying things. I don't mean to have a complete answer, just to point out a few things.

  1. You can give rights or you can give exclusive rights.
  2. If you give exclusive rights, you can maintain that as part of the agreement, you will retain non-exclusive rights. (This will allow you to use the code/program personally)
  3. Even if you don't supply exclusive rights, you can still supply non-exclusive rights to use, modify and distribute the source code. The two are not mutually exclusive.
1
  • -1 your answer doesn't cover ANY point that others haven't spoken before! Jan 30, 2012 at 17:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.