Governance Working Group

Hey again again!

I set up the next meeting for the governance working group on Friday the 29th, at 22:30 India Standard Time/19:00 Central European Standard Time/17:00 UTC (Coordinated Universal Time)/10:00 Pacific Daylight Time.
This will take place in the B2G Vidyo room, on the B2G OS telegram group or #fxos IRC channel on irc.mozilla.org.
There is a pad here for agenda and questions.

I decided on this time because we need to get it this started, if you want to participate but the time really doesn’t work for you, please let us know or contact me directly. The following meeting time will be decide by a poll.

Cheers!

Hello!

I’d like to ask you to think of ways to organize governance in an Free Software project such as … B2G OS. Explain them here, drop a couple links, or write it on the etherpad.

The ideas I have for now are :

  • Several working groups (we started with code, infra., documentation, communication), with at least one person supervising each group.
  • For the code, a system of module owners, as documented here.
  • For the governance working group: a “council” of (but not limited to) working groups supervisors, to make the necessary decisions for the life of the project.

Comments and feedback welcome.
And don’t forget the Friday meeting! :slight_smile:

3 Likes

Looks good to me. Organising and structuring the effort is the single most important thing we have to to. How are the working groups going to be formed?

I agree.


Some ideas here:

  • As B2GOS is a community and open project, I think that the democratic dimension is obvious. But I don’t think a pure horizontal system will be efficient (except with a really strong structure and engagement of everyone - which is not easy).
    So we still need a kind of leading group to guide the project - and the members can be choose in a democratic way (which one ? Please share your ideas).
    But I see 2 conditions for this system:
  1. Every decision should be public - this means contributors can access to it freely - explained and documented (that’s almost the same). If people are choose by the community, they are here to “serve” it.
  2. Everyone should be theoretically able to be part of the group. That also means that…
  • … One super important point IMHO, it that a kind of “council” or whatever we choose as a leading group, should not include only developers.
    As I wrote in the manifesto draft, B2GOS is not a developer-driven project, it’s a community-driven project.
    We should include non-dev users, and maybe non-tech users, in this leading group.

  • Again, it’s an open project: the decisions should be based on arguments, facts, and not personal preferences / wishes / feelings. The decision process should be more oriented as a debate, where everyone justify his/her idea.



Here is a kind of general proposal of a “council” leading the community - this means making sure the project respect its values and vision (as defined in its manifesto for instance), coordinating efforts, making strategic orientation decisions (or at least being able to make a final choice in a debate) and give a kind of “common voice” for the project.

This group should include all the module owners - they have this technical knowledge of how things are working, what can be done, what is too difficult/impossible - or at least all “big” modules, like infrastructure, communication, development (and the representative of this big module should consult others module owner to know what’s the status of this whole big module).
But it should also include representatives of the community that are not developers. Classic user should be able to take part of it. Those non-dev’ users can be technical users able to build and flash B2GOS, as well as non-tech contributors like people doing communication, and “basic” user.
In that way, we can ensure a wide range of point of view. The dev’ one, the technical contributor one, the communication people one, the user one. IMHO, this variety will be a strength.
As it can be difficult to choose them, maybe we can ask for volunteers, and change in a rolling base.

Let’s imagine the “core” of this council, the people able to vote. The numbers are a first draft, just an example:
10 people:

  • 5 (big) modules owners, in this general fields: gaia/chrome/apps, gecko, gonk, devices support/porting, infrastructure
  • 1 from the documentation
  • 2 from the communication part > External communication + internal (communication inside of the community)
  • 1 technical user (able to build and flash for instance) > for the “power user”/tester point of view
  • 1 classical user > (s)he should talk to other users to have the “naive” point of view (with a few understanding of the technical part), and help us to understand the users needs

The meeting of this group should be recorded, or at least should publish notes - as we do right know. Everyone should be able to take part of

As said before, decisions must be took after debates - but I think sometimes vote will be the only way to validate a decision.

Any toughs ? :slight_smile:
I’m not sure to be really clear, I might have forgotten something, or made a mistake - don’t hesitate to say it.



Another idea here, for the manifesto proposal, I think the remarks, proposals, questions (…) about it have to be open and public as we’re doing it right now.
But the final version, which will never receive a 100% level of agreement (because you can always change this last coma, or choose another point name, …) should be validated/approved by this group.
That means, everyone can participate and define it (not only the leading group), but this group, with a wide overview of the project, will validate the final version.

1 Like

Could we try a Delegative Democracy?
https://en.wikipedia.org/wiki/Delegative_democracy
https://en.wikipedia.org/wiki/Net_Party#DemocracyOS
https://agoravoting.com/

1 Like

I don’t have a global vision about this, but some random thought.

I think the community should be defined as open to everyone, at the condition of following the code of conduct. This means that the community will have a tool to help shape a friendly and constructive atmosphere and to protect itself from disruptive individuals. Moreover, of course, this also means that we’d need a code of conduct. I would recommend adopting an already existing, well time-tested one. (The first coming to my mind is Rust’s CoC…)

