Saturday, May 18, 2013

Open Source Software is Payback

The public continues to misunderstand free license and open source software after prolonged effort to educate, define and clarify. I suggest that there is a big difference between what should happen and what actually happens.

What should happen. Anyone who distributes a product should have superior social skills and talent for making their friends happy.

What actually happens. Both technical and social skill is needed to create a great software product. A programmer with high technical skill and low social skill will ultimately gets disillusioned, bitter and frustrated. No one wants to use software that is socially difficult and harsh, no matter what the possible benefit might be. Social skill is reflected in the end-user interface and especially reflected in an application programming interface (or API).

What should happen. Free license and open source software should fit under the umbrella of the commercial system and remove the risk for ultra-conservative corporate customers. It should compete with commercial software on the same turf. It should not be mysterious and unpalatable just because it costs less. (It does cost you something to use any software. Only the license is free.)

An open source open source project should have good "customer" service. It should listen to and satisfy "customer" complaints. It should offer a world-class web site and free technical support.

What actually happens. Open source software uses a bartering system. Bartering is the exchanges of goods or services without any regard to money. When you barter, neither are customers. Two parties are peers.

Anyone who visits your web site is your customer. According to the Malcolm Baldridge Total Quality Award, your "customer" is anyone who interacts with you, your goods and services. So, yes, you can have customers without any exchange of money. Some open source projects have excellent customer service. They treat their peers with dignity and social grace.

I produce free software tutorials and publish them on YouTube. It is my way of giving something back to the community. It is my way of improving my skills. I consider anyone who watches my video to be my customer.

Bartering typically happens when two parties come to an agreement about what will be exchanged. An agreement is made and then the exchange. But free license and open source is generally bad at bartering, too. In this model, an exchange involves parties that do not know each other and may take years. Your peer downloads your product anonymously. You build software in 2000 and someone downloads it in 2010. There is no (practical) recourse for failing to live up to an agreement. It is a cultural value, an honor system, bartering on faith. Some do not share the faith.

Never, ever distribute your free license and open source software with the hope that someday someone will return the favor. This is entirely wrongheaded. Make an effort. Distribute your software to return the favor to all of the free license and open source software that you have already used. Do not expect some future return on your investment. You are indebted. Your contribution is repayment. You have already benefitted.

Educate yourself on free license and open source. Listen to your peers. And when someone wants you to improve your software, be nice.

6 comments:

  1. Hi,

    There are a number of implicit assumptions in your post here that really don't hold in many (possibly even the majority of cases).

    What if the Open Source software is professionally developed as a livelihood?

    What if the developer wants a normal life outside work, spending time with family and friends, and normal activities, not tied to maintaining a project in their personal time?

    You use "Malcolm Baldridge Total Quality Award" as if it were the accepted definition. I think the Oxford dictionary might be more appropriate: "a person who buys goods or services from a shop or business"

    So, let's get rid of the idealism and be real/practical. How exactly can you maintain professional end-user-distributed Open Source software as a professional operation, if you are not allowed to charge for your support?

    I will anticipate and repudiate a few responses:
    1) "sell support to enterprise customers only" -- I don't think it is ethical to over-charge one customer to subsidise another.
    2) "don't" -- So there should be no software industry, all software should be developed as favours to other people?
    3) "ads" -- not applicable in most cases.
    4) "live cheaply" -- I think it's unfair for Open Source developers to be expected to be at the bottom of society (like it or not, the world is measured by money - and I think you lose the argument if you have to invoke communism or something similar to justify it).
    5) "find some other way to subsidise it" -- again, I would say there are ethical issues here. In addition, in a competitive environment it is usually impossible to do this kind of thing, as someone will undercut you where you're trying to derive the extra income from, because you're trying to distort the market in your favour.
    6) "take donations" -- you will be lucky if you can get 1% of a salary in donations.
    7) "do it in your free time" -- I refer to my initial paragraph. People have a right to a happy family life, they shouldn't be chained to their computers both at work and evenings/weekends. It is a great offence to work/life balance.

    ReplyDelete
    Replies
    1. May 20, 2013

      Re: Open Source Software is Payback

      Dear Insert Name Here:

      Thank you for taking the time to contact us regarding a recent blog post. Unfortunately, We are unable to respond for the following reasons:

      CUSTOMER NOT ON FILE

      Check your records. If you made a purchase using a different name, please contact us.

      We are forwarding your correspondence to the department that will be responsible for responding to your letter. At the conclusion of that process, we will provide you with a letter response. If you have any questions in the meantime, please do not hesitate to contact us.

      Sincerely,

      Gilbert's World Customer Service Department

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Haha, very funny ;-). But you started a discussion. I run an Open Source project, and I do start discussions, and continue in them -- that is very different to a situation of technical support.

    Would you like to answer my criticism, or shall we conclude that you don't have an answer on how to make free support on top of free software scalable and sustainable ;-)?

    ReplyDelete
    Replies
    1. With some kidding aside, I do not have and never claimed to have an answer on how to make free support on top of free software scalable and sustainable. I'm not going to renumerate everything that has been tried and failed.

      What is the point of my article? (1) Many people continue to misunderstand the very nature of free license and open source, both producers and consumers. They expect, wait for and anticipate things that are just not going to happen. "Build it and they will come" is a bad open source strategy.

      Read an open source license. Customer is avoided as a legal term. Some use the term "You" and "Entity".

      http://opensource.org/licenses/GPL-3.0
      http://opensource.org/licenses/MPL-2.0

      Some use the word "recipient".

      http://opensource.org/licenses/EPL-1.0

      As for the definition of "customer", Wikipedia provides a broader and more appropriate term for free license and open source. I'd like to bring your attention to the the phrase "for a monetary or other valuable consideration".

      http://en.wikipedia.org/wiki/Customer

      When I download someone else's software, "other valuable consideration" is my hundreds of hours of free videos, hundreds of tutorials and plus 2+ million lines of source code, which I have already contributed.

      When someone else downloads my software, "other valuable consideration" is their use of the software to get their work done, reporting defects, contributing patches, starting a new and better project that makes mine obsolete.

      Thanks,

      Delete
    2. I'm afraid I am having a hard time following what the perspective you're trying to move forward is. Perhaps it is a language barrier.

      When you say "should happen", do you mean "what the customer wants", "what the customer deserves", or "what would exist in an ideal world but is perhaps not possible"?

      You mentioned bartering as something that 'actually happens' as opposed to 'should happen'. To me that suggests you think bartering is bad, but I'm not sure now if that's what you actually mean. Or, do you mean to say that you think bartering shouldn't be explicit, just that people should respect that other's will try and repay the debt in time? And if so, how do you consider that the vast majority of users want to take a lot more out in terms of free software and support, but not offer anything back? A big problem I know only too well. I'm not whinging about it, but I do seek a mutually-respected ecosystem that protects me from that problem, rather then letting people walk all over me. This is why I am engaging in your discussion, because to me it read like a statement that I am in the wrong for not letting people always do that ;-).

      Should there be a difference in how prosumers (peers / fellow developers) are given free support, to consumers who just want to take something are leave? I am likely to make such a distinction on instinct, and I do respect you more knowing the level of contribution you have made.

      I'm not at all unreasonable about helping people - a bit, to a fair degree, when things are harder than they should be - but there are lines to be drawn. Right now I'm helping an individual who had a problem upgrading, knowing that the insight learned will help improve documentation and UIs for people in the future. But, it does not mean that I would be willing to step people through doing their own upgrades every time someone asks, for free.

      Delete