Licensing your apps (1 Viewer)

Solo712

Registered User.
Local time
Yesterday, 19:06
Joined
Oct 19, 2012
Messages
828
Hi everyone,

In my experience as a freelance software developer, the biggest obstacle in running the business has been to get paid for my products, even from people who expressed satisfaction with what I delivered to them. In the eighties I eventually gave up and got a “regular job” in IT. At the end of my freelance career then I was left with cca $40k in uncollected invoices. Some of the characters I dealt with were downright brutal. They would pay me the up-front fee and maybe one or two stages but found thousand reasons why not to send the final cheque which as a rule represented 30-50% of the contract. It always seemed at the end of job when payment issues bubbled up. One client, a financial advisor, told me he was not going to pay me because he discovered an error, and he did not trust me to fix it; and at any rate that before any more dealings with me he would have to have the source code.

Barely after a week, at Cumpuserve, then the PC maniacs’ gathering place in Montreal, I was told by a friend that he was contacted by a character from Phillips Square who asked him if he knew how to decompile a program and then to do modifications on it, among other things, to remove my name as author from the splash screen. So, I created a time “bomb” which would terminate the program at a date in the future, and after it wiped out his data. My buddy then delivered the “improved” product – with one or two of the mods requested – the others he said he could not get into. My client jumped on it and in two months’ time ended up with a screen message : “No data, sorry !”. When I ran into his colleague downtown some time after this he told me the character went bonkers because he was relying on this program extensively and used it as a showpiece to impress his clients. He had since commissioned a new programmer to redo the program. He asked me if I knew what happened. I told him I had no idea.

After I started to do custom Access apps in 2012, the situation repeated itself. Now, I have to have a signed agreement in place before I proceed. Still, on two occasions I ended in the Small Claims Court. I am happy to report that I won both cases, (the second one was settled out of court). In the first trial, the deciding factor was that the client admitted in an email to me he wanted to keep the product and offered to settle for a lesser amount. The judge said that this indicated to him that he wanted to have the program but at a price point different than the one he agreed to pay me. That in his view made all other points in the defense moot.

These experiences convinced me that a more focused approach was needed. My agreements now have a clause that explicitly states that the application is licensed – not more than that. It does not say how the licensing operates – it is inserted simply to affirm my rights of authorship, which is not in any way abridged by the agreement. If a customer desires a source code, it is a different agreement (which has a non-compete clause) and that adds a bit to the price.

So, now my products have a licensing module. Each program would come with a license in the form of an I/O file that holds an encrypted string. The host program then decrypts the string and creates a license mirror in an Access table which allows license check after the initial install but no mods of the license string itself. There are three types of licenses, temporary renewable, temporary non-renewable, and permanent. This arrangement has the advantage of easy (and safe) transport of licensing module, where a small I/O file can be emailed instead of the whole front-end where the license (and management module in the library).

To give you an idea, I am attaching a License key generator (slightly modified from what I use), a (proprietary) encrypter module and a small manual how to use the two units and how to decode the strings the Generator creates. I would like you to evaluate the setup and send me your comments. Send also your stories, if you have come across anything like I described above. Best to all in the New Year.

Jiri
 

Attachments

  • LKG.zip
    226.6 KB · Views: 584

Pat Hartman

Super Moderator
Staff member
Local time
Yesterday, 19:07
Joined
Feb 19, 2002
Messages
43,302
Thanks Jiri,
I decided early on that I didn't want to fight for the last payment so I refused to do fixed price jobs. The problem with fixed price is that you almost always end up with a moving target. The user never got an unrestricted version of the app until final delivery and only then would he get the unrestricted version if he was paid in full. I retained all rights to the source since the client was paying for my time rather than for a product. The restriction was usually a small record count limit on a critical table. So the app was fully functional but only for 4 clients or whatever.
 

AccessBlaster

Registered User.
Local time
Yesterday, 16:07
Joined
May 22, 2010
Messages
5,960
Forget licencing your apps, that's old school. You want to give the app away for free or little cost. You require the client to store their data on your cloud! That way the client has to keep renewing their subscription, its brilliant. Otherwise its a onetime shot, they get the product and never return. ;)
 

Pat Hartman

Super Moderator
Staff member
Local time
Yesterday, 19:07
Joined
Feb 19, 2002
Messages
43,302
I've had clients renew for more than 10 years. If the application does what they need, you really don't need to ensnare them.

Personally, I discourage ALL my clients from getting sucked into cloud services for the reason you suggest. Additionally, it is impossible to integrate these cloud apps with other apps so they can share data. It may be a cash cow but it is really a poor business model for thinking users.
 

Solo712

Registered User.
Local time
Yesterday, 19:06
Joined
Oct 19, 2012
Messages
828
Thanks Jiri,
I decided early on that I didn't want to fight for the last payment so I refused to do fixed price jobs. The problem with fixed price is that you almost always end up with a moving target. The user never got an unrestricted version of the app until final delivery and only then would he get the unrestricted version if he was paid in full. I retained all rights to the source since the client was paying for my time rather than for a product. The restriction was usually a small record count limit on a critical table. So the app was fully functional but only for 4 clients or whatever.

Thanks, Pat. You are right about fixed price pain; it is always a moving target. Unfortunately, for me I don't have an option on certain type of contracts, that is mostly on building turnkey systems. Since I invested quite a bit in a RAD code library that allows me to build apps quickly and (mostly) without problems, I don't want to give that away. So, a source code is a conversation at the end of the job when I get paid. I handle the additions to customer order as a change order and make him sign it with a new price tag. For fixing or adding to existing systems I work on an hourly rate. But those apps are customer's property. I want to retain rights on stuff that I build from scratch.

Best,
Jiri
 

Users who are viewing this thread

Top Bottom