Our response: SmartInspect license WTF

We were surprised to see a rather negative posting on Joe White’s blog about the SmartInspect license agreement. We were especially surprised about his posting because we believe that our license is actually one of the more reasonable agreements out there.

We value Joe’s feedback and want to clarify some of his points (we also tried to post a clarification as a comment on his blog, but Joe hasn’t yet approved the comment, that’s why we are also posting it here). Joe highlights the following paragraph of our license agreement:

“6.1 When using the licensed programs, in order to avoid damage that may be caused to other programs or stored data being used simultaneously, the Customers shall in good time before using/utilising the licensed programs back up the programs and data involved, and not use programs of this kind in actual operation before he has verified the flawless quality of these programs by a test routine.”

Joe wrote that this paragraph, which is designed to ensure that customers backup critical data and test program interoperability before deploying our products, suggests that our software is not well tested and that our liability limitations are over the top. The contrary is actually the case; please read on.

If you carefully read typical license agreements, be it from Microsoft, Intel or most other software companies, you will find paragraphs such as the following (which is quoted from an Intel license agreement for some of their dev tools):

“LIMITATION OF LIABILITY: THE ABOVE REPLACEMENT PROVISION IS THE ONLY WARRANTY OF ANY KIND. INTEL OFFERS NO OTHER WARRANTY EITHER EXPRESS OR IMPLIED INCLUDING THOSE OF MERCHANTABILITY, NONINFRINGEMENT OF THIRD- PARTY INTELLECTUAL PROPERTY OR FITNESS FOR A PARTICULAR PURPOSE. NEITHER INTEL NOR ITS SUPPLIERS SHALL BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS PROHIBIT THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.”

This paragraph basically states that the vendor isn’t liable for ANY kind of damage whatsoever. Our license doesn’t contain such limitations, as limiting the liability to this degree is not possible in Germany (and probably shouldn’t be, I might add). That’s why our license actually contains LESS RESTRICTIVE limitations. In the quoted paragraph, we merely ask our customers to test SmartInspect in combination with their software before deployment (which we believe is pretty standard anyway). This does of course not mean that we are not testing the software ourselves (in fact, we use more than 5000 unit tests to ensure the quality of the SmartInspect libraries, have a test plan for the Console consisting of more than 100 pages which we execute regularly, offer beta releases for new major versions and take great care in general to make SmartInspect as robust and reliable as possible).

I’m not a lawyer, but formulating international license agreements and contracts is probably a lot harder than one would think. We really tried to come up with a license agreement that’s not too restrictive and is hopefully fair for both parties. For example, we explicitly state in the license agreement that our software can be installed on up to 3 machines per licensed user, a phrase that should probably be included in all dev tools EULAs, but is sadly missing from most.

One could probably argue that software licenses in general try to limit the liability of vendors too much, and this is definitely an important topic. However, I believe that our license is actually one of the better licenses in this regard. Again, we value Joe’s feedback and we are sorry to hear that our license sent a wrong signal, but I hope we could clarify some of Joe’s concerns. I also hope that our transparency on this issue is valued, too, as I’m not sure if any of our competitors would link to a negative product comment and even promote it on their community website.

We would love to read your comments on this topic!

This entry was posted in DelphiFeeds.com, General. Bookmark the permalink. Both comments and trackbacks are currently closed.

3 Comments

  1. Posted November 22, 2008 at 11:37 | Permalink

    If you want to see a real EULA WFT check out
    http://thedailywtf.com/Articles/A-Sponsor-Thanks,-Fire-Exit,-Anonymous-Colonel,–More.aspx
    #Warning# Do not attempt [to install antenna] if drunk, pregnant or both. Do not throw at spouse

  2. Posted November 22, 2008 at 15:47 | Permalink

    First of all, thanks for the link to the license agreement. I’ve updated my post to link to it.

    Some parts of your license are just a restatement of what’s in other licenses; and while some of those are scary, they’re also not news. And yes, I should certainly test your code before I ship it in my product. But yours is the first license I’ve ever seen that contractually obligates me to test your code. Think about how that looks from a marketing perspective. Imagine if tax software had that kind of disclaimer. They’d never sell a single copy.

    Your license also creates requirements I would not have expected. Yes, I should test your code before I ship it to my customers, but you’re obligating me to test your code before I *use it in production*, which is not the same thing as shipping it.

    Suppose I want to use SmartInspect to debug a painting problem in my code. I’m just using it on my workstation, and I plan to remove all the SmartInspect logging before I check in my code. (That’s the sort of thing we bought it for. Shipping it is a possibility we might consider later, if we find someplace it would be helpful.)

    In that scenario, I’m putting SmartInspect to its intended use, and (assuming I do track down that bug) I’m getting real benefit out of it. So that would qualify as “production use”.

    I wouldn’t expect to need to form and execute a full test plan before being allowed to do local debugging, but your license requires exactly that.

    (Actually, if I bought SmartInspect, and then later bought CodeSite as well, the SmartInspect license would obligate me to create a test plan for CodeSite too, since it falls under “programs of this kind”. Now, that’s *really* over the top!)

    I do appreciate your transparency, and it’s good to hear your response. And yes, some of the terms are great (I should probably blog about them too, especially the “three computers” thing, since that means interesting things in our shop). But I’m concerned that you got pretty overzealous with this “you must test our code” thing, and I’m pretty sure you didn’t think through the same consequences that I’m noticing.

  3. Posted November 24, 2008 at 11:50 | Permalink

    Joe,

    thanks for the feedback. I agree that the exact wording of the paragraph in question might not be optimal, and we will look into clarifying it, but rest assured that you do not need to create and execute a test plan for SmartInspect in order to use it.

    The mentioned test routine merely states that you should make sure that our software is not causing any problems in combination with other software programs installed on the same machine/used in combination with it. As we cannot test our programs in combination with all other existing software out there (and cannot exclude liability for just ANY damage like most other EULAs do), we have to protect us in case any side effects of other software programs is causing any damage/problems.

    However, the important part is that failing to do so will “only” limit our liability in regards to this kind of problems – something that other EULAs also do, but in a lot more general/aggressive wording. You do NOT lose your usage rights for SmartInspect if you fail to test it in combination with other programs. I hope this clears it up. Again, I understand that the exact wording can be improved, and we will try to do this in the coming months.

    If you are still concerned that this paragraph is causing you problems, please contact me directly (dg@gurock.com) so we can discuss this further. Thanks!