Page 1 of 1

Best GPL Practice

Posted: Sat Jan 06, 2007 10:45 am
by supermike
Anyone know a forum (with a great interface similar to this) where I can ask GPL questions? I want to produce some free, open source GPL software built with PHP/PostgreSQL and do it right, but I want to also generate profit from:

* Bundling with pay-only programming manual for it, selling the bundle for $250. (Although another bundle is free to download, minus the programming manual, and another bundle costs $15 for my time to package and distribute the CD (also without the programming manual).)
* Purchasing 2 Email Support Incident Pack for $300
* Eventually, 3 Live Phone Support Incident Pack for $600
* Eventually, Onsite Consulting - $125/hr + travel/hotel/rental
* Offsite Consulting - $80/hr
* Onsite Training - End User (2 hrs, $2500 + travel/hotel/rental) and/or Programmer (4 hrs, $1500/per developer + travel/hotel/rental)
* Training Videos - End User ($1000) and Programmer ($2000)
* Very Minimally, Google AdSense
* Very Minimally, Apparel

I want to get started in learning how to bundle my free, open source app with the GPL license and have an avenue for asking questions as I go.

If you have any warnings as well, please pass them on.

Posted: Sat Jan 06, 2007 11:08 am
by feyd
What kind of software package is this?

At first glance, your rates seem high.

Posted: Sat Jan 06, 2007 11:15 am
by Kieran Huggins
feyd wrote:What kind of software package is this?

At first glance, your rates seem high.
Well he is supermike... any less and you'd just get regularmike.

These should get you started:
http://en.wikipedia.org/wiki/GPL
http://en.wikipedia.org/wiki/Category:O ... e_licenses
http://en.wikipedia.org/wiki/Category:F ... e_licenses

Posted: Tue Jan 09, 2007 7:13 pm
by supermike
feyd wrote:What kind of software package is this?

At first glance, your rates seem high.
I'll take that into consideration. It's a web-based CRM that I've been developing by myself on nights and weekends for about 4 years while working in an ITO operations management capacity with a similar product during the day. I've learned a lot about what works and doesn't work well for CRMs and want to produce something extremely simple, expandable, programmable, and yet covers a lot of ground right out of the box.

In the 4 years, I rewrote the app from scratch at least 3 times, making it better each time, using new things I learn about programming strategies as I go.

I hope to release in 2007. I'm down to the final 5 last features, then last set of bug fixes, then installer, docs, license, LLC incorporation, and website. This will be my second software startup company -- the first one did well until a friend gave me an offer at a company (awhile back) that was too hard to pass up. I also had a shrinking market because at that time I had built a product that Microsoft decided suddenly to compete in that space with, bumping many of us minor players out of the ring. However, with a CRM, many are so different and you either love a particular design or hate it -- there's so much room in this market. So it won't matter that every major software company in the world is also in this space.

The software is going to be free and GPL, but I must find a way to recoup the huge toll it has taken on my wife and kids while building this thing. So everything else about it is going to cost money. I also must admit that if you look around at many other software packages that are free and GPL, you'll find my rates are competitive. Take for instance some network management products like Hyperic or Zentoss -- it's free to download, but when you want a support contract and other perks, you're going to have to pay dearly for it. I don't want to be as bad as some companies, though, so I tried to bring the rates down.

This also isn't my only bet. I've got about 6 other website and software projects in the pipeline that I want to get off the ground in hopes that one of these can get me out of my lousy day job and into financial independence. Oh, and you didn't know this, but my mansion of a house (built during the dot com boom that burst and took me with it) is sinking in the back. I've spent $20K to jack it up in the middle, but I need another $20K to jack it up in the back. And the long road to my house is a muddy pothole mess. So needless to say, I could really use the cash.

Posted: Tue Jan 09, 2007 11:41 pm
by feyd
All right, that puts most everything in perspective to make more sense.

I like to bring this up when most people talk of GPL'd software but making money off of it: have you considered dual licensing? This is how MySQL does a lot of work for the most part. In their situation the core of the database and many features are available in the open and free version, however they offer a different version that isn't GPL and therefore allows companies to modify it and not be forced to release their altered source. It appears to work fairly well for them. Something to think about.

Since you've done some of this before, I'll assume your current employment contract does not have stipulations involving creations of works (especially use of trade secrets or whatever) would make this CRM actually owned by the company.

Therefore the next step is asking you what your questions are. You said you had some?

Posted: Wed Jan 10, 2007 1:00 am
by supermike
feyd wrote:All right, that puts most everything in perspective to make more sense.

I like to bring this up when most people talk of GPL'd software but making money off of it: have you considered dual licensing? This is how MySQL does a lot of work for the most part. In their situation the core of the database and many features are available in the open and free version, however they offer a different version that isn't GPL and therefore allows companies to modify it and not be forced to release their altered source. It appears to work fairly well for them. Something to think about.

Since you've done some of this before, I'll assume your current employment contract does not have stipulations involving creations of works (especially use of trade secrets or whatever) would make this CRM actually owned by the company.

Therefore the next step is asking you what your questions are. You said you had some?

Dual licensing - The fear I have is that if I go outside the GPL, I'm naked meat to the patent trolls in this day and age. I might do a special license, but I'll have to bring a software lawyer to draw it up.

Shared works - I've got my bases covered here in about 5 different ways. There is no shared works in this case. The existing app at the day job is going to be shelved and replaced with a very expensive package.

Questions? It's all about getting started and doing this right, learning each step as I go.

Force on Altered Source - I heard that GPL code can be altered in a company and used, but if used in a commercial product, it must include the original source code and license available. So that would be my first question.