We have to consider that this will be an open community composed by volunteers, so it is fundamental the structure of the community incentivates working for it, especially on the development side. First of all, no one is happy to be told how to do their work, especially since this work is offered for free. So I think devs should have a lot of weight and the final word on how their work has to be done. This freedom should have a limit though: working groups’ owners may have the task to decide when to merge code.

Working groups are made by selected people with expertise on the topic and are highly committed, so I think most technical decisions should be taken inside the group (maybe by voting, maybe something else) including who’s going to be owners.

There’s also need for a global vision on which direction the project should take. I have no particular suggestions in this regard at the moment, so let’s just say there’s an “high council” somehow.

The community at large, including non-devs, should have a role too, of course. Its function may be to make a choice when facing more than one proposal on a general topic. I’ll make an example: we need a calculator app. A dev makes it (and the group/module owner is satisfied with the result). That’s all: the dev decided how to implement the app. Let’s say instead that two devs have different proposals on how to make the calculator app. This is the moment when the community votes which proposal (and possibly dev, on the base of previous contribution) prefers.

To sum up, this way devs will have much weight in the implementation, group owners will garantee for the quality and integrity of the code, and the community still have a voice when it is actually possible to choose (rather than voting on fancy but unrealistic topics).

Which choices are responsibility of the working group and which are suitable for the community at large may be high council’s concern, together with maintaining the general vision of the project, cohordinating the groups, listen to the community, solve serious disputes, etc…

Well, it’s not an easy topic. You still have some basic rules to follow when you code for an open project (or at least when you’re not alone), and someone else can have a good reason to say that this code should be better than this one.
I’m more for a discussion, when everyone add arguments to explain why this will work and why this will not.
It’s also a matter of mentality, we have to remind that this is an open project, where we discuss and debate kindly, with no critics to the person itself.

Right, even if it has to be open, documented, based or arguments, and I think everyone should be able to take part of the discussions (not the final vote, but the discussion)

A global council can tackle that IMHO. It will have a wide field of view about the project, and represent also a wide range of people.

Well, making two apps could be a waste of time (I mean, it’s useful to compare, but it needs more energy).
In that case, I think it’s better to define first what are the needs (= features of the apps), make proposals (written/graphical), choose one or two, do a proof-of-concept, validate one and finish it. This will need less time than making 2 apps, but still will allow more “control” of the future apps features/design.

Reminder, this meeting happen today ! :slightly_smiling:
And it might be one of the most important (well, governance affect all of us ;)), please join it if you can ! :slight_smile:

If you have any proposals/ideas about governance, it can be a good solution to add them here before the meeting (especially for the longer ones), to get it clear and easy to follow for everyone.

Interesting idea, I’m not sure about how we can apply it to this project.
Could you elaborate on this subject ?

I read all the ideas shared on this post and I find them all interesting, but I would add some spare thoughts:

  • it is also important to determine how much time (6 months, 1 year, 2 year?) people voted in that ideal Council remain in charge, just to understand how long last their power;

  • should we establish causes of decadence from those roles? probably it would be very important to predetermine conflict of interests (for example, working for a company developing or closed source software) situations!

  • moreover, we shouldn’t meet again the same communication problems Mozilla had with Firefox Os and it’s governance. That’s the main problem we had with Firefox Os and, at least in my opinion, it’s crucial to solve it before it become a real issue.

Public documents, meetings, and transparency are not enough.

We should all be aware of where the project is going, specially regarding used technologies, agreements with others groups/companies/foundations etc. and, more in general, all key choices.

How can we do that?

Is there any way to leave every day decisions made by the “Council”, still giving people involved in the project the possibility to raise up any doubt or proposal to the “Council” (and, why not, to all the Community) when it is necessary to discuss a key question?

I’m not expert in community governance, but as a jurist, i suggest to arrange three remedial actions:

  1. give the possibility to a group of council members (at least 3 or 5 on 10, if we assume Lapi’s numbers as real) to submit any question or issue to the community, using a referendum-like consultation;

  2. give the same power directly to the a representative number of people out of the board (for example, the 20% or 30% of the B2G OS active members). The big problem here, is how determine and count real contributors to the community;
    In those hypothesis (nn. 1 and 2) the community will has to be binding for the Council.

  3. last but not least, we should consider a more general community power (as always, at least a representative percentage, 20-30%?) of submission to the “Council” any topic or issue, obtaining a formal decision or opinion.

As always, sorry for my poor english! :sweat_smile:

1 Like

That’s totally right, and it can be adapted over time, for instance when there will be more activities after the project has grown.
It’s a good point to discuss during the meeting.
IMHO it should be quite short for the moment (like 1~2 months), as the project is still quite young, still structuring itself, and has new members can come in a short while (for instance when we will reach a “daily usable” status).

If we vote for the “council” 's places, I think we will easily raise those problems.

