A true story; selling open source

Posted 21 Jan 2004 at 21:38 UTC by jds Share This

Here is the scene: Several of us programmers at a small custom software business have been advocating that we open source our code. We advocate it gently and consistently, and have done so for years. The owner of the company is finally friendly to the idea, but would never seriously entertain the notion because he wants profit and no matter how many times it is described to him, cannot fathom how money can be made with something that you're giving away for free.

Recently, I found a small personal project that incrementally blossomed into quite a large project (for a single programmer). Early on, since I was defining the terms of the project, I requested from the customer that it be made open source. He said "sure," since it made no difference to him.

Last week, I approached the owner at my day job, and told him I was working on another project evenings and weekends. His initial response was not positive, and he said he would think about it. During the weekend, while I was working on the project, he stopped by the office. As he was leaving, the following conversation took place:

"What are you up to?" he asked. I told him that I was working on the MRP project. He said: "You're working on it _here_?"

"Yes," I said. It's quieter here than at home.

"It's a conflict of interest," he said. "I do not believe that it is. It seems like it may be, because it grew larger than I originally thought it would. It is also not really competing, since we do inventory management and barcoding, and this project has neither. I have to look at it from my original intents. My intents are pure," I countered.

I told him that I firmly believed it was possible for our company to benefit from my work because I am building a modular PHP framework which can be used for our own applications when I am finished. He said that that was another conversation altogether. I agreed, but said it was a way to begin looking at it as something that would benefit him.

"How long have you been working on it? How much have you done?" he asked.

"A couple months." I thought for a moment. "I wrote the requirements and I've done about twenty hours of coding."

"You should have approached me some time ago," he said.

"It started out very small. You have been very difficult to reach the past month or so," I explained.

"That's no reason. I needed to know about this earlier so that I could have given you permission," he said.

"It has not been my intent to deceive; I simply did not think it was a big issue, but my conversation with another programmer made me realize that you could perceive it as a problem, and so I approached you," I said, truthfully.

"This could be a serious problem. Now you have created more work for me. Now I have to create a Rules of Engagement document to handle these kinds of things," he said, having thought about this for the past couple of days.

"That is one way of looking at it," I countered. "You do not _have_ to create that. I believe that when you do create such a document, you remove authority from yourself, the ability to freely manage this company five years from now. Sure, there is a place for such documents, but I do not believe this is an example. I am not trying to take anything from this company."

That made him pause a little. The realization that he could create a document now which would confine him later was uncomfortable to him. He shook it off.

"I can always change the Employee Handbook; I can always update such a document."

"It's a lot harder to change something after it is written. I know there is such a place for these things, but I do not believe this is one of them," I said again, knowing that if I budged one millimeter, the conversation could collapse into something adversarial.

"How much are you billing them?" He returned to the subject.

"150 hours. I'll probably work 200 hours, but I'm only billing for 150," I knew that I needed to be completely honest with every question he asked.

"How in the world are you going to work here full time and work for them 150 hours in the next couple of months?"

Good point. I hadn't really thought of that from his perspective. Evenings, and with the help of a few programmer friends was my own personal answer, but I didn't think he would buy that. I paused.

"It's a conflict of interest," he reiterated.

"I am eager for this to work in your favor," I repeated. "My first loyalty is clearly with your company. I have already postponed a couple of appointments with them because of commitments with you, and it will always be that way. I made that clear to them early on. This is my day job."

"What do I do about someone else who sees what you're doing, then goes out and starts working for a customer, justifying it the same way?"

That caught me. I had not yet thought about other people using me as a role model to justify something unethical.

In fact, it stopped me cold.

Having studied honesty now for several years, I know that sometimes I need to do things in a particularly forthright manner _simply because_ others will see it. Sometimes grey items need to be made black or white for the sake of observers. A large part of honesty is abiding by principles which do not need to be exercised for their own sake, but rather are exercised for the sake of communicating the principles of honesty in a consistent manner.

Thus, it made perfect sense to me that I needed to be able to drop the entire project if he pressed this point. I spoke carefully, knowing my loyalties.

"You have a point there," I said. "I need to evaluate what I'm doing from the perspective that another programmer may use my actions to justify something that is not so innocent." It was appropriate for me to at least acknowledge that my actions could be used to justify not-so-innocent ones.

"Now what?" I continued, "Do I cancel the project?" My mind raced through that as a possibility, and came out clean because I really meant what I said earlier: my first loyalty is with this company, even if I disagree with its policies on a secondary level sometimes.

"I am okay with calling them and telling them that I cannot finish the project. I don't want to do that, but if you believe I need to, then I will."

