[Ilugc] Open source and business

  • From: lawgon@xxxxxxxxxxxxxxx (kenneth gonsalves)
  • Date: Wed, 25 Jul 2012 16:56:16 +0530

On Wed, 2012-07-25 at 13:07 +0530, Arun Venkataswamy wrote:

Has anybody in this list or people you know - have made money by
creating
open source products? 

I have. Not much money, but money. My model is like this:

I offer to build applications for the client, charge what I feel is a
reasonable sum and convince them that if the software is open source
from the start it is easier to get people to contribute to it, the code
is available if I drop dead and it is easy for them to upgrade and debug
errors. My costs are cut because whenever I am stuck I can always find
people who are willing to write some code for free (although sometimes I
pay) because it is open source. I also insist on my clients learning the
basics of issue management and refuse to do anything unless a proper
ticket is filed. I do not have to lie to the client about progress and
never give progress reports. I tell them to look at the repo to see if I
am doing work or not. The model often fails because the client cannot
get used to the way I do things. When it succeeds, it works great. The
client as a co-developer. Note that all my work is web apps (not
websites).

Some things I have learned:

1. The person I interact with on the client side *must* be the person
who takes the decisions in the client concern. It does not work if I
have to interact with an underling.

2. The development must be module by module and should go into
production immediately - if the guy wants the whole thing ready before
going into production, I decline to do it.

3. One has to be extremely flexible with regard to design changes and
new feature requests. The client may think he knows what he wants, but
once in production, he may realise he needs something else. One must be
prepared to rip the guts out of the app and rewrite - without losing
data.

4. I push as much of the work as possible on to the client - he has to
enter the data (I may make a script to load the data from a spreadsheet,
but he has to actually get everything ready and run the script). I show
him how to back up, but he has to do it. Likewise simple upgrades like
doing hg pull, hg update and restarting the server is his job. Like wise
for database migration, I give the script - he has to run it.

5. Design - he has to hire someone for that. In one case the guy learned
css and html and did it himself. (it looked horrible, but he was happy).
There are two reasons why I do this - 1. I am not capable of drawing a
straight line even with the aid of a computer and 2. design is the one
field in which the open source methodology does not work. No committee
or group of people can do good design - one guy has to do it. If he
needs help, the helpers have to do what they are told - no vote.

6. Last and most important - make proper agreements and make sure the
schedule of payment is met. No pay, no work. The flip side is that when
they see I am flexible with regard to doing mid course changes and
adding new features they do not quibble about paying more.

One of my big successes was building an app for a Finnish NGO working in
Mumbai. We started with one site and soon several sites in 7 countries
in the region. The lady in charge of Asia then took a year or two off to
take a course on how to get things done by IT people. She was shifted to
Africa and we have now covered 4 countries there. The course she took
did not help her at all as it was to do with how to extract work from M$
Weenies. But she has learned issue management - you may look at the
discussions in the open and closed issues in this project here:

https://bitbucket.org/lawgon/kenyakids/

now her bug/feature reporting is as good as most professionals.

We are soon going worldwide, and quite a few other NGOs are lining up -
my client is doing the marketing for me (and not asking for commission).

I have had one spectacular flop also - some members of our LUG will
remember as they were involved. The flop was due to the fact that I
ignored most of the principles mentioned above - especially point No 1. 

One last comment - do not write code unless 1. some one pays you or 2.
you need it for something you want to achieve. You can think of some
fantastic idea that you think will be the next facebook or will fulfill
a need that people will pay for - ok, if you must, do it, but do not
expect to make money from it. As some one said, if people will not pay
for something, they certainly will take it if it is free.

-- 
regards
Kenneth Gonsalves


Other related posts: