Fog Creek Software
Discussion Board




Thoughts on Opensourcing non proprietary component

Look out another Open Source question, tired of these yet? (and no, that's not my question)

My company developes software for a vertical. One of the things we developed is an  J2EE/EJB like application server written in Python. What we charge the big bucks for, is the industry specific application that we built on top of this frame work.

I'm toying with the Idea of open sourcing the application server portion of the system. Perhaps we can draw some developer interest and get more people using the underlying codebase and hence improve it's quality.

I don't believe that portion of our code is propriatary. We never plan on going into the application server market, writing software targted at developers doesn't seem that lucrative.  Besides anyone who wanted to could read the spec and write there own.

The thing that makes me hesitate now  is the ammount of time it would take to run a proper OS project.

So the question is what are your thoughts on this kind of approach? Is it even worth pursuing?

Scott Robertson
Friday, March 26, 2004

OK. I'm a little bit confused as to why you had to built your own app server. If that's not your competitive differentiator, why not use an off-the-shelf or open source app server?

Presumably there's some answer to that question. The off-the-shelf ones weren't good enough in some way. Maybe using Python means you can develop faster. That means that your app server is actually a competitive advantage, right? So why give it away if it's providing you competitive advantage?

"Anyone who wanted to could read the spec and write [their] own" ... sounds like very faulty reasoning. Could they write their own in zero time and at zero cost? Don't confuse what they "could" do with what they "will" do. Just because somebody could compete with you by cloning your entire application doesn't mean you have to make it easy for them.

Joel Spolsky
Fog Creek Software
Monday, March 29, 2004

If you think that you product/component needs improvement the last thing you should to to find new ideas is sharing the sourcecode. You will need a separate framework to maintain the incoming issues/claims, track them, manage them, analyze them (of course, IF anyone EVER will participate). As I understand you expect that runnig an OS project you will gain a more competitive (e.g. more advanced) product at low cost. I do not think so.
If you're conserned on the amount of time you will spend on the project, you should rather be conserned on the cost of this project, because time is not the only thing you will spend. I do not even mention that time IS money (cost) itself.

If your goal is to make the product more competitive, it is better to hire a guy(s), a professional(s),  who would test/work on your specification, test the product and promote new ideas.
I believe this approach will cost you least at the bottomline than runnig a seperate OS project.

Thenin
Tuesday, March 30, 2004

"""That means that your app server is actually a competitive advantage, right? So why give it away if it's providing you competitive advantage?"""

Because if his competitors were going to program in Python, wouldn't they already be doing it?

As to the OP's question, though, the truth is that you *might* be able to get help from other developers as far as bugfixes, etc.  But, unless they are using the framework for similar purposes to you, you might not get that much out of it.

In my own case, I have an open-source Python framework (PEAK) and I do get useful input, bug reports, and bug fixes from people experimenting with it.  But, I find a big part of the value in doing it open-source is the imposed discipline of the process.  You're a lot more likely to cross your t's and dot your i's when you know a bunch of sharp people around the world are looking over your shoulder.

So, if you're concerned about having the time to do it right, I'd say, don't expect your project to go anywhere.  If you don't have time to do it right, neither will your users/collaborators, because they'll take their cues from you as to whether it's worth *their* investment of time.

Phillip J. Eby
Tuesday, March 30, 2004

Offering open source software is BAD for other programmers in the long term.

It dillutes the value of software development.

John
Wednesday, March 31, 2004

I fail to see how offering open source software is bad for most other programmers in the long term.  As many as 95 percent of software developers are employed in-house to work on software that will not be released to the outside world.  Open-source software seems to help these developers rather than hurting them, unless of course you think reinventing the wheel is something programmers should be doing.

I can certainly imagine degenerate examples of how open-source software could hurt even these developers (need a database for your internal app?  you'll have to write one from scratch... but hey, it'll employ a team of developers for years!) but perhaps I am missing the point.  Could you please explain how open-source hurts these developers in the long term?

Chris Thompson
Wednesday, March 31, 2004

I've heard this argument that "open source helps in house developers" before. I think Eric Raymond originated it. It's economically false.

It helps them get their job done faster, so that with all their spare time they can be ... laid off. It's the same argument that mechanization helps factory workers. Anything that reduces the amount of work that somebody has to do is going to reduce the demand for their job, thus reducing their salary.

Joel Spolsky
Fog Creek Software
Wednesday, March 31, 2004

The difference is programmers always have 10 or 100 times more work than they can do.  Even if switching to an open-source app server made their work go 5x faster, they'd still have plenty of work to do.

If you laid off programmers because they solved the problem too quickly, by using open-source -- and you really didn't have any more work for them to do -- then their goal as an employee would be to work as slowly as possible without getting fired for being unproductive.

(If that is the case, then heck, I'd work as quickly as possible, get laid off when you run out of work, then find another place to work.  Better to work on 3 or 4 interesting projects than one boring one.)

Anyway, to answer the original Q, why not just port your service to an existing open-source app server?  It's supported and used by far more people.  Simply slapping an open-source license on some code doesn't grant you get all the benefits of a mature open-source project.

K.H.
Wednesday, March 31, 2004

The entire purpose of computers is to substitute machines for human beings in the course of production.  The entire job of a developer in the long run is to eliminate his/her job. 

At some point I believe that demand will cool for programmers because many of the big computing problems will be solved or at least have the 95% solutions that are good enough for the vast majority of customers.  Then who needs to hire programmers other than the small percent of very high-end clients?  IBM doesn't give away open source software because they're benevolent.  They clearly believe it gives them a strategic advantage.  See Joel's Strategy Letter V. (http://www.joelonsoftware.com/articles/StrategyLetterV.html)

We're not there yet but giving away components (open source) is ultimately more beneficial to large corporations who use software components for free than developers trying to earn a living.

Jeremy
Thursday, April 01, 2004

We're Python bigots. Mostly because that's the language we've spent the last 6 or so years with.  However that doesn't mean we don't study and experiment with tools from other languages.

We tried most of the other Python based app servers but they all left us wanting something. We've always liked Java's EJB approach. Nothing in the Python world was close and there was no way we were going to switch languages. Jython wasn't  an option  because we'd still need to have real world experience with Java. We felt it would be quicker to build our own app server than it would to become craftsman in a new language. Especially since we already had a road-map  (the EJB spec).  Heck implementing it from a published spec saved us boatloads of design time decisions and documentation. If there was an argument on how something should be done, all we had to do was look at the spec.

The best part of rolling it from the ground up this way is we know every inch of the system. We're not dependent on anyone else. Joel had great article about this line of thinking. (One of the reasons why I like this site is it validates some of my crazier ideas.)

Scott Robertson
Thursday, April 01, 2004

Joel,

it depends. I do believe the argument that OS for inhouse programers is good in the "job security" department exactly because they will end up writing a lott more custom stuff vs. offtheshelf, ending up in very much higher maintenance requirements and on top of it they'll do all this while being on average less productive.
In this way the company will need significantly more coders (and admins).
Why don't I like it then? Becuase it is especialy the dreary work that gets multiplied. I'd rather do new stuff.

Just me (Sir to you)
Friday, April 02, 2004

Joel, you say that 'anything that reduces the amount of work that somebody has to do is going to reduce the demand for their job, thus reducing their salary.'  While is is almost certainly true, I do not think it naturally follows from this that open-source is bad for in-house developers.

An analogy (and I'm trying to avoid making this a straw-man) to this is a compiler.  I do not think I've even met a person who currently writes computer software without a compiler.  A compiler vastly reduces the amount of work that a programmer has to do when writing computer software.  Instead of writing in assembly or machine code, they can write in a higher leve language like Java, C++, or Visual Basic.  They are thus more productive but similarly, have less work to do and, by your argument, are reducing their salary.

Obviously, nobody would argue that we should all get rid of compilers or even that we should never have introduced them in the first place.  Similarly, nobody would argue that we should be ditching other tools we use on a day-to-day basis (source code control, documentation generators like doxygen, graphics libraries, etc. etc.) so why are you arguing against the use of open-source software by in-house developers?  In what way is open-source software different in this case from the other tools we are all happy to use?

Chris Thompson
Friday, April 02, 2004

Chris, would you argue that the compiler _should_ be free?  That essentially boils down to what the OSS advocates argue.  Microsoft may make their compiler inexpensive because they want to promote development on Windows but they don't give it away for nothing.

Jeremy
Friday, April 02, 2004

Jeremy, I would (and did) argue that a compiler should be _available_ for me to use even though it reduces the amount of work that I have to do.

Let us not argue with what Microsoft should do, they pretty much make their own gravity.  Should Apple make their compiler free (even if it wasn't gcc)?  Certainly yes.  Make it free and you will encourage more developers to write for that platform.  I know I wrote apps for OS X because the compiler was available at no charge.  I am willing to pay the money for MSDN because Microsoft is such a large market but the cost to port to OS X was negligable (we used a high quality GUI library which happened to have cross-platform support) which is the only reason the app ever got ported.

Now, I'm working on an eCommerce site.  I took osCommerce which is freely available and made some modifications.  It cost me nothing to acquire it and I will contribute back my modifications so others can use it (though I am not required to).  The business I work for isn't competing primarily on the strength of their web site so we lose much less by contributing back our improvements than we gained by getting the software free in the first place.  And of course, the main reason we CAN make such extensive modifications is because it is open source in the first place.  We looked around for commercial off-the-shelf solutions and none of them at any price fit our needs and very few of them came with source code allowing easy modification.  In this case, I was hired because of the availability of open-source.

Chris Thompson
Friday, April 02, 2004

"Microsoft may make their compiler inexpensive because they want to promote development on Windows but they don't give it away for nothing."

As a matter of fact, Microsoft does give away all compilers included with the free .NET Framework SDK. That would be C#, Visual BASIC .NET, and JScript .NET, as well as the IL compiler/decompiler and a GUI debugger. Also, MASM is included in some free DDK download. The C++ compiler and J# (I think) are the only two compilers that you have to pay for.

Chris Nahr
Saturday, April 03, 2004

Okay, Microsoft gives away _some_ of its development tools.  But you have to pay for the C++ compiler and the IDE.  Those are not free.  They don't charge a huge fee though because they want to encourage development.  Nonetheless, I think it's ridiculous to demand that programmer tools that increase productivity be free.  Someone had to do the work to create them and their time is worth something.  Isn't yours too?  Mine certainly is.

Jeremy
Monday, April 05, 2004

Jeremy, you seem to be missing the point.  Just because a piece of software is open-sourced does not mean that the developer who wrote it did not get paid for it.  Many of the people who worked on gcc got paid for it, for example.  I am getting paid for extending osCommerce.

Chris Thompson
Monday, April 05, 2004

*  Recent Topics

*  Fog Creek Home