1

Possible Duplicate:
Does making source code available affect your ability to generate revenue?

I'm developing a web application (it's not a website, it's a closed to public management application) and I'm really unsure about how should I sell it.

The application doesn't cost enough to allow me to ask this to a lawyer (he will asks maybe soemthing that is around the cost of the application), so I'm here to get some suggestions.

I would like to charge the client for the costs of developement (because the app is specialized on client requests), but I don't want to give them the source code, only the ability to use the application through web.

The second part of the problem is that I have to pay hosting for this webapp. Because I don't want sell hosting service, and I don't want to allow them to access to my source code, I would like to address hosting service costs in my agreement as "upkeep costs" (so the client will pay me each year).

Is this a correct way to license a webapplication?Also, is this ethically correct? I mean, they won't have my source code and if they stop paying obviusly they can't use the application.

Any suggestion about different licensing?Should I sell my sourcecode when I build a website?

EDIT 1:

My fault, I wrote something wrong. I'm still writing the business plan so I'm definitely allowed to choose how to sell my app.

Also, because I'm paying some commercial licenses for a library that I'm using in the app, will this license belong to me? They are paying the source code, the license for the library is coming from my pocket.

EDIT 2:

I don't want to charge them for all development costs, client will not need to pay external commercial licenses, I would like to sell him only an application with a una-tantum fee (like when you buy World of warcraft, you pay for the game and then you have a recurring subscription) and then a subscription like SaaS. Is this possible?

Obviusly if I break the contract for some reason, they can take the source code. If they stop paying me upkeep costs (hosting, but I want to use the hosting that I chosen), I can take down the application until they restart paying me.

EDIT 3:

To make clever what I would like to achieve: I would like to sell the app as I can sell a desktop app: I sell an executable file and not the whole code. Is up to me to charge it 1 or 100. The problem with this approach is: if they pay the hosting service by themself and I upload the code there, they can obviusly see/steal my code. How can I solve this issue?

  • Also see [Handing over source code](http://programmers.stackexchange.com/questions/36367/hand-over-source-code-to-customer). Aside from these questions, we can't write your contract with your client for you: you should consult a lawyer. –  Oct 01 '11 at 09:09
  • Can I complain about closing? I'm definitely not asking the same thing about that question (I don't want sell source code, could be any reason). I'm asking how can I avoid giving source code while selling a website. All 3 answers that I received are correct and I'm just thinking about which one fit better in my situation. Can the question be reponed for future programmers asking for this? – Francesco Belladonna Oct 01 '11 at 14:15

3 Answers3

6

Are you developing this for a specific client (sounds like it to me)? If so, you should have worked out the details before you started. If they're paying you for your work, then the source code belongs to them, plain and simple.

Easiest way to deal with the hosting issues is to have them set up a host account (with your direction) and simply give you the username and password. If things go south, they have control over the application that they purchased.

Another option (although this is something that should have been worked out prior to you starting work on it), could be to sell it as SaaS and charge a fee for it - most commonly as a subscription.

Demian Brecht
  • 17,555
  • 1
  • 47
  • 81
  • SaaS sounds nice, however if I sell this to only one client, I loose all the advantage of this :\ – Francesco Belladonna Sep 30 '11 at 23:46
  • Why? Have them sign up on a monthly subscription term. From there, look at maybe generalizing it.. Do some requirements gathering, figure out how to market it to other people. Get more people on board, get more money. – Demian Brecht Oct 01 '11 at 00:02
  • Well, it's not that easy... it's a really **focused** application. However make it more generic is always a good idea, I'm thinking about it. The problem is that I would like to sell the application as I do with desktop app (a single exe file), where you don't own the source code but you have the license to use the application. The hosting is just a "problem" because my source is visible there – Francesco Belladonna Oct 01 '11 at 00:27
5

It's not unethical if you disclose you won't be giving your client the source code. It is unethical not to let them get their data out if they discontinue though.

