By jimgris on Jul 11, 2008
Some previous blog posts on this issue are here and here.
Here are the
slides from my talk at the OpenSolaris
Developer Conference in Prague
earlier today. From an information perspective, the slides are pretty
much useless. They are just full bleed images with almost no content
whatsoever. I talked about community building from a governance
perspective and made up much of the specifics as I spoke. I had a
specific outline in mind, of course, but I just tried to tell some
stories about what I've experienced on the project -- including the
things we've done right, some of the things we've done wrong, and where
I think we're going. I was more assertive about my own opinions than
I've ever been, which was intentional, so I hope it came across ok. I
was a bit long winded (as I am in writing), so I think I have to
improve that. I'm the only non-technical speaker at the entire
conference, though, so I figured I'd try something new with the full
frame images with very few words. I think I'll continue this technique
for a while because I have a lot of photos I can talk about and that
offers a remarkable amount of flexibility to improvise during a talk.
But this was ultimately a discussion about getting involved in the OpenSolaris project -- either in governance itself or in any number of roles that will help you earn Membership and Core Contributor status in the community. In many ways, governance is just another form of community development, and there are many social, strategic, and technical factors involved. The governmental systems on OpenSolaris are still evolving, though, and some of the issues have been controversial. This is normal. It's simply the evolution of a complex and unique engineering project, one in which a multi-billion dollar corporation is opening its core product and is building a global community while still maintaining critical business operations.
There have been three clearly definable phases of governance on the OpenSolaris project:
(1) Sun's role in creating the CAB from within the Pilot Program, the development of (and confusion about) the Charter and Constitution, the redefinition of the CAB to OGB and the expansion of its mandate and extension of its term, and the ratification of the Constitution and election of the first OGB. This period of time ranges from late 2004 to March 2007.
(2) The first elected OGB begins normal operations with a Constitution that doesn't necessarily reflect reality, but many people on the board and in the community make a good faith attempt to make things work. The OGB controls no resources and key parts of the project are still internal to Sun. A community reorganization is specified and attempted but stalls due to disagreements and inflexible infrastructure issues. Trademark disputes over a new Sun distro lead to more arguments about the project's lack of openness in some areas. This second phase was March 2007 to March 2008.
(3) The second OGB takes office after a significant community argument with Sun. Most members ran on a platform to reform the governance and reorganize the community for two key reasons: the OpenSolaris community and Sun need to be in sync about the project, and the structure of the OpenSolaris community needs to reflect the reality of how the community actually functions. The re-org can now take place because the OpenSolaris engineering infrastructure team has resources to update the website, move the gates external, and finish the work necessary to make OpenSolaris an open development project -- which was the goal all along. The reorganization is not fully specified yet, and the discussion moves slowly. Sun's executive engineering management engages with the OGB as well as the community. This current phase started from March 2008.
Currently the OpenSolaris community is structured around Members, Community Groups, and Projects. Community Groups sponsor Projects and grant Membership status to Core Contributors. There are some odd groupings, as well, such as user groups, which we have stuffed into Projects due to site constraints. Also, we have many Community Groups that were crafted back in the Pilot Program that really ought to be Projects today or consolidated into other Community Groups. And Sun has yet another grouping called Consolidations, which doesn't fit the Constitution. The website doesn't reflect the Constitution, too, since the site per-dated the Constitution and its evolution stalled due to resource constraints. So, the OGB's community reorganization has to address all of these issues.
To begin the process of discussing the issue, the OGB recently proposed interpreting the term Community Group to mean a class of groupings in the community, not a group itself. In other words, Projects, Consolidations, Special Interest Groups, and User Groups could potentially make up the new groupings and they could have relationships with each other in a web-like structure instead of the current hierarchical structure. To establish some consistently across the community under this proposed system, a new OGB committee would be formed to create standards for granting Membership status.
The reorganization idea has already generated several counter proposals, but the general concept is moving in the direction of offering more flexibility for different types of groups and crafting a system that reflects how OpenSolaris developers work rather than imposing an artificial structure on top. The reorganization and the infrastructure work necessary to support the changes will probably take a year, so there is plenty of time to get involved and contribute. The site can not be changed rapidly, and neither can a governance decision. The site's current monolithic architecture is being updated in stages to a new modular architecture, but it still must support current operations. And the community will have to participate in and finally approve any new governance structure.
The OpenSolaris governance process should define how the community operates. Therefore, it's at the core of how people participate in the project. It should not get in the way of participation, but it should offer opportunities for many people to contribute in many ways.
Update: Here is the video of my session:
"The project is so tied up in its own bowels, trying to draft structures for its own operation, that the only thing it has left to chance is probably the order in which members of the governing board break wind - and in which minor key they do so. I wouldn't be surprised if even that was specified in an amendment some years down the line."Sam, I have to admit, that's a great quote. You know pretty much nothing about OpenSolaris (just ask Patrick), but that's a very funny quote indeed. I'm saving it.
I'll still be doing project management and building OpenSolaris communities globally, of course. But I'm going to narrow my focus so I can get closer to some engineering projects that not only generate contributions but also help lead to revenue for Sun. And I'll still be interacting with developers and users, but I want to get involved with other open source and standards communities and more customers, partners, universities, and governments as well. I'm already getting more requests to brief customers about OpenSolaris, so I want to expand that it if possible. And although my focus has always been global, I'll surely be spending more time in China and India and other parts of Asia since those markets are growing rapidly and since I live in the neighborhood. I'll also be exploring some new opportunities in Eastern and Western Europe this upcoming year.
Here's a rough split of time and projects:
There's a fair amount of crossover there, but that's ok since it gives me the flexibility to mix and match projects under some main categories that make sense if I absolutely had to quantify them. What changes significantly, however, is the project mix and time split. Governance, website, and globalization are all new and will take up most of my time. But there will be many opportunities for community development in APAC with user groups, conferences, and engineering projects. And although all of this involves advocacy to one degree or another, I'll now be focusing those communications efforts specifically on the projects I'm driving rather than anything I can get my hands on across the entire OpenSolaris community. That's a critical point. That also will be a big change as I specifically let go of some stuff in order to take on new stuff. There is no other way to grow, in my opinion, unless you have a solid core competency but also aggressively reach out to grab new things. So I intend to build from that perspective.
And finally, I'm now getting closer to the globalization engineering organization at Sun with a
dotted line report to Mimi Hills, the director of g11n who manages
software development operations at many sites around the world. I'll
be adding some
OpenSolaris-related g11n engineering projects to the mix of stuff I do
for Bonnie Corwin's
OpenSolaris engineering team. First up with g11n will be to evolve the
language/country portals on opensolaris.org so we can properly
implement the localization of content on the site. This is important as
we build the OpenSolaris community around the world. If you build
globally, you are actually building across languages and cultures, and
that's very different from building within a single language and
I have a few slide decks I'm working currently. It's basically stuff I
deliver myself from time to time or give to others as background to
help them build their own OpenSolaris presentations. I have one deck
that tells the OpenSolaris story (as I've lived it, basically) and one
on how to contribute to OpenSolaris. And I'm in the early phases of
creating one on community building techniques and also one on
governance (since I'll be living that life for the next year). That's
too many presentations to maintain. I think I'm going to fold the
content of contributing and community building back into the main story
deck, and I'm also going to put back much of the history I took out in
recent drafts. Many people gave me advice to remove the history since
it was too long and boring. But I find that some of the history of the
project is not well understood or has been forgotten or is being misinterpreted, which is especially the case as we rapidly expand
into new areas. This is natural as the project grows and more people
become involved (which is great). But I think I have an interesting
perspective on this issue since I've been around since the beginning.
Doesn't mean I'm right in all cases, but it just means that I have some
history to share that can be considered along with everyone else's
Many people think that we are abruptly changing the project. Well, in some ways, we are, sure, but if you take a high level view and longer term view we are not. We're just growing. And we are growing a lot faster now. A couple of years ago, many people complained that Sun was not involved enough and didn't publicize OpenSolaris enough, and I think that was true to a certain extent. But now others are complaining that Sun has made changes without involving the community enough, and that, too, is true to a certain degree as well. Still others (myself included) have complained that too many people have been complaining too much and not working and contributing enough! And around we all went. :) But all projects snake around like rivers from time to time as people try new things and learn (and make mistakes and learn again). In fact, when I look back on our early plans from four years ago, I see that we have largely achieved our initial goals -- we got some stuff spot on, we ended up doing other things differently, we achieved other things by doing very little other than opening the code (that was planned too), and we are still working on a bunch of stuff, and we missed some stuff as well. And, of course, some things are just late. I think I'll dig out some of those early slides and see if I can get specific in subsequent posts.
Anyway, this mix of events has led to confusion around where we are and where we are going. That's understandable. Our communication has been spotty at best from a macro project perspective. As a result, some people think we built a community for kernel developers only and that our site reflects that. Some think the community is primarily administrators at this point. Some think that the future will mostly be for users. And still others think we set out to build something only to end up with something else. Well, from my perspective, we had always planned to build a multi-level community that included a wide variety of people -- system administrators, hackers, individual developers, corporate developers, students, professors, writers, users, artists, kernel developers, application developers, driver developers, distribution and appliance builders, customers/partners, governments, etc. I think gamers were even on that original list, too. The list was too big, obviously. But although the intention to build a diverse community has always been there, we've had to deal with many natural constraints and dependencies along the way, so we couldn't necessarily engage all these levels of the community simultaneously. That's why different people see the community differently. It is different depending on when you view it and how you engage with it. And it will be different next year as well. This is normal.
However, our initial plans were clear with this one point -- the opening of Solaris (code, infrastructure, process, people) and the building of a global developer and user community would have to be a multi-phase, multi-year program. There was no other way given the circumstances, and that should not surprise anyone who has any awareness of the scale of this project. Heck, it took two years just to release most of the code, but during that time we've been out there building a rather diverse community right here on opensolaris.org (although certainly the entire community is not represented only on opensolaris.org and there is room for many sites around the world). And people have been contributing to the project in a variety of ways all along, which is very cool. Although I realize that contributing to OpenSolaris has not necessarily been easy, we still have to recognize that many contributions are coming in from many contributors. Also, new projects like Indiana will significantly increase the number and scope of contributions, which will increase the size of the community and that's very exciting. So, in my mind the OpenSolaris community already has much of the diversity we had hoped would develop. The seeds are clearly there, anyway. I'd say it's probably accurate to describe us as technical community right now, but I don't think we are only kernel developers (or any other individual segment), and I don't think we set out to build something only to find ourselves with something else. I think we set out to build something, and we are still building. It's that simple.
Now, none of this excuses our mistakes in implementing our communicating. We've made those mistakes (rather publicly, I might add) and hopefully we'll learn and get better. But history is important and interesting, so I hope to put some of this in perspective. That's why I'm going to put some of the history back in my main presentation. I'm not at all finished with this. Just starting. Great fun.
Earlier this evening Stephen Hahn posted the results of the OpenSolaris elections. I'm glad both questions passed. And congratulations to the new board members! I'm happy to have been elected along with those guys, too, and I'm thankful for the vote of confidence from the OpenSolaris community. I'll treat that confidence with the utmost respect. Special thanks to Stephen for working the voting system and also to the outgoing OGB for their efforts this entire year.
It's sad that you get a "chuckle" about some of this stuff. Many people here are trying hard to make the OpenSolaris project work (under difficult circumstances sometimes), and they don't deserve your sarcasm.
The request-sponsor program you laugh at was never intended to scale as a general integration program. Everyone involved in OpenSolaris knows that. It was always designed as a temporary solution, but since we are clearly behind in moving the main ON gate and some of the integration tools outside, the request-sponsor program has had to fill the void. And yes, it's quite backed up. Everyone knows that, too. Emily's quote you cite is somewhat misleading, though, because it assumes that the Linux and OpenSolaris processes are the same (or at least similar enough to compare). They are not. Linux is an open development community that has been open for a very long time. It started small and grew large in the open over many years. OpenSolaris, however, is still very much emerging and trying to open from the inside of a company. We started big (in terms of size of code base and number of engineers and processes, etc), and are trying to open in stages in a responsible way since Solaris is one of the core products of the company. Also, it has proved to be a complex engineering, legal, business, customer, marketing, and cultural task of moving such a large operation outside and teasing apart the development process from the productization process while we simultaneously build, ship, and support a product. Linux never had to do what we are doing, so the issues are extremely different. A better way to look at it would be to compare the opening of Solaris with, say, the (potential) opening of HP-UX and/or AIX if those systems are ever opened. I can only imagine that the issues would be pretty similar given the size and age of those code bases, the complexity of their development methodologies, and how important they are to their respective companies. But regardless, we are certainly far behind where we'd like to be at this point. If you'd like to follow the SCM migration project, you can check in with one of my colleagues here: http://blogs.sun.com/kupfer/entry/scm_migration_the_big_picture. Mike has some pointers in that blog that will take you to the project pages on opensolaris.org.
Also please keep in mind that the request-sponsor program is only one part of the OpenSolaris project, and it's only one way people are contributing (and it's only about code, whereas people contribute in non-code ways as well). And it largely represents integrations to the ON consolidation, not all other consolidations and development projects on the site. If you wanted to really compare OpenSolaris and Linux from an engineering perspective in terms of the flow of code being integrated into the kernel, you'd have to look inside Sun for that since the ON consolidation gate is not opened yet. Then the data points would be quite different, and the "teeth brushing" analogy may not hold up so well. But one really can't compare the two systems that way, of course, since our development process are still largely behind the firewall. That will change over time, though. Currently, we are more of an open source project, and we are slowly (very slowly) moving to an open development project as well. In fact, some consolidation gates are already outside, and there are already external contributors.
And there is no need to be "irked" about the user group example you cite, either. I left a comment on Emily's blog about this. There are no NDAs on OpenSolaris. The issue there was the building security procedures since the meeting was at a Sun site. Sometimes it's cumbersome holding community meetings at corporate facilities for just this reason. Many groups that are run by Sun employees deal with this ok now, but others choose other facilities, and other groups are led by non-Sun employees at universities or other companies. It's not a big deal, and it in no way reflects poorly on those people involved. If you feel we are "messed up" in our approach to building a community and feel you can help, we'd be more than happy for you to get involved. We are still learning and trying new things all the time. However, uninformed opinions expressed from the outside without any direct participation have relatively little value. So, I encourage you to subscribe to advocacy-discuss here http://mail.opensolaris.org/mailman/listinfo/advocacy-discuss since that is the Community Group that is home to the OpenSolaris User Groups. That's a good place to start since we are kicking around some ideas for UG community-building in two recent threads here http://opensolaris.org/jive/thread.jspa?threadID=51705&tstart=0 and here http://opensolaris.org/jive/thread.jspa?threadID=50069&tstart=0 so you may want to participate in those discussions.
Finally, when you say that you should have applied for a job at Sun to fix this "mess" that, too, is hurtful to the people working on the project, most of who are honorable people just trying to do a good job. We are a small and young community and we are doing our best given the circumstances in which we find ourselves. All projects in all industries in all regions experience rough patches in their life cycle. That is clearly the case with us in some areas. However, there is a great deal that is going extremely well on OpenSolaris, too, and we can't lost sight of that. That's what I keep telling people in the community, and many people agree and are willing to do the work necessary to improve things. And in terms of a job, you'd have to check with Sun HR on that. But you don't need a job at Sun to participate in OpenSolaris, though. Just jump in. But if you think you can "fix it myself" I'd humbly suggest that you will have to talk to many thousands of developers, many of who are Sun's top engineers, to earn consensus for your ideas. OpenSolaris has a distributed leadership model, so no one individual gets to run things. We certainly have a long way to go, though, so please feel free to contribute. All the lists are here http://mail.opensolaris.org/mailman/listinfo and that's the fastest way to talk directly with the kernel engineers.
No bookmarks in folder