"Wait, I'm not saying that is necessary," he quickly halted me. I expected he would, and had simply opened the door so he would. I had earlier told him the rate I was being paid, and he had done the math in his head; he knew it was a lot of money that I was proposing to walk away from. He also knew about me that I had the ability to walk away from it that easily.

"I am perfectly comfortable with your company taking ownership of this project," I offered, which is a point I had made in an earlier email to him, and in a very quiet way, probably the reason that the conversation had gone so well up to this point.

He thought coolly about that for a bit. Up until this point in the conversation, he had been preparing to leave, since he was on his way out the door when the conversation began.

"Okay, now we need to talk about this. Might as well talk about it now," he said, and sat down. "V. will be quite upset at this news."

"I do not see that," I countered, knowing that the manner in which S. relayed the news to V. would have a strong effect on V.'s reaction because both work together very well. It was entirely possible for V. to be angry at the news, but it was entirely possible for him to be copasetic also. We had to finish this conversation in a clear and positive fashion.

I continued with the idea I had introduced in the email:

"I accidentally sold a project for your company," I said. "I got in over my head and you're going to take it over. Can you do it for the rate I quoted, even though it is less than your rate?"

"We're flexible," he said, not at all willing to walk away from $10,000 which could come to him this cleanly. "We quote different things depending on different circumstances." He didn't want to admit that his company would benefit, but it was clear that if I could completely turn it over to him, that he would take the offer.

"It will benefit them because I'll be able to get the project done more quickly and with less stress, working during the daytime, and playing with my children in the evenings," I said. "I think they'll be okay with it," I hoped out loud. The only thing that would change for them is who they write the check to. Fortunately, they are very friendly folks who just want good software.

We talked a little more, working out the details along these lines. The money I had already received for writing the Requirements Definition was to be my salesman's commission.

Finally, S. said "I can do that." He reiterated what he understood our agreement to be, and I was delighted because, although I was losing the income, I was keeping in accord with S., a very wise in the long run since I quite enjoyed my day job.

S. agreed to honor the terms of my original agreement with the other company.

There was only one more issue to discuss.

I clarified that I wanted the project to be Open Source, saying that I had already made that commitment.

I did not say to him that if he wanted to close-source it, I would abide by his decision; otherwise it would not be a pure gift on my part. I left that part unspoken, yet ready to accept if he pressed the point. I did say to him:

"Can it remain open source?"

"Sure," he said, "I don't know how all that works, what our benefit from it is..." he trailed off.

I knew that he wanted to be assured that he could freely generate income from the source code. I explained to him how MySQL works: it's Open Source, but customers can pay $2500 for the source code also, and even more for some kinds of licensing.

"It's not really the way for a small business to make a living, though," he observed cautiously.

True, I said. IBM makes a lot of money on it. RedHat; it's their whole business model.

S. has intentionally veered away from learning about Open Source because he perceives that it means he will have to give away things instead of selling them. He will not even entertain the full Open Source model because of this one reason--he, and most other proprietary software manufacturers.

"You own the source code. You have two audiences," I said, gesturing with one hand to the left, and the other hand to the right. "One group has some geeks working for them who can take the code and modify it and install it and customize it. The other group are your customers; they are the ones who have no geeks, lots of money, they want your expertise with the code; they continue to pay full rate for the commercial license installation. And the nice thing is you get modifications to the code from geeks all over the world who are grateful for the project."

It flowed; never before have I been able to capture the essence of Open Source and moneymaking in one simple paragraph. S. could see the logic, and accepted the fact that the project will remain open source.

So, for $10,000 I sold to our company the right for me to develop Open Source code on company time. Hopefully, this is only the beginning.

I would have done the same for $50,000, so I consider this a bargain. I have waited and prayed for years for something like this to happen.

p.s. On Tuesday, the customer also agreed, and so the deal is concluded. Truly a positive solution for all involved.

COOL!, posted 21 Jan 2004 at 21:55 UTC by lkcl » (Master)

wow, you lucky git. what a _fantastic_ bit of level-headed negotiation. now all you have to do is continue to be the one that develops that project: as the project leader, you will be invaluable to that project, and hopefully therefore also to your company: none of those "geeks" would be in a position to replace you because the most well-informed top spot is already taken: by you.

p.s. you will let us know what the project is, eventually, once released? :)

Project, posted 21 Jan 2004 at 23:46 UTC by jds » (Journeyer)

Certainly. Look closely; it is the first hyperlink above: MRP. The project is called Brother Jonathan on sourceforge, however there is *nothing* but a simple PDF on the Forge right now. In a few weeks, the first alpha code will be available, and by late March it will be at 1.0, since I am now working full time on this.

