Thompson, Steve wrote:
How do you price maint, upgrades, hardware swaps, etc. to ensure that
you have sufficient revenue to continue in business?
Steve:
Thank you for providing a thread for this discussion. It does indeed 
need community input and should have ISVs contributing to the 
discussion as well.
Unfortunately, many ISV participants here are developers for ISVs 
rather than from upper management. The pricing policies certainly 
aren't set by us developers where I'm currently employed; rather, 
they're set somewhere in the sales/marketing/finance groups. I'm not 
at all clear that sales/marketing/finance management from many 
significant ISVs will have much to say here. I don't know if many 
know much about these forums at all.
However, some of us _do_ forward things we find here to our 
management. Not much more we can do.
As developers, we have both general and specific restrictions on 
what we can say. That's how stuff works when you have an employer. 
You don't hand out the really good and useful knowledge that is part 
of the value of your employer's products (which sometimes means we 
stay quiet when we have something that could be said) and you don't 
put out many statements that cast negative light on employer 
policies (which also means we stay quiet, etc.)
But I can say something about lawyers.
When you're in business and contracts get involved, there's a near 
guarantee that lawyers are in there somewhere. (I'm already 
wondering if I've said too much! :-) )
Lawyers are paid by the "company" and are pretty much dedicated to 
the "company" perspective. They are not interested in whether 
company customers are happy. They are paid for their expertise in 
business/contract law. If they say something that contradicts a 
developer viewpoint, there's little doubt which way it gets resolved.
So, licensing...
We have begun conversion from a proprietary licensing scheme to take 
advantage of IBM software product APIs and related licensing 
functions. It has /not/ been a trivial undertaking.
The IBM documentation was far from perfect when I started with it. 
The product code wasn't well structured for it in its existing 
forms. The understanding of its implications wasn't fully developed 
in the various company divisions.
And the available IBM-supplied methods for setting license 
attributes weren't exactly suited for handling any of our products 
in the ways that finance/sales/marketing wanted it done.
Further, lawyers gave input on how to protect "company" assets.
Let's say a prospective customer obtains a copy of a product with a 
license key. The install is on a 'test' system. A couple weeks 
later, that customer calls to say the product is going to be moved 
to the 'production' system and can they please have an appropriate 
license key?
The "company" owners, or the venture capitalists, or the 
stockholders, whoever has been financing things, want to be sure 
that this is really moving the product to a new system, rather than 
just getting a new license for free.
Or maybe the customer consolidated ten systems to a new 10-LPAR 
system and now wants just a single license key for the new serial 
number. Somebody near the top of the "company" is on the hook for 
protecting "company" assets; a license key for a given serial number 
can work in each LPAR. (It's possible to generate unique keys per 
LPAR, but it's kind of a kludge.)
So, here we are, trying to improve the product by jettisoning old 
proprietary license code, by standardizing on LPP creation through 
IBM-supplied APIs, by enabling standardized PTF handling, by 
standardizing on reasonably familiar SAV/RST/DLTLICPGM, by using 
standard ADDLICKEY and WRKLICINF and all the other things that most 
customers have already seen.
And it mostly revolves around the licensing APIs in order to provide 
protection so that the "company" owners can get lawyers to 'OK' the 
structure.
But, IBM hasn't been particularly consistent in its licensing 
definitions. Per CPU? Per user? Concurrent user? Registered user? 
(LPAR? Fractional LPAR? LPAR w/AIX? Linux?)And IBM hasn't been 
particularly consistent in the image it's presented of what "AS/400 
or iSeries or System i or..." has been. Original flavor? Server 
systems? Back-end database servers?
How is it possible to provide an appropriate level of quality for 
any given customer? One customer might have mostly green-screen apps 
doing traditional interactive work. The next customer might have a 
monster system with (near) zero interactive CPW and all host servers 
running transactions under QUSER. The next customer might be under 
restrictive regulations where almost every connection has its own 
specified user.
IBM gave us really only a few options. Basically, we can license by 
serial#/processor group, or we can license by user. If we want to 
off-load the effort needed for proprietary licensing, proprietary 
install, proprietary upgrade, proprietary PTFs and any related 
stuff, and put effort where it really should be -- into real product 
code -- we are mostly dependent on the licensing technology that 
goes along with it.
Here, we have mostly gotten through the 'software products APIs' 
mine field. We're finally well into serious product improvement on a 
significant scale.
So, what can be done about pricing?
What should I forward to my management? It's clear that there are 
major dissatisfactions with some approaches to licensing. What 
suggestions are out there that will get my bosses to pay attention 
and to come up with a rational pricing structure? Assets need 
protection or they simply won't be sold (licensed). How can 
protection and customer satisfaction be balanced?
I will gladly see to it that my management sees meaningful replies. 
I'm pretty sure other ISVs have members here that will do the similarly.
Maybe this group can outline a truly useful strategy. (Hmmm... a 
policy kind of thing in the Midrange Wiki? Eventually. Maybe.)
Tom Liotta
As an Amazon Associate we earn from qualifying purchases.