Active PPL Projects and Available Code
Goal: Create a license framework that allows programmers to be paid directly from their work, encourages modular, reusable and robust coding practices, and does not conflict with or discourage traditional GPL'd or open source code release.
Motivation: While GPL'd or true open source code is certainly a great and good thing, and has produced most of the architecture the Internet runs on, it still has several limitations and flaws.
The most serious of these to myself, is that it disassociates income from coding, and particularly it does not have a tight coupling between the value of the code to others and the income derived from it. For many types of programmer, that is not a problem; the following are some of the successful ways people write good GPL'd code:
I speak from personal experience. I am a stay at home Mom with a toddler. I also run Internet Workshop, develop and maintain Webglimpse and Glimpse software. I do not have time to mess around with a full-time job that I don't really care about or try to find a 'patron' for my work - in fact I have no desire to do either one. I just sell the code I write. Not GPL'd.
Webglimpse is 'open code' - all the source code is available to the user - and it is free to educational institutions and nonprofits. As a result I get 'enough eyes' looking at problems and suggesting solutions to make the bugs shallow and constantly improve and refine the product. We have over 10,000 total users and close to 1000 purchasers. Its enough income to live on and do the work I want to do.
But there is more to 'open source' than just 'open code'. The real power of GPL'd code is that it takes on a 'life' of its own. The code can be redistributed and modified by anyone. No one has to reinvent the wheel if someone else has done it nicely already. I want my code to be redistributable, and I want to use other people's code and pay them fairly for it, instead of rewriting those wheels all the time.
It should be possible, and here is my proposal to create what I call a 'PPL' license.
By now you may think I am against the open source foundation and GPL licensing in general. Not at all. The more code that is GPL'd the better. The original author should simply have the right to ALSO release their code in additional formats, some of which may require payment for use.
The basic idea of PPL, or Price-Per-Line licensing, is this:
1) If the product is sold, payment must be made to the Author according to the Payment Schedule below. Basically a portion of the sale price is set aside to pay for code development, and is shared out based on the number of lines contributed from each source.
2) If the Code or Product is used commercially but not sold, a payment must be made to the Author according to the Payment Schedule, assuming a sale price as stated below under Minimum Sale Price. Authors can choose to release their code using the "standard PPL" Payment Schedule, or create their own variation. Product vendors and users can choose whether to use only "standard" modules or accept variations.
Fixes or modifications should be sent back to the original Author.
If the Author does not respond in a reasonable length of time as described below, the code is declared "Orphaned" and may be "Adopted" by a new Maintainer. In this case a decreasing percentage of the code's income is sent to the original Author and an increasing percentage to the new Maintainer, according to formula below. Several conditions must be met in order to Adopt code, including approval by a plurality of known users.
Payment and contact information for the Author (and current Maintainer, if different) are attached in a standard format.
Development and distribution can proceed in several ways:
To make this scheme practical a software package will be needed to calculate the percentages and administer the payments. Several approaches are possible, the simplest seems to me to be as follows:
SAMPLE PAYMENT SCHEDULE
Percentages are of total price paid by end user for a Product which includes PPL-licensed Code.
34% Sale commission. May be kept by Vendor even if they have no independent Product and offer no support.The amount paid to the Author of the attached Code is calculated as follows:
33 % Product maintenance and support. In the case where the Code is incorporated into a larger Product and the Vendor provides support for that Product, the Vendor may keep this portion of the sales price.
In cases where the Author is expected to provide support directly to end-users of Product or Code, this portion of the sales price is to be combined into Development, below.
33 % Development. This portion of the sales price is to be reserved for paying for development of the Product.
Total sales price * .33 * # lines in Code / # lines in ProductIn cases where Author is also providing support to end users who purchase Product, the formula is as follows
Total sales price * .66 * # lines in Code / # lines in Productwhere the # lines refers to the number of non-blank lines of code incorporated into the Product. Note, it is up to the Vendor to choose which Code to incorporate into their Product and the Vendor likely will avoid 'padded' code with excessive extra lines added.
In some cases, such as where one Author is working closely with Vendor to adapt their code while other Author's code is simply used as-is, Vendor may negotiate a 'fudge factor' that repays the actively coding Author at a higher rate. In any case the key is that Authors are paid in proportion to their work, and that the agreement between Author and Vendor is entered into voluntarily. Any such arrentments should be made public as they will affect compensation to other Authors. MINIMUM SALE PRICE
For direct commerical use (not resale), the Author is considered to also be the Vendor. Commercial users of attached Code are asked to pay a minimum price to the Author of $_____. If only a portion of Code is used, this price may be multipled by the # lines used / total # of lines in Code.
For GPL'd code that is PPL'd only for reuse, you may set the above to zero or replace this paragraph with a statement that direct commercial use of Code is covered under the GPL license also included.
This document is a work in progress, and is released into the public domain.
Version 0.3 - last modified 10/04/02 by GV
Please send suggestions, comments, edits, etc to Golda Velez thru our contact form