views:

250

answers:

4

I have begun work on a personal project that may end up having some real-world applicability. I am beginning to entertain the idea of selling licenses. I am sure some others here have done this before, and I was wondering what successfully processes you've used to do so.

There are many questions on SO regarding licensing, legal implications, etc. However, I have looked around and could not find a duplicate question for this one. To be clear, I am not looking for information on what licensing strategy to use, how to advertise your software, and so forth, but rather, for a checklist of things that should be done to increase the probability of success, and any possible gotchas I have not thought of. If anyone has any personal success stories, they would be very welcome.

For a little background, I am set on the idea of licensing a closed-source, compiled .NET DLL.

A few things off the top of my head:

  • Strong documentation, because formal technical support is unlikely
  • Specifying licensing terms and formalizing them with an attorney
  • Code obfuscation
  • Exploring license enforcement (either using a commercial package or custom code)
  • Building a website around the product, including real-world code examples since this is a library
  • Possibly offering some type of beta period, for feedback and getting the name out a bit
  • Offering instant/automated purchases
  • Marketing (oh boy)

Is it necessary (or wise) to start a one-man company to do this?

I will keep this list updated as answers come in. Thanks all!

+3  A: 

You have most of the practical things listed out, in terms of actually getting a product from you to the customer -

However, there are a couple of things I'd also recommend.

  • Figure out how you want to handle all of your accounting/purchasing/billing/etc.
  • Rethink formal technical support (for money), but not at the exclusion of documentation
  • Talk to a lawyer regarding all of your licensing decisions, agreements, etc., as well as company structure
  • Talk to your accountant (and/or find one who is good at working with small tech companies)

Some of this will cost some money up front, but save headaches later.

The last two bullets are crutial - there are MANY options for how to setup yourself from a tax perspective, each of which has potential advantages and disadvantages depending on your specific situation.

For example, if you're in the US, there are many advantages to incorporation prior to doing anything on your checklist. If you decide to incorporate, you may want to do it in your state, but there are also advantages to incorporating in Nevada or New Jersey (very pro-corporate states legally). If you're successful, doing this early can save a huge amount of work over time and have significant benefits.

Also, if you incorportate, you might want to consider S vs C corps (S Corps are great if you're a one or two man operation). If you don't incorporate, you can run as a sole proprietorship or an LLC, both of which have advnatages and disadvantages. A lot of this depends on your product (what it does), your expected returns, etc. - having a good lawyer and a good accountant is a huge blessing.

Reed Copsey
+7  A: 

Some tips:

Obfuscation: Be wary of obfuscating everything. An alternative is to obfuscate just the critical bits (licensing, premium features). The problem with obfuscating everything is that stack traces from error reports are ineffective. When an unexpected exception is caught, you'll want to give the user the option of automatically reporting its details - this really helps with QC.

License enforcement: If it's a utility that can be easily pirated, people WILL pirate it. An activations-based licensing system is ideal - and if it's not too draconian people will be less motivated to circumvent it. For instance, allow at least 3 activations per user (home computer, work computer, laptop). If it's a control library, then an activation-based may not be required - baking the serial number into the library may be enough because customers are unlikely to build their own product on a stolen assembly.

Instant/automated purchases: writing a custom licensing server and web page for this is fairly easy - you need only about 3 tables. LINQ to SQL is ideal for this sort of thing. For the payment gateway, I use PayPal - it's very easy to set up, has the features you need for selling activation codes, and allows multiple currencies. If you use PayPal, enable both PDT and IPN so you can give customers their activation codes both on the screen and via e-mail.

Marketing: try LOTS of things simultaneously - because it's hard to predict the success of any campaign. Especially without experience! Making yourself known amongst the influential people in the field into which you're selling can work very well.

Advertising: advertise on StackOverflow - that's what I'm doing! Google ad words is also worth trying because it's so cheap to set up - you'll know after spending $10 whether it will be effective for you or not.

And good luck with it!

Joe Albahari
+1  A: 

If you're aiming at software development teams as customers then the sort of thing they are likely to expect to see (in addition to the ones you listed) are:

  1. A download service for any additional items and/or patches that the user might need.
  2. Tight version control/configuration management processes so that it's easy to find out what version of the product they have, what they need and what the differences are between versions.
  3. Email/online bug reporting.
  4. A demo/trial version of the product.
  5. A good set of tutorials.
  6. Community support e.g. developer forums. This is a good 'value added' service that can also help with the fact that you have concerns (as a one man company) over being able to provide 'formal technical support'. Hand out a few badges and reputation scores and get a free technical support team ;) ... but if sales take off, seriously consider providing 'formal technical support', it can make a huge difference to the perception of the product.

... and make sure that the website, download service, license server, forums etc are all properly secured and done to a professional standard. If any of the peripheral services are less than 100% then it all reflects badly on the product, especially when yours is a technical one.

Stringent Software
+1  A: 

You might not want to provide formal technical support, but you could look for creative alternatives like some sort of moderated forum for issue resolution. Also, provide at least an email address for someone to contact you.

Another thing is to hire some sort of designer to make your product, documentation, website, etc look good. It is generally easy to tell programmers who attempt design.

Conrad