As any of my readers know, ethics is a topic that is very near and dear to my heart when it comes to software development. When you run your own shop, there comes a time when your ethics are going to be tested. I thought I understood what that test would entail only to recently discover that I had absolutely no idea at all. To protect the innocent as well as the guilty names have been changed, but the story that follows is quite true. I hope it will serve as an example to the rest of you out there attempting to sling code for a living. Note: You would be well advised to read this and this before continuing.
This story involves two companies, Company A and Company B. Company A is reasonably well established and I've been writing code for them on a contract basis for many years. Company B is a relatively new outfit that I have not done any work for. Company B was founded and is currently operated by a group of executives that were displaced from Company A and arguably is a competitor. Company A has experienced quite a few shakeups recently, one of which recently involved the departure of it's current majority shareholder and CEO. This person made their way to Company B after having their stake in Company A bought out. This person then attempted to purchase a license to the software that Company A paid me to develop so that Company B could begin using it. Company A indicated that it was not interested in that kind of deal as they treat their custom software as a competitive advantage.
The story does not end there. At this point the executive from Company B decided to contact me. This person made it very clear that Company B was interested in developing a new custom software solution and specifically told me that they wanted to discuss costs and timelines. I was of course ecstatic as this seemed to the be opportunity that I needed to work for myself full time once again. So I took the meeting. As I came to realize very quickly after our meeting began, that is not what Company B was interested in. Company B actually wanted to acquire a working copy of Company A's software. When I suggested various arrangements Company B could attempt to make with Company A, they informed me that they had already tried all of these things and their efforts were met with a lack of success. This is where the meeting took a turn for the worse. This representative of Company B made a remark to the effect of, "If Company A goes bankrupt, that code will just end up sitting on a shelf gathering dust and that would be a real shame."
At this point I thought it would be prudent to inform this person that I would not even consider selling them copy of the source code of Company A's software as such a thing was clearly unethical and it seemed clear that's where this was going. So I did. This representative from Company B seemed to be alright with that though the conversation continued to revolve around brainstorming various methods, all of which were clearly unethical, that could be employed to acquire the source code for Company A's software. The eventual scheme that emerged was one in which Company A would be convinced to license their source code to a particular third party and that third party would then turn around and license a copy of that source code back to Company B. The representative of Company B wanted me to act as that third party.
I am sad to say that I did not reject this idea right then and there. By the time we got to this point, I was thinking strictly in terms of legality and with the appropriate licensing agreements, such a scheme would technically be legal. However in no way could it ever be considered ethical as Company A simply did not wish to license any portions of their software to Company B. The developer and problem solver in me, had for the moment, taken over. My sole concern was attempting to construct a solution for the problem presented to me by a potential client. It wasn't until later when I began to relay the sordid details to my wife and later on to my contacts at Company A that the full breadth and width of the insidious nature of this tactic became clear to me.
The next day I wrote a clear and concise email to the representative at Company B indicating that I would not participate in this project as doing so was not only unethical but would permanently damage my relationship with a current and valued client. I received a response not long thereafter thanking me for my time and consideration. I informed Company A of this incident only to find out that this representative from Company B had been employing a variety of seedy methods in an effort to increase the competitive advantage of Company B over Company A.
The moral of this story is simple: The difference between ethical and unethical behavior isn't always obvious in the heat of the moment. Ethics isn't just about what is legal and what is not. It's about having enough respect for your customers and business associates to recognize that they have the right to be treated as equals rather than as pawns to be moved about on a chess board. Company B clearly doesn't respect Company A and JPL Coding so it decided to deal with us as annoyances rather than as equals. That is very disappointing to me, but at the end of the day, I'm glad Company B revealed this to me as I will not make the mistake of taking their claims at face value in the future.