Right. And IMHO transparency and the possibility to attend to the meeting and take part of the decision is one of the keys for this (except if nobody want to attend, but in that case the issue not a lack of openness).

I think we should revert this: asking the community should be quite easy, like opening a forum topic, sending it to the mailing-list, and asking people to spread the news. It will help to have some debates around it.
And if we finally need a special vote for this, well we send of survey-like form and that’s it.
IMHO, the question is more about how to do the contrary: from the community to the “council”.
And here I think it would be handy to have this possibility, that we already have in some way, to raise a question, push it in an “upper” level, and send it to the council. So well, we have the forum/mailing-list, and if anybody can attend to the council meeting, it will helps.
But it can also be hard for 1 person or a small group, that is not really integrated into the community, to raise their voice. It’s a point to keep in mind for community organization efforts, how to relay this questions/informations.

I don’t clearly understand what’s “out of the board” means: is it “normal” users, not taking part of the community by being on the forum/mailing-list/… and not contributing in some way ?
If yes - this is a point that I tried to tackle in my council proposal, have at least 2 people (but yeah they can be 4 for instance, a third), 1 having no/few knowledge of what’s going on and 1 following the news and having a little overview of the different projects.
And of course the “new” one with few knowledge will learn and possibly get involved more, so it would be a good idea to setup a turnover, where the people taking this places in the council changed often. This will also help new people to get involved.

I think it’s the same as 1), if people can attend to the meeting/add question on the notes, ask on discourse, the questions will be tackle and the opinion listened and discussed.

(it’s a bit off-topic) This knowledge can be really useful for the project ! :slight_smile:

Just think about mine, it will looks like a perfect english :yum:

1 Like

Lapi, I agree with all your remarks, but let me be more precise on some points.

In my opinion, we should imagine both systems: from the Council to community and vice versa. It’s a way to give more power to the community.

Honestly, I don’t know how we can practically do that, but this is just something conventional: we can use a forum post, a pool or any other way. It doesn’t mind, it’s just a practical problem we can solve later.

Points 2 and 3 of my original post were just answering to this: the first was a way to bind the Council to act in a certain way, the latter is, instead, a more informal instrument to know the opinion of the Council on something.

But, as before, I think we could do that always using the best practical, fast and involving instrument. As a Community we need to create and enhance participation, and I really appreciate you proposal of non-developer members in the Councul.

I do agree, but we should have a way to solve similar problems if we become aware on them after the “election”.

This a big point, Lapi. If we say we have to elect a Council, we should at least know who can vote and who can’t. This is not a big issue right now, but it could become bigger depending on the project growth.

Determine who is part of B2G0S Community and who is not it’s a key question. Is it enough reply on a forum topic, do we need a registration form to make it official or what else? Obviously, I would to make it clear: this is not a way to close the community, but something necessary to count each others.

IMHO, for example, a registration form could be a good instrument but I would like to be aware of other proposals.

I imagine that they will be enough sound to force something to happened, like a second vote.
We could just say that this place in the council can be canceled by the community if enough person vote for it.

Completely right.
I was thinking that just showing interest by posting in the forum is enough, but we have to think about non-english-speaking users. We could use representative person from each community, but it’s also not easy to decide who can do that.
I’ve no answer here. Maybe it will be a kind of “anarchic” way to define it, who is involved in some way on the forum, who come to vote, and so on.
Does someone has any experience in another community than can be useful here ?

Without excluding votes, I think those choices should be mainly based on arguments, discussions.

1 Like

Reminder: meeting in 1h ! :slightly_smiling:

Hi,

for making decisions I really like this game:

https://management30.com/product/delegation-poker/

I use it a lot during my day job. Its normally for a line manager to delegate stuff and empower her people. In our situation could it help, if its needed to make clear how decisions are made between module owners and their contributors.

1 Like

Meeting ended, main idea and assessment: it might be too soon to have a big decisions making structure, we’ll see when more people will get involved.

1 Like

So, will there be any kind of structure until that moment? or are we just going to proceed as we’re doing now?

Well, it seems like we still can all fit in a weekly meeting, or discuss in a topic without any problem.
We spoke about a module owner for the communication group, to manage a “common” voice.

For the rest, the actual organization (= no organization :smiley:) is still working ^^

So, as @lapineige reported, we agreed that there was too few people involved for now to need a more structured way to deal with governance than the (legacy) module ownership system.
We’ll reconsider the question of a governance structure in 3 weeks.
In the meantime, governance related questions are welcome to be asked at the B2G weekly meeting, and modules will be created for the working groups.
You’ll find Firefox OS Module Owners & Peers list and examples of non-technical modules.

Thanks for all your responses and reflexions, they’ll be useful in the future.

2 Likes

I think that if we could find a delegative democracy web app that we could preinstall inside B2GOS, linked to the B2GOS account (firefox sync…) then here you’ll have all your community identified and able to participate to all debate and decision.

1 Like