Respect / project-info

General Project Information
8 stars 0 forks source link

Decision-making process #13

Closed henriquemoody closed 11 years ago

henriquemoody commented 11 years ago

Thinking about our issues on all projects I can see that there is a lot of unresolved issues waiting for our consent, but of all of us.

Some times we have no time to answer some questions or we do no have a opinion about some topics. That's ok, the problem is that sometimes some of us wanna do something but don't do becouse the consent of all.

This time I must have the opinion of all you guys. What we have to do to make the proccess more agile?

@alganet @augustohp @iannsp @nickl- @wesleyvicthor

nickl- commented 11 years ago

Apparently a meritocratic project works as follows.

Project roles

Roles are executive only and grants no member any authority over other members

Users:

Uses project. Anyone, no expectations; => evangelising, new user experience reporting, gratuity

Contributor:

contributes: Anyone, no expectations, no required skill, no selection process; => partakes on issues, bug and feature reports, pull requests

Committers:

a committed contributor; Anyone who shows willingness and ability to be a team player; nominated by committers, voted by PMC; remains as long as contributing. => aside from assisting contributors and casting binding votes committers continue doing what they used to, but now has commit-then-review

PMC

above-average committer respects strategic direction and long-term health; invitation from PMC vote members; => code review, strategic planning, approve governance changes, manage copyrights of outputs;

PMC Chair

Single user, voted in by PMC, coordinator and facilitator, ensures governance processes are adhered to; remains till step down or 2/3 PMC down vote; has casting vote only if consensus cant be reached.

Decision Making Process

Lazy consensus

In order to prevent endless discussion and continual voting majority of decisions are made when nobody explicitly opposes a proposal (has community. support)

Process involves:

Voting

Types of approval:

(bind votes only)

Voting required?

Most actions are through lazy consensus, simply state intent and proceed unless objected.

Some actions which require voting

Summarised from: OSS Watch based on Apache governance model

henriquemoody commented 11 years ago

+1

henriquemoody commented 11 years ago

And, I have to say, awesome!

nickl- commented 11 years ago

Now @alganet feels that even a release should be superfluous of restraint and if the inspiration hits you can complete it quickly. Although a public statement of intent would be welcome so that others can jump in and maybe do a few tests or similar last minute clean-ups etc. but I can see his point. We do not require unnecessary red tape.

Keep in mind we are still a relatively small team so it's not like you're going to come back after missing out on a week and find we're busy deploying components to the international space station.

Python has best practice notion which is referred to as duck typing, if it quacks like a duck, and walks like a duck its a duck. Since its also loosely typed like php the notion goes that instead of wasting your time checking it's a duck.

if (true == is_a($quacker, 'Duck')) { 
   $quacker->swim(); 
}

Because you would probably be right most of the time It is much more efficient to just go ahead and assume that it's a duck and only deal with the consequences if that happens.

try { 
   $quacker->quack(); 
} 
catch (Exception $e) { 
    /* sorry, but it was a quacker?? */
}

This won't work in our beloved php as both "Call to undefined method" or "Call to a member function quack() on a non-object" would die the FATAL death of no return.

But the point that is illustrated here is that _"It is easier to apologize than to ask for permission."_ Which is exactly what @henriquemoody identified, it is close to impossible to ask for permission it's just not going to happen.

The bottom line is this, you've been deemed worthy to commit to the repo so you do have carte blanche to do just that.

The notion of Lazy consensus is for 1), that we don't have to vote about every little thing, 2) that you don't even have to approve anything (or as previously stated there simply exists no interest in the topic) so that 3) nothing stands in your way to follow your inspiration use the allocated time at your disposal and get done what you need doing. 4) Make all pandas happy!

So try to make as big a public display as you can, generally a pull request is a huge act but also if we ensure that we always have an open issue , for increased visibility, against which we do commits it creates the appropriate platform for lazy consensus and most importantly it notifies about a requirement for review. Because the only way this will work is if someone else scans over what you've done and finds no reason to disagree.

To recap: Nothing is true everything is permissible.

Start by stating intent (have an issue to reference in commits) +1 is not required as everything is pre-approved, unless you actually want to participate in getting it done. -1 should accompany a motivation/reason/alternative course of action, only one -1 is required and all it does is creates the necessity for others to also vote, more -1 than +1 and the opposition is approved. Since one person thought it was cool to do (+1) and another didn't (-1) its kinda a draw there so lets get everyone's opinion. If found that you were wrong simply apologise and rollback the mistakes. No harm done.

So the only thing that you should consider really, is how much rollback work are you creating for yourself =)

if 72hrs have elapsed without a -1 then assume you have the support of the community, pull requests can be merged and issues can be closed,

@alganet @augustohp @iannsp @henriquemoody @wesleyvicthor I think that can help facilitate unhindered progress while at the same time allowing you the confidence that the community has your back or someone will surely say something. What say thee?

(and the clock starts ticking down from 72 hours, in 3 days from now if no -1, it can safely be assumed that we have a unanimous consensus and the support of the community on this)

alganet commented 11 years ago

+1 gogo agile! :panda_face:

augustohp commented 11 years ago

:+1:

"It is easier to apologize than to ask for permission."

And more productive also! :) HQ07e

henriquemoody commented 11 years ago

LOL

nickl- commented 11 years ago

:panda_face: It's unanimous then, wow well done Team! \o/

wesleyvicthor commented 11 years ago

+1 :dart:

nickl- commented 11 years ago

:blush: