On Wed, Jan 23, 2008 at 08:04:49PM -0800, Alan Coopersmith wrote: > As long as we're dumping the churn from our brains, I'd been > thinking that there's really three different types of thing > we've currently lumped into the Community Group model:
Here's mine as well. We all seem to have similar thoughts but there are some important differences. It's probably almost time to propose what surely will be the mother of all constitutional amendments. The conclusion I've reached is that the structure we have makes little sense for us. The Apache organisation consists of standalone efforts that they call projects but are really about products: in essence, shrink-wrapped software. Each product is governed by a body on which our definition of CG is based. But we're not trying to deliver a collection of independent shrink-wrapped products (or haven't tried to do so in the past), so we struggle to find reasonable charters for our CGs. SMF is not a shrink-wrapped product; Tomcat is. Device drivers do not collectively form a shrink-wrapped product; SpamAssassin does. And so on. If we were to attempt to make the Apache model actually work for us, the Community Groups we would form (all of them) might be: OpenSolaris/Indiana MarTux SchilliX Belenix (if not subsumed by OpenSolaris/Indiana) This would be fine as far as it goes; each CG would own a release schedule, a repository, etc. Governing wouldn't be too hard, boundaries would be clear, and so on. It would all make sense. The only problem is that it would destroy most of the value we offer the open source universe. In such a setup, there is no concept of ownership of the underlying code base. Either every CG has its own copy/fork that they own exclusively or they all somehow try to share some common thing. Forking off in a dozen directions seems obviously wrong. Sharing the common thing makes sense, but there is no structure in place to govern the manner in which that resource (hopefully by now someone recognises my 'Consix' from another thread) may be accessed. And so we go round and round trying to make the square peg (shared development processes for a /single highly integrated code base/) fit into the round hole (a government structured to help people deliver independent products). Too often during the creation of the constitution we have today I heard "that's not a governance issue." Development process *is* a governance issue for us. Maybe it's not for Apache, but we're not Apache. It's of paramount importance that we create an environment in which people can continue to develop a tightly-integrated, architecturally consistent code base representing the foundations of an operating platform. Other people want to see other things happen with and around that foundation, and that's good too. Some of those things might well deviate from the kind of consistency and integration we think we value. That's ok, too - the license allows people to take arbitrary forks, remember, so whether or not you like a particular one doesn't mean we can or should try to prevent them from existing. The key for us is to keep Consix healthy; if it dies because we can't find good ways to represent the development processes I think most of us believe are needed, all the value here dies with it. How Consix is developed is one problem. How a broader meta-community of people interested in building products on top of it operates is another problem. It's time to accept that these are two completely different problems with completely different solutions. The ARC, DTrace, ON, and Distributions are not all instances of some common class called "Community Group." A moment's thought should make that obvious. The ARC is just the ARC: love it, hate it, or wish it were burning in hell, it's an integral part of the way we create excellent software. ON is a Consolidation, a sort of provincial government that manages a resource under a set of broadly-defined shared rules. DTrace is a SIG, a collection of people in various roles interested in advancing a specific technology. And what Mr. Walker has proposed is not a single Community Group but in reality the OpenSolaris Community as it was originally defined: a collection of independent product teams each reaponsible for its own destiny. Reworking the definition of Project as Mr. Rockwood suggests is fine as far as that goes. Projects are critically important; they're where all the really important work is done. In the organisational structure we have, they're owned by something (a CG, in effect a product team). But a Consix project is owned by no one; it's a voluntary association working to solve a problem. It doesn't need anyone's permission to *exist*, only to muck with shared resources (Consolidations). That Project Teams will be more successful if they start by talking with the relevant SIGs led to the idea that CGs should have to sponsor Projects from the beginning. That makes sense if you think the SIGs are CGs that can "own" a Project. But they really aren't. SIGs are just what their name implies. They provide valuable insight and a deep pool of experience, and the people responsible for the Consolidations will surely want to see that the right people from the SIGs were involved before allowing a Project to be integrated. But the SIGs do not themselves own Projects; at most, they may sponsor or endorse them, an advisory attribute. The ARC provides a different kind of technical expertise, and the Consolidation managers require its input as well in order to make the right choices. You can call these things whatever you want. Call them all CGs, call them Fred, Mary, and Bob. But the way they work together to add value to Consix looks NOTHING like the way the OpenSolaris Constitution says CGs interact with one another. That's why we've made no progress on any of these issues, and why this proposal, like so many before it, just rearranges the deck chairs. There are a lot of things in the constitution that I find confusing or just outright unnecessary. Simplification and clarification are welcome. And there are processes that could be put in place to make things easier for people operating in ways that the constitution anticipated. But unfortunately, in order to make any real progress, a whole boatload of stuff needs to be added to it. As it is today, it describes only part the activities that comprise this Community (and not those nearest its core purpose: making software!). The other half continue to operate under a set of rules that are by no means unwritten (the Sun SDF is a serious tome) but widely viewed as illegitimate because they're not found anywhere in "our" collective body of law. Directly incorporating that document verbatim is absurd: it makes a lot of assumptions that don't apply to open development, and the result would be unwieldy and unreadable. Instead, I'd like to see something like http://www.opensolaris.org/os/community/on/os_dev_process/ become a part of our "governance" structure. Something like Mr. Coopersmith's W-team replacement is probably needed too. But don't bother looking for clever ways to represent this stuff under the structures we have now. There are none. Mr. Plocher's thoughts seem to run in this same vein, but I'm not convinced yet that we're on quite the same page. Simply splitting the OpenSolaris Community and the organisation of a web site doesn't really solve the problem. Nor do I think it makes any sense to say that the other three activities he identified necessarily fit into separate CGs under the existing rules. It's still possible to have a single set of rules and a single umbrella organisation covering a multitude of different activities. The rules that aren't applicable to a particular activity may be ignored by the people engaged in it. > Consolidations though seem to be what the Community Group model in the > constitution was designed for, and that makes sense, since they're the > closest mapping to Projects in the Apache model. I don't think this is true. Consolidations are not shrink-wrapped software; they're parts of each of a collection of things, each of which is a greater whole. The manner in which they're combined and what else is added or taken out are how distributors add value for their respective markets. Those activities seem to make sense for CGs and/or independent corporations (depending on whether they are focused on commercial gain); they are producing shrink-wrapped software. Your ideas around "service groups" are interesting. I'm not sure it's worth generalising those out. The ARC and Advocacy do indeed have a couple of common attributes, but are those the attributes that are operationally relevant? That is, what commonalities do you see in how those two organisations should be represented, how they should be governed internally, or how they should be permitted/encouraged to interact with other bodies? -- Keith M Wesolowski "Sir, we're surrounded!" Fishworks "Excellent; we can attack in any direction!"