Subject: Developers/Free Software/Open Source (Was: Re: $1,250)
From: Taran Rampersad <cnd@knowprose.com>
Date: Sat, 01 Mar 2003 10:41:19 -0800

Forgive me, but this sort of hits home. In this fork, I'm going to bring 
up some issues that are perhaps too basic, but I have a perspective, and 
I'm not afraid to use it. :-)

Just to be clear - this is no longer about Tom, or all the other stuff 
associated with that thread. This last round of email 'Re: $1250' simply 
served as a bit of inspiration. I'm generalizing some of these things, 
since I only recently wrote about this in my blog. Robin just happened 
to write the right things to get my juices flowing, and this is not 
directed at him (in fact, thank you).

Robin 'Roblimo' Miller wrote:

> What you need to do -- and I get to say this because I'm both Jewish 
> and a fairly grumpy  grandfather -- is:
>
> * GET A JOB * 

As a developer, I agree with you... That's a matter of personal 
responsibility. As you pointed out, diversification is important. Eat 
first. Even Pekka Himanem's "Hacker Ethic" covers this, though I think 
it lacks the attention that it deserves. It's only after that basic 
requirements are met that we can consider things like Free Software or 
Open Source Software.

Strangely, 'hacker' may find a place in the DSM IV as a 
psychological/psychiatric problem when the basic needs are not met and 
the person continues doing something.  :)

> My wife is in the living room right now, painting a series of 
> pictures. Maybe she'll frame them and a gallery will display and sell 
> them, and maybe not. She's doing art, Tom, not trying to make money. 
> She's doing socially responsible, attractive art. And she is not on 
> the Free Art Business email list whining about how the world doesn't 
> recognize her talent, either. She's just... painting.
>
> Debbie can paint for five days straight because her husband (me) works 
> long hours and gets a pretty good salary in return. If I lose my job, 
> she may have to go back to work, probably at some crappy customer 
> service job. She'll still paint, just not as much. 

Agreed. I write software, and I write 'whore material' as well, though 
I'd really prefer to get a book proposal accepted (working, working, 
working). I consult. I also sell solar products, and sometimes sell 
computer hardware. And whatever passes by where I can make a buck - 
well, that's what I do. I even have a silly store on my website where I 
sell things (I sold one t-shirt since opening it, LOL).

If developers are working at doing other things - like cutting grass, or 
whatever - to pay the bills, and they don't get compensated for the code 
that they write (which is used)... Should one expect the code to 
continue being done? Probably not. Some would argue that this is a 
simple case of economics, and in many respects it is. If nobody wants to 
pay for something, nobody will. In essence, it's like writing a long 
manuscript, sending it to publishers - and getting rejection letters. 
The difference here is that developers don't get rejection letters. They 
just don't get paid.

There's a hint and a half for the developer. Don't write the code that 
you can't afford to. The users don't deserve it, and the middle men (if 
they exist) really don't care too much about you. Martyrdom is also droll.

One of the problems I have is the lack of a true business model for the 
software developer. It seems many people believe that we sit down, 
magically create something that we put into a box and sell it. It's 
really not all that simple, and Tom pointed out that there are Software 
Engineering practices that come into play. This is true. It's 
reconciling good software engineering with 'stay off the bread line' 
business models that is the Free/Open Source developer's  greatest 
challenge. Many local developers interested in Free/Open Source 
development ask me "How do you make money"?

Telling them that they should master the deep frier at the local 
cholesterol distribution center doesn't make Free Software and Open 
Source development sound very lucrative to them. Instead, I tell them 
that they really need to figure out:

(1) What they are going to write.
(2) Who their market is.
(3) How they are going to license it.
(4) How much is it going to cost to develop. (Something, I fear, seems 
to be lost in discussions!)
(5) What return they expect to get.  (Something that is empty without 
number (4), and comes across as whining when it *may* simply be an 
omission of (4).)

They look at me strangely, expecting me to reveal a great truth to them. 
I don't have it.

It is important that developers new to the concepts of Free/Open Source 
software that they are businesses, and need to run like businesses.

Number (4) is the real problem, because most of the attempts to address 
Software Estimation - schedule and financial - are dismal failures in 
that they are inconsistent. It's the embarassment of Software 
Engineering in this regard. This is made worse by the fact that the 
projects are object oriented, and follow a recurrent Spiral 
Model/Concurrent Engineering model that defies cost analysis. Dash in 
the fact that developers are manning deep friers to make ends meet - and 
that a cost is not only in cash, it is sometimes in liberty (freedom) as 
well as self respect. Consider that you can get furniture at the road 
side for free, but you may pay some self respect in acquiring it.

So how much is the cost of the software? This, perhaps, is one of the 
greatest strengths of Free Software and Open Source development - in 
that the cost is hidden, and the developers silently man their keyboards 
to produce quality code. They form communities of hackers producing 
quality code. Before you know it, they have literally man-years in the 
code, and people are using it all over the world.

Let me be dramatic.

Suddenly, let's say for some reason - this army of deep friers are 
suddenly unemployed by a new health craze that is taking over the world, 
and they aren't qualified to slice vegetables. They can't afford 
retraining. Suddenly, all these developers who had enough money to get 
by on no longer have that money. And all those people who they helped 
with their code - where are they now? If those people do not help them, 
then it would be an honest that these developers would feel betrayed. 
There's a relationship that has been built, and one group has been 
giving, and one group has been receiving.

This, any marriage counselor will tell you, is not a healthy 
relationship for either.A divorce would be in order. The GPL/Open Source 
license (pre-nuptial agreement?) would assure that the users get the 
code, and the developers are left  with... well, the ability to write 
code. Which is what they started off with. An amusing analogy to play with.

So - yes, it is up to the developers to make sure that their bills are 
paid. Yes, it is the responsibility of the developers to make sure that 
they survive. Yet - do we agree that the users of the software created 
and maintained also have a responsibility?

If we agree, then we also agree that the developers have a 
responsibility to assure that the users are responsible. And not only 
the users - the middle men who are between the developers and users are 
also responsible. Some of the users are responsible. Some of the middle 
men are responsible. Must they bear the brunt of the costs of the 
software? If it must be so, then so be it.

If the cost to develop the software is valued at $100,000 and there is 
one user who will pay - should that one user pay the $100,000? Yes, if 
they want the product. If 100,000 people use the product, then $1per 
user would suffice. Who pays has control over the code, and all the 
non-paying customers do not. Consider that DoD contractors may require 
SEI CMM level 3, but many processes will allow COTS to be used without 
all the overhead associated with SEI CMM process. I bet that they pay 
for the code.

So - we get back to cost estimation, which I think is either ignored in 
development scenarios related to business models (from what I have read 
so far, I hope that I can be corrected), and translating that cost to 
income for the developer. The developers are at fault here if they do 
not know how much it cost them to write the software. They are also at 
fault if they do not charge fees to do changes and so on.

The users are responsible for holding up their end of the bargain, and 
if there are middle men involved, then the middle men must assist in the 
users holding up their end of the bargain. Failure for this to happen 
seems to be the downfall of the entire Free Software and Open Source 
models... where if developers don't write the code, there simply won't 
be any software for people to make money off of.

Then all further discussions based on business models for Free Software 
and Open Source will be useless.

Developers are part artist, and part engineer. Some are more artist than 
engineer, some are more engineer than artist. Free Software and Open 
Source software is developed around who developers are, and how 
developers want to be... or at least that's my perspective on how this 
all started (I was not there, I do not know). It's about giving the 
users freedom - but there can be no freedom without responsibility, 
which in itself can be self defeating. Admittedly, culture change is 
required - but culture change is also slow. Care must be taken not to 
reinforce the negative aspects of the previous snapshot of the culture 
in attempting to obtain the new culture.

Were it not for the original developers who started all of this, and the 
developers who have since followed - there would be no books to read, 
there would be no distros to purchase, there would be no magazines to 
read, there would be no alternative to proprietary software. For this, 
the original developers seem to have been compensated, and have done 
well. This is good. They did it in their spare time as well, and did it 
as a hobby/art. And this was good. Yet businesses do not hang these 
pieces of 'art' from their walls in the appreciation of art.

Times  have changed. Businesses are not using Open Source/Free Software 
because they believe in the ethic that started it off. They do it 
because they want to cut costs, and they want more reliability. This 
seems (to me, anyway) to be a transitionary period for Free 
Software/Open Source. More people are using it, therefore more people 
should be writing and maintaining it.

New ideas and concepts are often considered the weakness of Free 
Software and Open Source Software. Care must be taken that Free Software 
and Open Source software are not typecast to be mimicries of proprietary 
software - the next good idea may very well come from a Free 
Software/Open Source developer, but they may not be able to get it to 
market in time to beat out a proprietary company which has the same 
idea, since they are busy doing other things to make ends meet. 
Certainly, a large development team across the global village that 
implements the idea may stand a better chance - but are these the odds 
that we wish to play with?

Is this the future of Free/Open Source? To be copycats? I hope not, but 
it is not for me to choose.

There's a good bit of the Free Software and Open Source business models 
out there, and yet there is little being done for the developers 
themselves, and the developers are as much at fault in this regard as 
anyone else - probably more so.

There's a bit more to this topic than the sheer survival of a single 
developer. It's good to see companies springing up and capitalizing on 
the software that is created - as hobby, as art - and it's good to see 
that  other companies are using the products. It's good to see all of 
this, but really and truly, I'd like to see something positive with 
respect to developers. Some could discuss licensing and the various 
licenses available, yet I think that there is more to it than that.

Artists who produce poor art usually don't make money (unless it 
contains something controversial, it seems). Artists who produce good 
art also do not make money until well after they are dead. Some artists 
got lucky and were commissioned to paint ceilings. The majority were 
not. If this is how software developers are to be reimbursed, is it 
possible - with all the leaps in technology and culture that we have 
made - that we can find a better solution for people who produce things 
that are used for more than decoration?

I don't know, and I don't know that anyone else does - but it is worth 
discussion. It's philosophical in a way - and yet it is very economicly 
related as well.

My main problem is the Software Cost issue, which I think is either 
ignored or discounted as irrelevant due to the manner in which Free/Open 
Source software is developed. However, if we expect to maintain growth 
within Free Software and Open Source, we should address this. Developers 
need to understand that there is a cost of writing software - even if 
it's a coffee bill and a new keyboard. Whether or not they decide to 
donate the cost - well, that is their option, but it certainly isn't tax 
deductible. People who use the software need to be reminded of these 
costs from time to time as well. If developers cannot afford to code, 
they shouldn't. They make it bad for all the other developers who want 
to avoid giving away free beer when they wish to give away free speech.

For myself... well, what I am doing - muddling through - seems to be 
working, and this really isn't about me. It's about developers of Free 
and Open Source software in general, and the challenges that I see. I am 
fortunate. I have no wife, no kids, and I live in a house that is paid 
for. Some developers are not this lucky.

Business is risk. Mitigating risk is good business.

That was rather long, and I apologize. It's a topic that I could write 
more about - some things are omitted - but I thought I would spare the 
audience.

Taran Rampersad