I expect it will be another year of open source development before the project is _really_ smooth, just because there is so much that can be done with MRP which other manufacturer-geeks will add to this modular package.

There are only a couple open source MRP packages, yet hundreds of proprietary ones, so I know it will be popular once released. I'm calling it MRP, but it has a fair amount of ERP as well.

Yes, you are right. Very fortunate. I'm thankful, and hope that I can really give back to the open source community now. And I am hopeful that my day job will see this incredibly positive feedback loop that makes open source happen, and jump in with both feet!

very nice, posted 22 Jan 2004 at 19:13 UTC by gilbou » (Observer)

this is very interesting. to know and understand how upper management handles things will help us present our open source work correctly :)

coincidences, giving away, posted 22 Jan 2004 at 20:52 UTC by yeupou » (Master)

It looks more like happy coincidences than anything else. It's nice, but I would like you to get back here in one year to tell us how things gone.

Apart from that, I do not understand why you say « he'll have to give away things instead of selling them ». Your software, if it's released under a free software (or whatever you call that) license, will forever be at the disposal of your boss. He is not really giving away anything. He's not even giving anything, there's no gift but an exhange ($10,000 against software).

Proprietary mindset, posted 23 Jan 2004 at 13:04 UTC by jds » (Journeyer)

gilbou this is very interesting. to know and understand how upper management handles things will help us present our open source work correctly :)


yeupou Apart from that, I do not understand why you say « he'll have to give away things instead of selling them ».

It is a strange relationship that typical proprietary business owners have with open source. You must understand their inherent selfishness in a manner which is objective: don't take it personally, for if you do, you will then be unable to work from principles. Proprietary owners like the idea as an idea, but as a practical reality it terrifies them because they cannot grasp the fact that some customers can get their software for free, and some others will happily pay for the exact same code. They think that if they make software available for free, then soon nobody will ever buy it. The paragraph you quoted above is the whole reason this article was written.

We open source advocates already know that open source will "sell" itself given the opportunity. We have already discovered the fact that open sourcing a project means a lot of code gets written "for free" by othes who donate their time--and are grateful for the opportunity. The only thing remaining is to gently convince proprietary software sellers of this simple fact.

This task is made difficult only because the proprietary model is designed around the idea that anyone who has your software legally has to have purchased it from you, and everyone else is a 'cracker.' However, if you open source your code, then you admit a whole class of people who in the previous model were known as crackers. You have to understand this from the proprietary model's perspective in order to understand why the article above is such an incredible victory. I literally purchased the right to develop open source software for $10,000, because I believe there is no other way our company would consider open source--except as a place to "borrow" code!

Now, we have made the quantum leap into PAYING ME TO DEVELOP OPEN SOURCE SOFTWARE. What a concept. I'm sure it will take weeks for the reality to descend upon my employer; by then the project will be well underway, and his ability to second-think his decision will be lessened.

As for me coming back in a year to tell how things have gone, just keep in touch with the Brother Jonathan project at sourceforge, linked above. If anything unusual has happened over the next year, I'll post another article to advogato.

Congratulations!, posted 23 Jan 2004 at 21:32 UTC by johnnyb » (Journeyer)

My employer mostly understands open-source. I think that he too is leery of the economic impact of direct open-source development. However, he is perfectly happy with my participation in the community during work hours, as long as it is toward company goals (like small patches to Postgres, and hanging out on their and RH's mailing list). Obviously, he _really_ likes it as a source of customizable software for use in-house, and to give to clients (the ability to simply hand other people PHP and have our software work is very useful).

Anyway, I think that once the mindset changes, it will be good for everyone involved. Right now, there are two mindsets which are both wrong: 1) that open-sourcing code prevents paying customers, and 2) that because something is open-source means that you should avoid paying for it at all costs. Both of these are detrimental. I know I am often guilty of #2.

Anyway, the next few years will be very interesting in the computer industry.

Sure it's free! (Heh, heh.), posted 22 Sep 2004 at 00:58 UTC by MartySchrader » (Journeyer)

The way I like to approach this is as follows:

Client sez, Gee, this here software is free for the download, ain't it?

Yeah, I sez.

Well, how come I gotta pay all this moolah to git it installed and configured? client sez.

Sez I, Well, okay. Here's the RPM file set. Go right on ahead and expand that archive. Then you can install that puppy yer own bad sef. Once you git it all configured and working you let me know and I'll come on out to do the hard part, eh?

This usually puts any objection to charging for installation and configuration to rest. The whole Open Source community is built on this very scenario. If you have the manpower to do it yourself then go right on and do it. If you can't do it yourself then expect to pay me to do it for you.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page