Friday, February 12, 2010

Open Development

Note: I'm posting this on my personal blog, which as always is a reflection of my own thoughts and in no way represent any official policy from my employer (whoever that may be).

Now that we former Sun employees (for the most part) are now part of a larger company, there have been some questions about how much of the trend Sun had made towards open development will continue (particularly where Solaris/OpenSolaris is concerned.)

(I want to separate the concern of Open Source -- where source code is made available for products after they are released -- from Open Development -- where the product is developed in the open.)

Many of us who were part of that acquisition are wondering the same things. Officially, the word is "no changes in what we're doing", but unofficially there's an atmosphere that our new employer places a greater emphasis on commercial profitability and a lesser emphasis on things like "including the community."

Speaking abstractly, there are risks to any open development effort, particularly when the effort is intended to be supportive of a commercial endeavor. The risks range from enabling competitors with early information, to forestalling customer purchases of bits today as customers wait for the new feature that's being developed in the open, to simply diluting the impact that "surprise" delivery of a new product or feature can make.

Certainly there seems to be some evidence that Oracle may have a greater concern about the costs and risks associated with "early disclosure" than Sun did. No matter how passionately one may believe in Open Development, nobody can deny that there are real costs and risks associated with open development.

So the challenge for Oracle is to figure out what the balance is that makes commercial sense.

Ultimately profit is the primary responsibility of any publicly traded company.

The challenge for the community is to figure how to provide commercial justification to Oracle for the open development that the community likes to see.

If you want to retain truly Open Development (which includes public posting of webrevs for stuff developed internally, open ARC reviews, and public design discussions on mailing lists and similar fora) of Solaris and OpenSolaris, this is call out to you.

Have you or your company made a significant Sun purchase? Has open development (as opposed to open source) influenced your decision? How and why? Will open development influence future purchasing decisions? If you can, put a number to the value of open development, and provide that information to your sales reps or post it publicly.

The decision makers need to see value in the practice of open development if they're going to continue to support it.

Again, I'm only talking about open development, not about open source.

As an aside, I don't think statements coming from community contributors without the support of purchasing dollars are likely to carry much weight with Oracle decision makers. I believe that if you look at the contributions from the community-at-large in OpenSolaris, you'll find that the meaningful contributions have been fairly small and generally of little commercial interest, and have always required additional engineering expense from Sun. So "leveraging" the community for development has not, IMO, been a gamble that has yielded dividends -- at least not from the perspective of either Sun or Oracle.

10 comments:

milek said...

Sometimes there is a value of running latest technologies even if they are not "ready" yet. It gives you an advantage but it requires highly skilled people to manage it. And yes often it meant staying with Sun instead of going Linux + some other HW vendor route.

Open development also gives a perception (sometimes justified sometimes not) that a given company or product is being innovative and dynamic. This has been the case with Linux and it has been the case for Open Solaris for some time now. One reason why it is important and I believe profitable in a long term is that people who need latest technologies even if in pre-alpha stage tend to develop on platforms where it is both open source and development is open at least to some degree with an access to actual developers even if informal and with no official commitment. In the long term it means that new products deployments, development etc. is happening on that chosen platform instead of some other one which does generate revenue. That's exactly what happened with Linux.

People tend to deploy what they know and what they think is "trendy" and in a techie world it is a relatively small percentage of people who are early adopters or just playing with latest technologies and spreading the word which gets other people excited.

I only hope Oracle will find that right balance and won't be blinded with short-term savings.

Giovanni said...

The last paragraph seems to suggest that the community is not providing any value to Solaris when that's totally untrue.

Being a community is much more than simply contributing code for "commercial" features.

It's much more about creating an ecosystem that's alive and makes the project relevant. Do you think people would still be talking as much as they are about Solaris if it was closed and constrained only to SPARC ? If that was true today, Solaris would have as much mindshare as AIX or HP-UX... I don't see a community pushing for innovation behind those systems. The community that exists for those OSes is a "customer vs. vendor" one... not really the most exciting there is.

So as much as Oracle is seen as a dollars hungry company, it should probably look at how RedHat is leveraging the Linux codebase and community to create something of value.

I simply love OpenSolaris and work with it daily. But Oracle needs to do a better job at being really opensource than Sun was doing, despite how much Sun liked to think it was open. Just see the closed binaries that still are needed to build the distribution.

I'm optimistic and I think all that openess will come to Solaris/OpenSolaris at the right time but Oracle should take the time to understand mature communities like FreeBSD's that have much better infrastructure despite the lack of huge amounts of dollars.

Solaris/OpenSolaris has a long way to go before being a truly open source project/product. And building a critical mass of people interested in using and contributing to any given project takes time. So let's wait. Like I said, a little optimism isn't bad at times like these.

Garrett D'Amore said...

I think both milek and Giovanni missed my point.

I don't think we're going to stop seeing code drops -- even early access releases -- of Open Solaris or Solaris any time soon -- clearly having access to some of that is useful to folks, and I agree that this helps us appear more community oriented, and there is clearly value to customers and partners in having early access to the operating system. (That said, I don't speak for Oracle, and management may come to different conclusions about even that.)

What I'm talking about is Open Development, where the decisions that lead into such development, including pre-integration open code reviews, open ARC cases (including allowing community members to comment on in-flight cases), and a process by which community members can contribute code to the kernel.

Only a tiny, tiny percentage of the Open Solaris community actually uses those facilities. I could probably count on two or three hands the folks who have participated in the Open Development process meaningfully.

Do you value Open Development? How have you benefited from it?

pjakma said...

Interesting blog. There's one big problem with it though. You're assuming the spectrum of possibilities of development is:

closed development<--->OSOL

Where OSOL == "Sun OpenSolaris style open development".

Because that's all of the spectrum you perceive (in this blog entry at least), then when you perceive that the OSOL model has not delivered commercial benefits you of course must think that this implies any change must result in a swing back towards the closed model. The problem is the above is only a part of the spectrum. It's ignoring the model used used by a big swathe of the Unix free software world:

closed<---->OSOL<---->free *nix OSes

I.e. highly distributed projects in terms of people and control. (There's a further dimension in terms of how "sticky" the licence is - but lets ignore that for now). It is these projects which seem to have been the most successful in building sufficiently deep-rooted communities around themselves to allow them to grow and be healthy.

If you look at it this way it's clear that when asking "how can we better serve the commercial interests of OpenSolaris' rights holders" that one possibility you need to consider is "Do we need to open up *more*?".

If you want to see what the benefit is of open development to Solaris, you just need to look at the trends in *nix OSes. The ones at the left-hand side of the scale are all pretty much dead, except for a small amount of sustaining engineering still carried out on 1 or 2 of those. The ones that have survived and grown are all over to the right.

So here's the commercial benefit: You get to survive as a viable development Unix. Indeed, it is not sufficient to remain as OpenSolaris is today to get to survive, you have to go on and go *further* toward the distributed-sense-of-ownership (in various senses) side. You have to integrate /more/ with the world that's already there, not less. (Yes, Sun once could take it for granted that much of that world developed on Solaris - no longer).

The problem at the moment is that OpenSolaris Development == Sun Open Development pretty much. If the former had development greater than the latter you could indeed return the latter to closed. However, as it stands it seems you'd kill off much of the former, which doesn't help.

Also, wrt outside contributions - it isn't easy, is it? That's another blog entry perhaps..

Garrett D'Amore said...

pjakma:

I hear what you're saying, but I think there are some counter examples.

Solaris and OpenSolaris have grown. Solaris has mostly closed development. I don't think this has actually hurt it.

Conversely, NetBSD has very open development. Yet it has only infinitesimal market share.

Linux may owe some of its market share to being open development, but I think a lot more of it is associated with the fact that it is open *source*.

In fact, I really don't think we have a statistically significant number of operating systems that are open source and closed development to really draw any kind of meaningful conclusions about causal relationships.

One thing I do not see happening is Oracle (or any other business entity) being so totally open about the development that they would put their own product development at risk. So I don't think you'll see it the process becoming significantly *more* open than it is now. Of course, we might yet be surprised.

pjakma said...

I don't know about r^2, but out of the hundred or more proprietary *nixes, the only general-purpose ones that still see development are free.

I think the BSDs v Linux is a really good example. The BSDs have their stable and healthy niche, but the licence means contributors aren't very secure in their rights to future derivative contribution - though all contributors are at least equally insecure. Contributors to a copyleft system can feel secure they stand as peers with all other contributors, including future. OSol stands half way between them, nominally copyleft but with one contributor (and founder, sponsor) privileged, in various ways.

I really think it'd be a shame if Sun^WOracle decided "well, that open development stuff didnt work" and decided that open-source alone was sufficient.

However, "Open Development" is just an initial step along the way to "distributed development" (distributed in the responsibility sense, which I argued above seems to require some sense of distributed ownership), and it's "distributed development" which makes the free *nixes successful I think - "open source" is just a requirement for that, not sufficient. If Sun^WOracle never intends to go that far, can never bear letting go, then indeed there is no point in that stepping stone of "open development".

I think that's completely the wrong way the go if you want to still be able to make a living from Solaris in 10 years time (other than legacy support stuff)... but that's my opinion. :(

Garrett D'Amore said...

pjakma, I have a very different opinion of the reason for the Linux and BSD. I really think you're drawing the wrong conclusions, and the answers really had a lot more to do with the early heritage of the systems. (Linux was generally usable to a larger audience earlier than the BSDs were. I remember -- I didn't have a spare disk to run 386BSD on, but I could run Linux from a separate partition. That made it an easy choice back in 1991 or whatever it was.)

Conversely, look at Hurd. Fully GPL, and yet still not usable, and have had a hard time finding any developers. Why? Yet, numerous BSD derivatives have had more luck (dragonfly BSD, etc.)

I think you're drinking too much of RMS' GPL kool-aid and applying coincidental data to draw false conclusions. But that's just *my* opinion.

Garrett D'Amore said...

One more thought: some other non-free UNIXen see development. Solaris 10.
MacOS X. AIX. HP-UX. Just because they aren't the rapidly evolving so bleeding edge you need a blood infusion once a day that Linux is, does not mean that people are not working on them professionally.

Clearly people are -- MacOS X and Solaris 10 both have significant development efforts behind them. Not sure about AIX and HP-UX, but I think they still have development teams in spite of their ever shrinking market share.

gtirloni said...

This discussion has nothing to do with licenses. Open source alone doesn't make any project successful. It's about creating a community, getting enough people interested, driving innovation and being relevant.

Development is sure happening in HP-UX and AIX but if you compare the amount of contributions, code, new features to Linux/BSD... their are laughable.

How much market share does Mac OS X have in the server space ? I'm tempted to say that as much as HP-UX and AIX if much.

On the other hand you don't have to look for too long to find a Linux or BSD box.

Solaris/OpenSolaris is competing with Linux/BSD not HP-UX/AIX/MacOSX... if Solaris uses other proprietary NIXes for comparison, it'll eat dust from Linux/BSD and will be a niche OS. Probably will "die" (in relative terms) as is HP-UX and AIX.

My advice is that people take the time to read "Innovation Happens Elsewhere by Ron Goldman and Richard Gabriel. Ron, by the way, is/was a researcher at Sun who "has been helping groups at Sun Microsystems understand open source and advising them on how to build successful communities aroudn their open-source projects"

I hope Oracle understands it and push OpenSolaris open development forward as it should be.

pjakma said...

Hi,

Yes I accept a system that is more useable will, all other things being equal, get more interest than other systems. Yes, the BSDs had a legal problem that handicapped adoption in the early days.

You need a whole bunch of factors together though. Not saying the licence and/or the ownership is the *whole* thing, but it's a significant part. E.g. all else being equal between 2 projects, then I would maintain that more people would choose to contribute to a project whose licence and ownership arrangements tried to maintain parity between its developers (including future ones who derive), than a project that did not. That seems like a pretty safe statement to make to me, based on human nature.

I think you missed my point about the development that's still being done on other, proprietary Unixes. I know there are still people working on them, but it's sustaining engineering, being done to milk the remaining, shrinking customer base. Profitable, most definitely but software in that mode surely has a finite future? Even VMS eventually ran dry for DEC^WCompaq.

OS-X is an interesting one. I think it's debatable at best whether Apple are doing Unix engineering. Nearly all their engineering effort goes into a proprietary user-space that shares pretty much nothing with other systems. Do they do any significant kernel or Unix user-space work? There's one or 2 little projects perhaps, and the odd kernel extension and drivers (C++ drivers, yay!), but it seems very little. It's similar to Google and Android - they're building their own semi-proprietary, utterly non-Unix user-space on a *nix kernel and v minimal bootstrap *nix userspace.

I'm not sure it's helpful to describe me as an RMS kool-aid drinker. :)

Re co-incidental data, what other data is there? *All* the data points to the fact that, MS Windows excepted, OSes now are commodities, and that the *world outside* has opted to go with community-owned (to whatever degree) systems for pretty much all new development (including Apple, Google), surely? IMHO if Oracle reverse course and close OSOL development (rather than moving it further toward a community of peers wrt ownership), then I fear Solaris will be the next point in that definitive data-set you seek.

Basically, if you're in the OS business, where's the commercial future? It's surely clear now that there's no money in licensing RTU for an OS, cause OSes are now commodities (this applies perhaps even to Windows now). The money now is all in support, surely? I.e. you make money from your expertise in fixing problems for people.

In order to do that, you need people to be using software you have expertise in. And to get people to use your OS software, you need a community, and to get that people need to feel they have a stake in things, etc.

This sounds a bit pony-tailed, I know. IMO there's a good chance that, whatever his failings, he was right at least in that regard.

But hey :)