Commercial CSLA .NET? Open-source CSLA .NET?


Home | Blog | CSLA .NET | CSLA Store

04 December 2005

Recently there was a thread on the

CSLA .NET discussion forum dealing indirectly with open source. I started replying, got carried away and decided to divert the bulk of my thoughts into a blog entry. They span both commercial and open source topics, so this post covers a wide spectrum of my thoughts.

<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” /> 

The thread started by someone suggesting that I should make CSLA .NET (the framework in my Expert VB/C# Business Objects books) into a commercial product. Not surprisingly someone else suggested the exact opposite: that I should relinquish ownership entirely.   My short answer: “Though this will disappoint both ends of the spectrum, I don't anticipate any major changes in the CSLA .NET license for CSLA .NET 2.0.” To make CSLA .NET into a commercial venture I'd need to leave

Magenic and actually start a software company. That's something I'm not real eager to do. I worked for an ISV early in my career and it is a whole different world from either IT or consulting.

Not that working for an ISV is (or was) bad. In fact it was kind of nice in some ways.   When you are in IT you have nothing to do with the product. You don’t actually make what the company makes, you make and/or maintain software. The rest of the company does what the company does and you do something else that they don’t understand or like. If anything, you cost them their jobs by automating their tasks, so they don’t like you. Typically you are tolerated as (at best) a way to save the company some money, but more likely as a necessary evil.   When you are a consultant you are the product. You don’t make the product, you are it. You’d think that makes you valuable, but it actually doesn’t. The work you do for clients isn’t the product – in that regard you are essentially a temporary part of IT. Your time itself is the product. To make it worse, clients often dislike you, viewing you as an uncaring mercenary, or as someone out for their job. More commonly clients like but distrust you, expecting that you can’t be worth the rate your company charges for your time.   But working for an ISV you are actually making the product. You are actually the assembly line worker, the engineer, the craftsman. There’s a certain pride to actually doing what the company does that you just don’t get in IT or consulting. However, you get the same respect (in my experience) as an assembly line worker; which is to say not a whole lot. Deadlines are often shorter and harder than in IT or consulting, and what you do or don’t do directly affects the viability of the company and your job.   But hey, my personal motivation for not wanting to start an ISV and make CSLA .NET commercial? I love what I do right now at Magenic. I get to do a wonderful mix of consulting, writing, speaking and various other activities. When I describe my job to the occasional headhunter they just shake their heads and walk sadly away, because it is virtually impossible to see how anything could compete…   Yet making CSLA .NET entirely open source (as in giving up ownership) doesn't make sense to me either. I am quite sympathetic to open source in general, and CSLA .NET is open source in many regards (most notably the literal one: the source is open).   But I make my living off building software, and I put a relatively high value on the massive amount of time and effort I've put into the books and framework over the past 9 years. I subscribe to the free-as-in-speech view of <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />OSS, and I think CSLA .NET meets that requirement. My thoughts are in the open, as is the code. They are not just open, but published for all to see. My

licensing terms are comparable to some open source licenses where the author retains copyright ownership, yet provides open source and nearly unrestricted terms of use.

I do not subscribe to the free-as-in-beer view of OSS at all. I believe that what I (and all of you as software professionals) do has a high value. That we provide a professional, specialized and valuable service and we create highly valuable products as a result. To release ownership of those products and to simply give away the fruits of our labor makes no sense to me I'm afraid. The frequent counter-argument is that the software should be free-as-in-beer and we should just all charge for our time. Give the software away and charge by the hour for support or targeted enhancements. And that’s a workable model commonly called consulting (see above).   And sure, getting paid for time makes sense when you are young. But getting paid for your results makes a lot more sense when you are older. Time, I have found, gets more valuable in a non-linear manner as you age, and even consulting rates can't match that acceleration. Not that I'm that old. But having kids and getting involved in community and family and so forth really seems to occur when people are 35-45. It is at that point in life that it becomes quite apparent that it isn't possible to charge by the hour and get what you want out of life. You need to charge by your results, because they are frequently worth a whole lot more than just an hour of your time.  

The nature of my arrangement with Magenic, combined with my overall life of writing and speaking means that I am able to put my ideas in books, on my web site and talk about them at conferences in a manner that is effectively free. Not only as in speech, but as in beer. But through it all, I retain ownership of my results; which is a key factor in my being able to continue doing what I love.