ashampoo burning studio 8 chemtable reg organizer 4.21 ashampoo powerup 3 intuit turbotax premier 2008 daz bryce 6.1 mac futuremark 3dmark '05 pro adobe acrobat 9 pro extended conceptdraw office 8 corel dvd moviefactory 6 plus pixologic zbrush 3 mac imsi turbocad pro 15 ashampoo photo optimizer 2 cyberlink powerdirector 7 ultra graphisoft archicad 12 nuance paperport professional 11.1 native instruments reaktor 5 mac microsoft encarta premium 2009 symantec winfax pro 10.4 intuit quicken rental property manager 2009 autodesk autocad electrical 2009 efreesky magictweak 4.11 ashampoo burning studio 7 lavalys everest ultimate 4.5 quarkxpress 8 futuremark 3dmark vantage professional windows xp professional sp3 ashampoo clipfisher microsoft sharepoint designer 2007 microsoft windows vista business (32bit) autodesk autocad raster design 2009 adobe photoshop cs4 extended mac iexpert registry clean expert 4.58 adobe fireworks cs4 pixarra twistedbrush pro studio 15 futuremark pcmark vantage advanced pctools spyware doctor 5.5 adobe presenter 7 xilisoft cd ripper apple final cut express 4 mac cakewalk sonar 7 producer edition codegear rad studio 2009 architect adobe after effects cs4 vmware workstation 6.5 zonealarm antivirus 8 autodesk autocad revit structure suite 2009 corel video studio pro x2 ashampoo cover studio ashampoo core tuner imsi turbofloorplan landscape and deck 12 microsoft frontpage 2003 grahl pdf annotator 2 adobe after effects cs3 professional paragon partition manager 9 professional roxio creator 2009 ultimate tuneup utilities 2008 daz bryce 5.5 corel photoimpact x3 systemssuite professional 8 lavasoft ad-aware 2008 pro xilisoft iso burner innovative solutions advanced uninstaller pro 9.5 ashampoo office 2008 adobe indesign cs3 autodesk 3d studio max 2009 adobe incopy cs4 microsoft office 2008 mac novosoft handy backup 6.1 server thegrideon access password professional 2.0 microsoft office project professinal 2003 mylogomaker professional 2 microsoft visual studio 2008 professional autodesk autocad map 3d 2009 autodesk 3d studio max design 2009 algolab photo vector 1.98 avid media composer 2.8 uniblue registrybooster 2009 autodesk mapguide studio 2009 xilisoft video converter ultimate 5.1 guitar pro 5 adobe dreamweaver cs3 activestate komodo ide 4.4 mathworks matlab r2008a microsoft works 9 efreesky magic utilities 2008 microsoft windows vista business (64bit) cyberlink dvd suite 5 pro microsoft office project professional 2007 futuremark 3dmark '06 advanced e-gadgets delete duplicate files aurora media workshop autodesk 3d studio max 2008 vmware workstation 6.5 ace imsi turbofloorplan home and landscape pro 12 autodesk autocad revit mep suite 2009 autodesk navisworks review 2009 runtime revolution enterprise 2.9 deskshare videoeditmagic 4.3 microsoft digital image suite 2006 microsoft office visio professional 2003 adobe captivate 3 burnaware professional transmagic expert adobe creative suite 3 master collection acdsee 10 photo manager kingsoft office 2009 autodesk autocad civil 3d land desktop companion 2009 adobe soundbooth cs4 propellerhead reason 4 mac nuance pdf converter professional 5 adobe premiere pro cs3 ashampoo magical snap 2 ca erwin process modeller smartsound sonicfire pro 5 scoring acronis disk director suite 10 paragon drive backup professional 8.5 dtsearch desktop 7 microsoft mappoint 2009 north america autodesk combustion 4 fl studio 8 xxl hd tune professional ashampoo movie shrink and burn 3 acronis true image 11 home futuremark 3dmark '03 pro adobe flex builder professional 3 guitar pro 5 mac adobe dreamweaver cs4 mac microsoft office enterprise 2007 adobe creative suite 4 design premium i.r.i.s. readiris pro 11 tamosoft commview 6 full native instruments traktor dj studio 3.4 mac originlab originpro 8 activestate komodo ide 5 paragon partition manager 8.5 enterprise server sony sound forge 9 cyberlink powerdvd 8 ultra sony vegas pro 8 microsoft streets and trips 2009 adobe dreamweaver cs4 aglare dvd ripper platinum 6 ashampoo uninstaller 3 sony cd architect 5.2 adobe after effects cs4 mac mcafee total protection 2009 smartsoft smartftp home 3.0 zonealarm internet security suite 2009 nero 9 microsoft windows vista ultimate (32bit) cyberlink powerproducer 5 ultra adobe illustrator cs4 3d home architect design suite deluxe 8 tamosoft commview for wifi 6 full microsoft office onenote 2003 xilisoft audio maker 3 microsoft windows vista ultimate (64bit) adobe flash cs4 professional modelright professional 3.0 web page maker 3 installshield x express edition zonealarm pro 8 i.r.i.s. readiris pro 11 mac microsoft expresion web 2 microsoft office visio professional 2007 xilisoft audio converter 2.1 powerarchiver 2009 microsoft office 2003 professional autodesk navisworks simulate 2009 autodesk autocad revit architecture 2009 cyberlink powercinema 5 propellerhead reason 4 cyberlink power2go 6 autodesk autocad architecture 2009 quarkxpress 8 mac corel draw graphics suite x4 adobe creative suite 3 design premium canvas 11 with gis+ nuance omnipage professional 16 xilisoft dvd ripper ultimate 5 corel painter x mac xilisoft 1click dv to dvd abbyy finereader 9.0 professional adobe photoshop cs3 extended paragon hard disk manager 2008 professional microsoft money 2007 home & business xilisoft dvd ripper platinum 5 partition commander server edition 10 autodesk autocad mechanical 2009 microsoft autoroute 2007 europe adobe photoshop cs4 extended roxio copy & convert 3 smith micro poser 7 ashampoo magical defrag 2 acdsee photo editor 2008 openpim pinnacle studio 12 ultimate daz bryce 6.1 adobe creative suite 4 web premium ashampoo firewall pro adobe creative suite 4 master collection mac native instruments reaktor 5 autodesk inventor professional 2009 microsoft money 2007 deluxe adobe premiere pro cs4 microsoft mappoint 2006 europe uniblue speedupmypc 2009 codegear delphi for php 1.0 acala dvd ripper professional 5 adobe flash cs3 professional crystalidea uninstall tool 2.5 xilisoft video to audio converter 5.1 ashampoo photo commander 6 zonealarm internet security suite 8 adobe contribute cs4 fix-it utilities professional 9 sound forge audio studio 9 elcomsoft advanced archive password recovery 4 professional dzsoft perl editor 5.8.3 pantaray q-setup pro 9 adobe indesign cs4 norton partitionmagic 8.0 corel draw 11 mac acdsee pro 2 microangelo toolset 6 autodesk autosketch 9 powerdesk pro 7 adobe indesign cs4 mac quarkxpress 7.3 mac adobe creative suite 3 web premium autodesk navisworks manage 2009 native instruments traktor dj studio 3.4 adobe flash cs4 professional mac quarkxpress 7.3 passport ashampoo winoptimizer 4 steinberg nuendo 3.2 neobyte titan backup codegear rad studio 2007 architect daz carrara 6 pro mac adobe illustrator cs4 mac faronics deep freeze enterprise 6 autodesk autocad 2009 adobe premiere pro cs4 mac adobe creative suite 4 master collection ashampoo winoptimizer 5 adobe director 11 novosoft handy backup 6.1 pro corel painter x sony acid pro 6 nero 8 ultra edition wincare memory booster gold

How Third-Party Licensing Can Ruin Your Launch

We launched version 2.5 of DotNetInvoice (my asp.net billing product) about 2 weeks ago. This release is a milestone because for the first ever we have a C# version (in addition to our standard VB.NET version).

The programming language is important because we provide the source code with every purchase…which created one heck of a mess for us a few weeks back.

How it All Started
About 3 months ago I contacted a company that provides a component for integrating with over 60 credit card payment gateways. Since traditionally we’ve supported two gateways, this would be a big win for DotNetInvoice.

I contacted the company and it turns out they have a royalty-free version that allows you to “freely distribute your own Applications that use [the component] as a runtime component without payment to [company].”

The up-front fee was hefty, but this was too good to be true!

So we contacted the company and worked out a deal. Within a week we were slogging through code and wiring up gateways like crazy.

The component was great – easy to use and well documented. After about 60 hours the integration was complete, the necessary API parameters were added to our database for all gateways (which took a bit of research), and we had a bunch of tests under our belt.

Fast forward 2 months to launch day (in the meantime we implemented a number of other features).

Picture the scene:

Our final package is prepared and we’re ready to throw the switch in the next few hours. Jeremy (co-owner of DotNetInvoice) is doing some final testing on our demo server and runs into a problem. The demo site is crashing because of a missing license file.

License file? We’d been running in our development environments for two months without any problems.

~Rob navigates frantically to the vendor’s website~

“Let’s see…license file…blah…blah…blah…refer to end user license agreement for details…wait, WHAT?!”

The Sound of Me Blowing a Gasket

You may freely distribute your own Applications that use Licensed Software as a runtime component without payment to [the company], if and only if … the Applications … are in compiled, executable form.

Wait, did I read that right?

I think it said that even if you’ve purchased a royalty-free version of their application, which comes as a compiled DLL, your application also has to be compiled. Uh oh…

Surely that can’t be right…does it matter whether my application is compiled? Should it matter?

So we postponed the launch and contacted the vendor.

We asked if we could move forward as-is. Ummm…no.

We suggested that we compile our own DLL that contains the code we use to make calls into their DLL, then call our DLL from our un-compiled application. No go.

We asked if we had any options aside from compiling our entire application and not releasing source code (this, of course, was out of the question)…and yes, there was one option!

If everyone who purchases DotNetInvoice also purchases a development license to the vendor’s software (you know, the royalty-free version), we would be in compliance.

The only problem is that a single development license for their software is more expensive than our entire product.

Ouch.

The Workaround
You can pretty much guess how the next few days went.

*Rip* out lots of code.

*Re-test* everything.

*Launch* 5 days late.

We ended up launching with support for four credit card gateways – two more than we used to, but a heck of a lot less than we’d hoped.

Luckily, even with this blow to our egos version 2.5 is out the door and was greeted with much fanfare – it turns out people really wanted a C# version. (If you create invoices and want to save time and get paid faster by accepting payments online, check out the new features in version 2.5)

The Moral(s)
The obvious message is that royalty-free doesn’t always mean royalty-free. Sometimes it means “royalty-free unless you distribute your source code (even though you’re not distributing ours).”

Another obvious lesson is to read your licensing agreements carefully. I’d like to point out that I’m not a complete moron – although the license text is painfully obvious in the above quote, I had to edit heavily to get it that way. In the real agreement the key points are separated by a lot more legal gobbledygook and this statement was not nearly this obvious on the first read.

I should also note that I did look through the license before we began development, and asked some clarifying questions of the vendor before we moved forward with development…but it took an extensive read-through of the license to really pick up the problem.

You would think after my last licensing debacle I would have learned.

But there’s one more lesson here, and it’s for software companies (including Micropreneurs): don’t have a license agreement that screws your customers. If you advertise a product as “royalty-free,” mean what you say; don’t hide things in a license agreement just because no one reads them. Although the onus is on the customer, it’s still a bad deal.

Ultimately this vendor is 100% legally correct. But I lost 60 hours of development time and they lost a sale and a fan (I was going to rave about them on this blog). In addition, I will be suspect of their licensing in the future and will do what I can to avoid their products.

In the long run I wonder which of us lost more from this experience?

Subscribe to this blog via RSS.

If you'd like to receive a very occasional email when I publish a major new article, enter your email below. Cancel anytime.

Launch Your Product. Build Your Future.
If you want to launch your product (or website) and build your future, you've come to the right place.

I'm a full-time Serial Micropreneur based in Fresno, California and I run the Micropreneur Academy, an online learning environment designed to get one-person web startups from zero to launch in four months.

