Hi all,

The OpenOCD community has recently experienced a series of unpleasant
situations that have negatively affected the project's cohesiveness.  

>From my perspective, the lack of clear and consistent policies and
behaviors on the part of the project maintainers have been to blame for
these situations.  The OpenOCD community has expressed a desire to adopt
some sort of policy framework that will prevent similar situations from
occurring in the future.  This message seeks to clarify what that means
for the project, without diving into too many specific details.

Formal policies will create responsibilities for the maintainers of the
OpenOCD project, which will require the community to grant the authority
required to carry out various sets of duties.  Simultaneously, the same
individuals must be held accountable for any policy transgressions by
members of the community.  These processes happen today; however, tacit
policies mean responsibility and authority must be assumed (or seized)
and accountability is impossible.

Thus, the OpenOCD project will adopt some policies that create explicit
duties expected to be performed by all contributing individuals: users,
developers, or maintainers.  Additional policies need to cover the cases
when someone fails to perform expected duties or repeatedly violates
project-specified prohibitions.  Responsibility requires authority, but
neither should be given without agreed upon means of accountability.


I have seen policy proposals ranging for how we manage revision control,
how we manage bug reporting, style, and everything else under the sun.
But have not seen a single proposals for solving the fundamental
question: who is in charge here?  Without an answer to this question,
continuing forward will be too painful for many people to bear.

We could view the community as a stock-based entity; each member gets
some number of voting shares.  We could vote on the issues.  This idea
would be insane for daily work, the idea has merit for some issues --
like the one the community faces in this message.

Alternatively, we could adopt the Linux model: benevolent dictatorship.
Everyone has stock, but the top dog calls the shots.  Lieutenants manage
smaller parts of the enterprise.  Their authority is absolute, but so is
their responsibility.  Linus is entirely responsible for Linux releases,
no matter how much help he gets.  The community holds the nearest person
in their network accountable for any mistakes.


Personally, I have done it both ways.  While they can provide excellent
feedback and perspective, I believe that committees and communities
should not be trusted with making decisions.  While authoritative, the
responsibility of any individual gets weakened by the herd, so nothing
fair can be done when time comes when someone must be held accountable.
This would not be much of an improvement over what we have today.

I think roles need to be handed out to the existing maintainers, and
those individuals should take the responsibility for helping to draft
initial policies in their respective areas of authority.  From there,
the community should give their feedback to improve these draft policies
until a consensus has been reached.  We can then begin to implement the
policies and move forward with full knowledge of what we must do here.

Initial roles: release manager, bug handler, patch manager, and so on.
These do not need to be defined so much as the individuals define them
by focusing on those tasks and working on those specific processes.
Existing maintainers should volunteer for a position or two, then settle
who should be The Decider for each area of responsibility.


Why hand out roles?  The same principles are at work.  By giving each
individual a specific responsibility and giving them the authority to do
carry it out, they can be held accountable for their work.  Moreover,
organizations define these roles because each requires unique skills,
and individuals cannot become experts in all areas.  Presently, the lack
of roles means that everyone wears all hats and does each job poorly,
when compared to what should be possible with the focus of clear roles.

Why talk about these issues at all?  OpenOCD is a volunteer community,
but that does not exempt its participants from following a set of rules.
Try volunteering at a hospital then repeatedly disobey the policies and
procedures that you are expected to follow in that role.  You will be
asked to leave and never return.  This community must behave similarly.

I apologize for putting this in such black-and-white terms here, as
I definitely acknowledge the world is filled with shades of gray.
Absolute rules should only apply if supported by absolute truths, which
arrive from overwhelming evidence amassed over time by many observers.
This idea of "just rule" seems more sincere and true to the definition
than ideas claimed to be represented by those nation-states that rule by
force of law alone.  I hope that all here appreciate these sentiments in
face of my suggesting "absolute" rulers.


So, what does the community want?  I do not want to lead, but I will.
Somebody needs to do it, because I am tired of following a mob over
which no one has any control.

Cheers,

Zach Welch
Corvallis, OR


_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to