As far as legal stuff, IANAL, but the following is my understanding: You are actually allowed to charge a client for all the costs of software development, SaaS fees, hosting fees, expenses (purchases of third part software, travel) and retain full ownership of the code. Nor would your client automatically own the source code if you break the contract, more likely you would owe them damages, which might be limited to what they had paid you (or they might argue that the opportunity cost of not getting other software should be part of the damages, maybe, I don't know, IANAL).

However, there are some limits here. Mostly, there is probably a point at which they will tell you no. There is a legal concept of a contract so ridiculously one-sided that it isn't valid. There is a legal concept of good faith, so if you had them pay the full development costs and then were unreasonable about the SaaS part - jacking up the price, making them jump through hoops, whatever, you might be in the same boat as if you had broken the contract. Also, for some legal purposes it can be fuzzy if a client should be considered an employer, though you owning the software would be pretty strong evidence you are really an independent contractor or a separate business. Probably not an issue, but I repeat, I Am Not A Lawyer.

As for making them pay for third party licenses, it is possible for them to pay and you to own them, if you both agree that's how it should work and the third party license also allows it. That's the kind of thing you want to have in the contract.

I would think it might help legally if you at least gave them a discount on the SaaS in return for paying the development costs (if they are paying for those costs and getting nothing in return it's easier to argue they were supposed to get more, or that the contract is unfair - it sounds unfair). I have heard of people giving the first client a small cut of future sales revenue (temporarily or permanently) as an incentive to let them retain ownership of the code. If you do plan to sell the software to other people then giving your original client some incentive to help you build up more clients might not be a bad idea anyway.

Did I mention I'm not a lawyer?

psr
  • 12,846
  • 5
  • 39
  • 67
  • 1
    Your answer is really clever, even if YANAL ;), I'm working on it to choose what's the correct business plan for this situation. What should I do to sell it like I do with desktop apps? – Francesco Belladonna Oct 01 '11 at 00:32
4

If you want to charge them for all development costs, they should get ownership of the code (since they paid for the time to create it). And that's most common when you do consultancy or freelance for a given client.

If you want to keep ownership of the code, you'll have to either sell it as a product or as SaaS. In this scenario the return you get out of your product from 1 single client will (usually) be quite a bit lower than the costs to create the application. You'll need multiple (sometimes quite a lot) of clients to buy/pay for it to break even, even more to make profit.

Since the app is specialized on the client's request, this might be hard to realise.

Reply to your Edit 1: How you handle the costs of a 3rd party library that you buy, is totally up to you, and might be coupled with how you plan to sell the rest (+ how the license of the library is defined).

How the license is defined:

  • License per developer machine: it's for your own machine, so theoretically you should pay for it.
  • License per production server: it's for their machines, the client pays.
  • Combination: just pick both above
  • Fixed price to use the library, no matter how many developers/production servers: it's up to you how you charge it. If you're going for selling as a product/SaaS, you'll have to cover the costs for the license yourself, and you own it. If you let the (only) client pay for all development costs, you can add the license costs as a part of the development costs and let the client pay for it. In this case they'll own the license and you're using it to create their product.

In the end it all comes down on the decision on how you'll sell the product/time spent. Either you do the work on their demand and to their wishes, and you charge the full 100% (or less if you cover slack/training/... yourself or if you want to give them a percentage to gain them as a good client). Or you go for a fixed price (close to the estimated costs + preferably some profit) which you decide upfront with the client. And you discuss who will own the sources (most likely they'll do).

Or you go the product/SaaS way and you charge the client way less. You make the application a bit more generic so it can be used by others too and you hope that it gets enough traction to sell to enough clients to make profit in the end.

Option 1 is the easiest and "guarantees" your money. Option 2 can be the way to get rich, if you hit a gold mine (e.g. the new facebook), but you can also spend all your savings on it and end up in selling only a few licenses, not covering all costs (+ future maintenance costs).

Edit 2: I've got the feeling it always comes down to "I don't want that they steal the code". Whether you host it on a website or sell as a desktop app, just make sure all code is compiled (if needed with obfuscation if that makes you feel more comfortable). You might use a thin client (most logic on your server) as a desktop app, if you think that's better, I'm not sure what your application does and if that's a possible scenario.

If the program does what it has to do and the price is not extravagantly high, they won't bother opening up your assemblies to reverse engineer the code. I used to be afraid for my code too, but at some point you learn that most people won't bother to steal code since it costs more time to do so, than to just buy the app. (And there will always be some people that look for cracks).

Just pick the scenario to sell your app that you're most comfortable with and go for it. As long as you don't give them the source files (uncompiled) on a plate, you'll be fine.

Bart
  • 748
  • 4
  • 10