I use the term Serial Micropreneur to describe an entrepreneur who creates the lifestyle of their choice through a portfolio of one-person technology businesses (MicroISVs, SaaS websites, e-commerce sites, etc...).

10 comments ↓

#1 Michael Langford on 03.12.09 at 2:47 pm

I’m sure this honestly caused you a LOT of pain.

Also, god knows our industry could use a LOT of slimming down of our license language.

Personally my company only requires that you do not say we wrote the software if you changed something, and that’s only there to make us not get sued by you writing malware or causing security issues for 3rd parties, other then that, for anything non-binding on us, anything goes.

However, as a person who writes components for people for a living, I understand their need to find a way to make money off their product.

I’m personally mystified why you can’t distribute your product as source with their product as a binary (unless you’re passing in a sort of activation code in source or something). Is there a technical/business reason here?

#2 Rob on 03.12.09 at 4:41 pm

@Michael – They indicated a business reason:

“Our license allows royalty free distribution…since we do not collect royalties, what we sell is the developer license.”

However, what I *thought* they were selling was the 4-figure license to their royalty-free version. But apparently their intent is to get a large chunk of money up-front for the royalty-free version *and* on the back-end for developer licenses. I mistakenly thought that with the high price up-front there was no back-end. Oops…

As an example: we offer a royalty-free version of DotNetInvoice, but once you’ve paid for it you’re royalty free – you don’t have to pay us again later for developer licenses.

#3 Sean on 03.13.09 at 11:38 am

The reason the license is like this is because you could theoretically repackage there dll in your own dll and then give it to other developers for FREE, thereby getting around there licensing. Or worse, rebrand it as a new product and resell it.

When I worked for a component company about 30% of our customers tried to do this exact thing. The reason is that we charged per developer license fees. At a company with 5 developers, they only wanted to pay for 1 or 2 developers when they really need to pay for 5.

If you sell components, you need to protect yourself from people abusing your licensing. Developers, especially, will try to get around it anyway they can.

#4 Rob on 03.13.09 at 12:02 pm

@Sean – I understand the issue with wrapping a DLL, but they actually address that particular issue using other language in their EULA that specifies you cannot re-package and re-sell their product as your own if it’s substantially the same. We also have this verbiage in our license to protect against it. I don’t see why they would need that restriction AND not allow us to distribute our app’s source code.

Certainly a component vendor needs to protect themselves from license abuse, but there’s a huge difference between paying for 2 developer licenses and having 5 developers use it, and not allowing someone to use your royalty-free, compiled DLL if they also provide their application’s source code. The two are unrelated from my view.

#5 igorbrejc.net » Fresh Catch For March 25th on 03.25.09 at 10:00 am

[...] How Third-Party Licensing Can Ruin Your Launch | Software by Rob [...]

#6 Daniel Tenner on 03.25.09 at 11:38 am

Hi Rob,

Have you considered just adapting code from, for example, the ActiveMerchant libraries? They support many gateways, and so should provide you with many more than 4 supported gateway. Since it’s written in Ruby, it’s fairly straightforward to read even if you’re not a Ruby coder, and so should be quite easy to adapt to your product.

Just a thought..

#7 Vladimir Slepnev on 03.25.09 at 12:45 pm

Rob, why aren’t you telling us the name of the company?

#8 Fabien on 03.25.09 at 3:57 pm

In the free software world, there’s a very neat thing: standard licences. If I see “MIT”, “LGPL”, or “BSD”, that’s enough for me to know what I can do and what I can’t; I don’t need to go through the whole text (which I wouldn’t understand anyway). And if I do have a problem understanding the licence, since it’s well-known, I’ll always find someone who knows the answer.

It would be neat to create less free, but still standard, licence texts.

Then again, sellers probably don’t want you to understand the licence. In this case, those people sold you something you can’t use, and that you wouldn’t have bought had you read the licence beforehand.

#9 Jake on 03.25.09 at 6:39 pm

Yeah, please tell us the name of the company so that we can be careful if we ever do business with them.

#10 Fabien on 03.25.09 at 8:13 pm

> please tell us the name of the company

I believe it’d be pointless. Countless companies do the same.

The point is: before you start using a library, read the license, and make sure you understand it.

Leave a Comment