|
Case Study: From Shareware to Licensed Software
The above title is actually a bit narrow and
should fully have read: Shareware, Freeware, Onceware, Licensed Software
and/or entire modules based on licenses or concurrent users. You will understand
why, when you read on about "my application".
I have a software package (i call that the
core) and it has 3 modules. A module for accounting, a module for printing
my orders to suppliers and mainting stock and a module where i keep my customers
and make the invoices. Now i want to sell that package, but i am not sure how to
sell it, so i posted the package on several newsgroups and software development
sites as Shareware.
I embedded one Keybuster Key which i already made active here at Keybuster.com.
People that install the package will normally not even notice it's
inside. I assume everyone has an Internet connection, cause it's also needed for
some features inside my software, but also to access the Keybuster.com Key. I
wrote some lines that the program will only start if the Key has given the
response "valid".
When the key is not valid the program will
display that there is no permission to run the application and they have to
contact me. For each version i create i embed another Key so i can see how many
times people have run the application totally. I can also see if there are old
versions (old keys) that are still in use.
Also i embedded a key per module, cause i want
people to pay finally for the modules, not for the core application. In the
modules i wrote therefore some other code around the key: if the key is invalid
it simply does not run and displays the message that you can buy a license for 1
year. For that people have to send me an e-mail. Then i will send them back an
"invitation for payment" that comes from Paypal. Customers log in
there and transfer the money. I get notice from Paypal and i will create a new
Key for them on Keybuster.com. I send them a Thank-You and the new
"digest" by e-mail
and the instruction they have to copy and paste that digest in the pop-up screen
in the module.
(Actually the module then saves that digest as the new key to be validated in
the registry)
For the new release i am thinking to make the
code around the Key a bit more intelligent. Only the first time it will check
on-line if the key is valid. After that it will write a small variable in a file
and it will not bother to check the Keybuster.com site for the key for at least
the next 10 tries. This means people can also use the application after that
first time, ten times without an Internet connection which is rather conveniant
sometimes.
Also i already changed the code in the new
release for the "sales and invoice" module around the key, such that
it will display an "invalid key message" when the key is no longer
valid but also "number of concurrent users reached" when there are
more than 2 users currently working with the application.
I have a hunch that some of my customers, who payed for the software, copied and
distributed the package to their colleagues (who do not have a license) and i
want to check that.
In every module i now also embedded a simple
extra Key, that will be used to automaticly download a new version from my
website, when i enable that key. Standard that key will be invalid and then
nothing happens. That way i can remotely tell my customers if there is a new
version or perhaps incidently (!) an important bug issue or message.
I get a lot of compliments on my software
package and the number of keyhits increases every day!
|