Posted: Wed Jan 10, 2007 1:22 am
by Christopher
I don't believe that the GPL prohibits you from making money in any of the ways you list. It is really about what people can do with the software once you give it to them. The main competitive benefit of the GPL are that it effectively locks your competitors from using your product because they must provide the enhancements back to you.

Posted: Wed Jan 10, 2007 3:59 am
by onion2k
supermike wrote:In the 4 years, I rewrote the app from scratch at least 3 times, making it better each time, using new things I learn about programming strategies as I go.
When developers say that sort of thing it fills me with dread. In essence you're saying that it's not 4 years development it's 1 and a bit years, you weren't working from a formal design, you had to completely bin all your work because it wasn't good enough at least twice, and that everything in it is based on the latest idea you've heard about rather than something you've tried, tested and know works very well.

Completely rewriting from scratch implies that there was nothing salvagable in the previous version. That is, frankly, scary.

Posted: Wed Jan 10, 2007 7:57 am
by m3mn0n
Just wanted to note two things:

-There is always developing our own license. And it can be heavily based on an existing one. You'd simply need to draft rules, and get a lawyer to verify it and add their special "legal talk" to the mix.
-This forum may have a PHP central focus, but you can ask questions regarding everything to do with web development. Including this issue.

Posted: Wed Jan 10, 2007 8:21 am
by supermike
onion2k wrote:
supermike wrote:In the 4 years, I rewrote the app from scratch at least 3 times, making it better each time, using new things I learn about programming strategies as I go.
When developers say that sort of thing it fills me with dread. In essence you're saying that it's not 4 years development it's 1 and a bit years, you weren't working from a formal design, you had to completely bin all your work because it wasn't good enough at least twice, and that everything in it is based on the latest idea you've heard about rather than something you've tried, tested and know works very well.

Completely rewriting from scratch implies that there was nothing salvagable in the previous version. That is, frankly, scary.
Perhaps an over-reaction here. There were plenty of things that were salvageable. However, to cover my bases, I had to rewrite the app at least once from scratch to ensure no mixed code, even though the day job is preparing the steps now to shelve the existing code after using it and loving it for 4 years. I have a fairly good memory when it comes to source code, so I knew a particular way I had to do something and I did it again but blindly without looking at the original code. But then when that was built it was not object-oriented enough and the PHP was interspersed with the HTML in a big mess. So the second rewrite was to straighten that out. The third rewrite was a partial rewrite of some of the OOP so that it was even cleaner. And this latest rewrite also has all the things I learned from the day job about wish lists and so on but was not permitted to do there.

For me, it was important to get the programming logic to not only work, but to get it such that another programmer looking at the code would appreciate it. This is because all CRMs must be customizable because no one size/shape fits all. That took a lot of time and thought.

I have a long period of some severe testing ahead of me in mid February, and it is unfortunate I could not salvage the day job's source (out of IP risk) so that I know what was tested and what was not, but that's life.

And hey, when it's released, it's free and the world is my beta-tester. I can improve it from there, later on.

Posted: Wed Jan 10, 2007 8:44 am
by supermike
So you may ask, "Why will they shelve my app? Was it not good enough?" No, I can definitely tell you, it rocked. The problem was that the company is very blueblood and I'm like a grunt in their eyes (even though I manage a team of sysops). I didn't get a master's degree or PhD from an Ivy League school like the management above me did. I was never in their fraternity. In all their brilliance (cynicism there), they outsourced my senior programming job to another country, so I was left to either hit the street or take this lousy sysop management job where I have an outrageous number of hours per week for about $20K less than what I think it's worth. But then I got into that job and found that there was no tracking system, so I wrote one at home and convinced the boss for me to bring it in and extend it. But then some other departments thought it was cool, so they wanted to be part of the club. And the thing took off from there where now everyone in our company division has an account in the thing and they use it to push all kinds of work and bug fixes around. (The bug fixes are about another app we use.) That's 14 departments in total and about 450 users pounding on the thing every day pushing their work requests around. The project, however, needed enhancement to take it in new directions, and my time is limited because I have to do this sysop work. In reality the company could just branch the project off into its own development group with me at the head, but they, being blueblood, didn't want to do that and wanted to outsource this project to a vendor. They attempted this once and the users revolted because the first product choice was lousy. The bluebloods got mad about that, turned around with their tails between their legs, ate the huge expense, and went back at it again to do better analysis of why this app was so cool and to find another product. I have to laugh at the blueblood management for making all these "wise" choices (cynicism there). Even when they outsource the project they will be faced with probably far more costs than if they spun me off into a department that's primary purpose is to maintain this thing and to perhaps handle another side project here or there too. Heck, we have a simple content-based marketing website that requires weekly updates, and the vendor is charging us an outrageous amount of money and takes an incredible amount of time to do their work. Sometimes the web admin gets frustrated on that marketing project (again, another project here that I'm talking about), and she has asked me to enhance this or that. I manage to knock it out in about 5 to 15 minutes and for very little money (my time in salary) compared to what she would have to outsource it for. So the company is very foolish with their blueblood arrogance, and I get to reap the benefit.

Posted: Wed Jan 10, 2007 9:56 am
by feyd
It's been a while since I read the GPL in detail, so here goes:

The GPL allows the software to be altered by anyone. If a one wishes to sell their modification as their own, they must therefore release the source. However this requirement does not affect people who alter the software, but do not actually sell the software. This means that service providers who host others' use of the modified software on the provider's controlled servers are not required to release the source.

This is another avenue where GPL software can make money: provision of service.

If you choose to use the GPL, I strongly suggest you make sure to read through both the GPLv2 and GPLv3 to choose the one that best suits you. Note that the GPLv2 has a line in the terse form that allows a derivative to upgrade it to a GPLv3 or later license. If you dislike the GPLv3 make sure to remove that term. The license for MySQL was recently changed to avoid GPLv3, for example.