"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.