GPL workarounds
Imagine yourself as a CEO of a successful start-up. It’s spring time, engineers are buzzing in their cubicles, you’ve established a sales force on the East coast where companies are buying your software with –oops- real money (in the Valley, established companies don’t buy from start-ups, they test their products, sometimes forever). So here you are, happy as a ClamAV without TrendMicro, reminiscing about your last board meeting where everybody was bright eyed and bushy tailed, the M&A tooth fairy softly dangling in everybody’s thoughts.
Knock on the door. The CTO walks in pretty upset. Bad news: 30% of our source code is open source, GPLv2. Won’t pass due diligence. We’re going to be black ducked, he shouts. It’s a huge crisis, IP lawyers must be called; the Partner himself must be summoned.
One month later (the Partner is a pretty busy man), enters the Partner, with in tow associate and assistant. 650 + 350 + 200 = $1200/h. What can I do for you, he asks, while his assistant hands him over a 2-shot non-fat no-sugar-whip-creamed sweetened latte and a Sony tablet. Well, we need to talk. His pleasure.
1st meeting: the associate presents during a good hour, explaining the difference between permissive and non-permissive.html licenses. At the end, the Partner adds confidently: find the same code with a permissive license or even a dual-license; if needed, try to get in touch with all the developers of the project to make them accept a dual license just for you. The company is saved!
2nd meeting: No dual licensing, no permissive license has been found. All contributors (79 developers, a widow and 2 legal guardians) have been contacted without much success. The Partner allocutes: if you must use the GPL, use the LPGL instead: it allows for integrating your code without contamination! The Senior VP engineering is sent to investigate.
3rd meeting: Only a small part of the code is LGPL (and the new release date has been missed while the Senior VP engineering was investigating). The Partner arrives with an engineering expert (+$500/h): Don’t integrate your code, use inter-process communications instead! The Senior VP engineering is asking the Senior Director of Engineering to investigate: two of the interns will start on this immediately. Bright kids (one of them has a brother at M.I.T.).
4th meeting: One of our stock-only Sr. developers (the brightest we could find without Asperger) has been coerced into the meeting: the data structures are so tangled that “detaching” the 2 software pieces is nearly impossible… Time flies, money too. The Partner frowns and suggests: use the distribution angle! Distribute your product as a SaaS or as an appliance. That way you’re not really “distributing” the software therefore you don’t have any obligation! The VP Engineering is task to recruit an architect specializing in embedded software.
5th meeting: Our new Chief Architect (the best in the industry) has spoken (over the phone since he never leaves is Montana ranch): there is no way to run a smart-screen-saver-P2P-VoIP-Video-Anti-Virus-Social-Network-AdSenseFriendly-desktop client through an appliance (or even as a SaaS). The partner has brought another expert (+500$/h), speaking English without any accent. Without any American accent that is. The Partner lectures: It’s a difficult case (He was absolutely sorry to jack up his consulting fee to $800/h). The code must be re-engineered. A sip. A pause. Everybody looks at his Peet’s-not-Strabucks coffee cup. After 3 months and $15,000 in fees, THE solution is about to be unveiled. He pauses again then slowly speaks.
He knows of a good outsourcing company oversea. Tell them which open source you need and they will re-engineer it for a mere $2/line of the original source code. He adds: they will even deliver it in a new programming language; copyright won’t be an issue here, he says with a mysterious smile to his associate.
The company is saved! For a mere $400,000, the company gets delivery of a brand new free (free as in no license attached, not as in free software) code. Testing is starting right away but integration is not seamless: how do you mix and match those 2 languages? Consultants are being recruited. Another few months and the integration is a success.
At last, the product can ship. The company is saved. M&A talks can resume. Who cares about winter? Life is good.
Ten months later the company dies from a sudden buffer overflow.
Not very long after, a small foreign company starts dual-licensing a new library. Released both as a commercial product and as an AGPL open source. Rumor is, the Partner’s wife angeled them (No conflict here: you don’t marry a lawyer without pre-nup so her assets are completely separated).
They called this new company UNG and it stands for UNG is Not GNU. Brilliant.
Sand hill is about to invest at $10M pre in the new company.
The phone rings, it's Sand hill: they want you to be the American CEO of UNG. Up to the task?
Interesting story. I get a bit lost between the hypothetical and what I can only assume you are hinting at having actually occurred.
Some times I wonder if this is the field I want to go into
/ 17yo -> UNL for CS/CE
Posted by: Cole | March 16, 2008 at 11:21 PM
Well, ask yourself the question: are you happy when you’re coding, building software, reading computer stuffs? If the answer is yes, it means that’s where your “flow” is.
Go for it. You’ll have great time and you’ll make incredible discoveries from understanding Gödel’s theorem to building your first lisp interpreter or to writing at once an entire page of PROLOG without a single bug (my 3 enlightenments when I was a CS student, you’ll have yours no worry).
As to the day to day job 3 things to remember: - Try to work on something you like but most importantly with people you like. It’s more important than ANYTHING else – Find an environment where you learn (e.g. with people brighter than you are) - And finally … be happy! :)
Good luck!
Posted by: Milking the GNU | March 16, 2008 at 11:54 PM
Yes!!!
Posted by: Antonio | March 18, 2008 at 09:54 AM