Proposal: Adopt Code Manifesto

372 views
Skip to first unread message

Larry Garfield

unread,
Jan 22, 2019, 7:17:32 PM1/22/19
to php...@googlegroups.com
Greetings, FIGians.

This has been bounced around in back channels on and off for a while, so I think it's finally time to make it official. I propose that we officially adopt the Code Manifesto[1] as our official standard of behavior.

Specifically, as follows:

https://github.com/php-fig/fig-standards/pull/1143

WHY?

First off, I want to be clear that I am NOT making this recommendation in response to any current issue. I am not aware of any current issue that would require invoking or even discussing invoking the guidelines listed here. FIG has been delightfully boring in that regard for quite some time and, "good lord willin' and the creek don't rise", it will stay that way.

That of course is the best time to discuss such matters, as they can be looked at from a reasonably objective and dispassionate perspective. The definition of expected behavior of current official FIG members is quite vague and wishy washy (by design), and having clearer up-front expectations is good should the need ever arise.

WHY THE MANIFESTO?

A number of organizations and projects have of late adopted the "Contributor Covenant" as their code of conduct. My concern with the Covenant is that it is a very negative document; in contrast, the Manifesto provides guidelines of good behavior rather than an enumeration of bad behavior. In my experience, a positive document tends to encourage the desired behavior better than a negative one.

That it was written originally by a previous FIG Core Committee member is also bonus points in its favor.

PROCESS

As this would be a bylaw change, there is at least a 2 week discussion period. After that, depending on what if any discussion happens, I will ask the secretaries to call a vote on the above PR. Per the bylaws, that would entail both a Core Committee vote and a Member Project vote.

--
Larry Garfield
la...@garfieldtech.com

Lukas Kahwe Smith

unread,
Jan 23, 2019, 3:49:15 AM1/23/19
to PHP Framework Interoperability Group
On Wed, Jan 23, 2019 at 1:17 AM Larry Garfield <la...@garfieldtech.com> wrote:
>
> Greetings, FIGians.
>
> This has been bounced around in back channels on and off for a while, so I think it's finally time to make it official. I propose that we officially adopt the Code Manifesto[1] as our official standard of behavior.
>
> Specifically, as follows:
>
> https://github.com/php-fig/fig-standards/pull/1143
>
> WHY?
>
> First off, I want to be clear that I am NOT making this recommendation in response to any current issue. I am not aware of any current issue that would require invoking or even discussing invoking the guidelines listed here. FIG has been delightfully boring in that regard for quite some time and, "good lord willin' and the creek don't rise", it will stay that way.
>
> That of course is the best time to discuss such matters, as they can be looked at from a reasonably objective and dispassionate perspective. The definition of expected behavior of current official FIG members is quite vague and wishy washy (by design), and having clearer up-front expectations is good should the need ever arise.
>
> WHY THE MANIFESTO?
>
> A number of organizations and projects have of late adopted the "Contributor Covenant" as their code of conduct. My concern with the Covenant is that it is a very negative document; in contrast, the Manifesto provides guidelines of good behavior rather than an enumeration of bad behavior. In my experience, a positive document tends to encourage the desired behavior better than a negative one.

We had a brief discussion on this point via IRC a few days ago. While
such a document is a very small step forward, I personally think that
the manifesto lack of naming problematic behavior is its biggest
weakness, since it does very little to assure people that you are
willing to name problematic behavior when it occurs, when you cannot
even do so in the rules you publish.

regards,
Lukas

Stefano Torresi

unread,
Jan 23, 2019, 10:41:17 AM1/23/19
to PHP Framework Interoperability Group
I like the idea a lot!

I appreciate Lukas' opinion: the Code Manifesto may not be satisfactory to everyone, it's not that strong against misconduct, but that's not necessarily the point; IMO it succeeds at communicating noble values with a moderate and positive language.

Furthermore, I know for sure of some people who could have contributed to the FIG, who have not done so because of a complete lack of a conduct guideline, so it's about time we put one together.

Cheers.

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/CAEFKHaFx4d-oxTa2DQhbYVWYyL8gNZ6JZXyrivTRX%3DFeSJkc1g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Matthew Weier O'Phinney

unread,
Jan 23, 2019, 2:42:44 PM1/23/19
to php...@googlegroups.com
I tend to agree with Lukas here, and have a bit of background to share.

A few years ago, Zend Framework adopted Code Manifesto to govern our projects, for many of the same reasons Larry has stated: we like the emphasis on positive guidelines of acceptable behaviour over an enumeration of punishments for bad behaviour.

In practice, it's been problematic, for a number of reasons.

When unacceptable behaviour is observed, there's no clear contact to report to. This leaves people either waiting and hoping somebody will step in, or leaving the conversation to avoid the person.

Additionally, when somebody does step in (generally somebody with moderation rights in whichever community forum the interactions are occurring on), there's then questions:

- What behaviour was observed? How is it against the code?
- What direction should be provided to the user to prevent future issues?
- Is banning necessary? If so, how long? Should it ever be permanent?

Essentially, a code without an explicit process for calling out violations and dealing with them makes addressing problems entirely subjective and at the whim of those with moderation powers.

In terms of reporting, reporting MUST be able to be done anonymously, to prevent retribution by the accused against the accuser; people who abuse the rules are simply more likely to retaliate. Without this, members of the community have no safe way to report that prevents further abuse.

In sum: I love the Code Manifesto as a guideline for how people should interact within the community. However, it's not a code of conduct; a code of conduct needs to outline the specific behaviours that will trigger actions, how to report these safely, and what actions may be taken. These are required to ensure a safe and fair process.

--
he/him

Lukas Kahwe Smith

unread,
Jan 23, 2019, 2:58:47 PM1/23/19
to php...@googlegroups.com
for a reporting process we last year adopted this in the Symfony community
It is partially derived from the Sunshine PHP conference process, which in turn derived it from others.

One key aspect here is also the CARE team, which also received training in receiving reports. Now given the limited number of people that participate with FIG, compared to the rather large number in the Symfony community, a CARE team equivalent is probably unrealistic. That being said, I kind think it would be awesome of there would be such a “response team as a service” because the same thing applies to many other communities .. as just because you are small doesn’t things cannot happen yet when something happens its important that people know how to deal with it properly.

regards,
Lukas
--
regards,
Lukas

Larry Garfield

unread,
Jan 24, 2019, 8:54:28 AM1/24/19
to php...@googlegroups.com
Strictly speaking, a CoC doesn't include a process for handling issues; that's separate from the CoC itself, although I agree it's also important to have. So I don't think the Manifesto not having one "baked in" is a problem, as we can easily add one to it ourselves.

Symfony's model is similar to what I've seen elsewhere, such as Drupal. (Which isn't surprising or bad, mind you.) I agree that FIG is likely not large enough to have a standing and trained CARE team. In our case it would probably fall to the Secretaries to fill that role should an issue arise. I'm not sure if they're now sweating at the idea :-), but I don't know where else we'd put it currently without setting up another body just for that, which at our size seems like overkill.

So yes, we can and should include more detail around the reporting/handling process. On that front:

* While there may be value to a "CARE team as a service", that is very deliberately NOT what I am proposing here nor do I think FIG is the right place for such a team to live. The skillset that such a team would need is very different from what we look for in project reps, secretaries, or core committee members. Let's stick to just FIG-handling-FIG for now and KISS.

* I have always been very uncomfortable with anonymous reporting. I can absolutely see the value in it, and the arguments for it are valid. However, I am also a firm believer in someone being able to effectively respond to claims of behaviorism against them, and depending on the circumstance that may be impossible without knowing what exactly they are supposed to have done wrong; and providing enough "generic" information to allow someone to respond will frequently effectively reveal the accuser in the first place, making the anonymity effectively moot. I'm genuinely not sure of the best approach here, but it is more nuanced than it is often given credit for.

--Larry Garfield

Chuck Burgess

unread,
Jan 29, 2019, 9:06:09 AM1/29/19
to php...@googlegroups.com
Looking over both the manifesto and the covenant, I didn't really notice anything that would conflict between the two, if we wanted to simply include *both*... doing so would just be presenting an intersection of their requirements.  Is that too much verbiage overall?  Maybe just link to both, since they are standalone entities (that seem to be versioned, or at least versionable)?  Stating that we want to abide by both, then delineating how those in FIG positions can act to enforce, ... maybe that would cover the concerns mentioned?


--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To post to this group, send email to php...@googlegroups.com.

Margaret Staples

unread,
Feb 3, 2019, 6:28:58 PM2/3/19
to php...@googlegroups.com
I've done a lot of research in the last few years on serving underrepresented developers in tech community spaces, which has unsurprisingly included a ton of info on what's important in a CoC.

Here are the things I have turned up as important to an effective Code of Conduct
(removing the bits that are only relevant to events)

Code of Conduct provides...
  • a clear reporting process*
  • multiple ways to report
  • an anonymous reporting option**
  • options for reporting to humans of different gender presentations
Code of Conduct is...
  • prominent on the website
  • discussed openly and supportively by leadership
Code of Conduct contains...
  • clear language on expected behavior including zero tolerance for derogatory language about or harassment of people of color, women, LGBTQ, those with disabilities
  • clear language on potential consequences for bad behavior
  • clear language emphasizing intervention and safety
* this means making it clear what people can expect when/if they report.
** anonymous reporting means that the people empowered to manage Code of Conduct violations investigate concerns reported anonymously and are vigilant in observing anyone reported as having concerning behaviors so as to be able to intervene; this does not mean assuming every report is 100% accurate and doling out judgements and punishments in response. It is to enable protection of the most vulnerable - not an avenue to anonymously terrorize others.

Additionally, a word of warning on the perfectly understandable desire to emphasize positive behavior over discouraging misbehavior: this type of language is routinely used by those who wish to maintain the status quo of their empowerment to silence marginalized humans attempting to defend themselves. 

Here's an article that looks at this issue: https://thebias.com/2017/09/26/how-good-intent-undermines-diversity-and-inclusion/amp/ It focuses on the idea of "assume good intent", but it works similarly for all language which emphasizes nice behavior rather than emphasizing avoiding or correcting harmful behavior.

I have taken the proposed CoCs and modified them to be inline with the content standards. I hope you find this feedback helpful.

Conduct

All individuals involved with FIG either in an official capacity (Secretary, Core Committee, Project Representative, Editor, or Working Group member) or informally (such as participating in discussions) are expected to conduct themselves in a professional manner at all times. All individuals are expected to behave in a manner consistent with the slightly modified Code Manifesto included below. 

In the case of an individual holding a formal position, bad behavior may result in a Recall or Expulsion Vote may be called to remove the individual in question. In the case of any individual, any two Secretaries may issue a formal warning to the individual in question or issue a temporary or permanent ban from all FIG-related communication channels, as appropriate to the situation.

The Editor and Sponsor of a Working Group may jointly remove any member of the Working Group for failure to abide by the behavior guidelines at any time.

Concerning behavior may be reported publicly in any thread, privately to any Secretary, to the relevant Working Group Editor or Sponsor, or anonymously by emailing secre...@php-fig.org

Modified Code Manifesto

We want to work in an ecosystem that empowers developers to reach their potential--one that encourages growth and effective collaboration. A space that is safe for all.

A space such as this benefits everyone that participates in good faith. It encourages new developers to enter our field. It is through discussion and collaboration that we grow, and through growth that we improve.

In the effort to create such a place, we hold to these values:
  1. Discrimination harms us. This includes discrimination, derogatory language, or harassment on the basis of race, gender, sexual orientation, disability, age, nationality, technology and any other arbitrary designation of a group of people.
  2. Boundaries honor us. Your comfort levels are not everyone’s comfort levels. Remember that, and if brought to your attention, heed it.
  3. We are our biggest assets. None of us were born masters of our trade. Each of us has been helped along the way. Return that favor when you can, and be respectful of others' place in their journey.
  4. Respect defines us. Treat others with respect and compassion unless they abuse that trust. Make your discussions, criticisms and debates from a position of respect for the humanity of all involved. Ask yourself, is it true? Is it necessary? Is it constructive? Anything less is missing the mark.
  5. Reactions require grace. Angry responses are valid, but neither abusive language nor harmful actions are acceptable. If something happens which concerns you, address it directly or report it, but be respectful. Allow the organizers time to discuss the incident with the offender and possibly correct the issue.
  6. To err is human; always be iterating. You might not intend it, but mistakes do happen and contribute to build experience. Tolerate honest mistakes, and don't hesitate to apologize if you make one yourself. Remember, apologies are hallow without also correcting the behavior.


Lukas Kahwe Smith

unread,
Feb 4, 2019, 3:51:32 AM2/4/19
to PHP Framework Interoperability Group
+100
> To view this discussion on the web visit https://groups.google.com/d/msgid/php-fig/CAHSQ_FspyOP8LCR7XUdkdSi-_VrcKand3HOeveKQ9MS_1-inew%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.



--
regards,
Lukas

Matthew Weier O'Phinney

unread,
Feb 4, 2019, 1:30:17 PM2/4/19
to php...@googlegroups.com
Margaret —

Thank you, thank you, thank you for sharing your findings and your proposed changes. I think these look wonderful: everything is clearly spelled out in terms of what is not allowed, how and who to report to, and what will happen.


For more options, visit https://groups.google.com/d/optout.


--
Matthew Weier O'Phinney
mweiero...@gmail.com

Stefano Torresi

unread,
Feb 4, 2019, 5:30:32 PM2/4/19
to PHP Framework Interoperability Group
This is great, Margaret, thanks! Spot on!

Larry Garfield

unread,
Feb 4, 2019, 5:52:06 PM2/4/19
to php...@googlegroups.com
I like this update. It adds the things that need to be added without adding a
ton of text, and focuses the manifesto itself while keeping the same spirit.

I will update the PR with these changes shortly.

--Larry Garfield

On Sunday, February 3, 2019 5:28:42 PM CST Margaret Staples wrote:
> I've done a lot of research in the last few years on serving
> underrepresented developers in tech community spaces, which has
> unsurprisingly included a ton of info on what's important in a CoC.
>
> Here are the things I have turned up as important to an effective Code of
> Conduct
> (removing the bits that are only relevant to events)
>
> Code of Conduct provides...
>
> - a clear reporting process*
> - multiple ways to report
> - an anonymous reporting option**
> - options for reporting to humans of different gender presentations
>
> Code of Conduct is...
>
> - prominent on the website
> - discussed openly and supportively by leadership
>
> Code of Conduct contains...
>
> - clear language on expected behavior including zero tolerance for
> derogatory language about or harassment of people of color, women, LGBTQ,
> those with disabilities
> - clear language on potential consequences for bad behavior
> - clear language emphasizing intervention and safety
> 1. *Discrimination harms us*. This includes discrimination, derogatory
> language, or harassment on the basis of race, gender, sexual orientation,
> disability, age, nationality, technology and any other arbitrary
> designation of a group of people.
> 2. *Boundaries honor us*. Your comfort levels are not everyone’s comfort
> levels. Remember that, and if brought to your attention, heed it.
> 3. We are our biggest assets. None of us were born masters of our trade.
> Each of us has been helped along the way. Return that favor when you can,
> and be respectful of others' place in their journey.
> 4. *Respect defines us*. Treat others with respect and compassion unless
> they abuse that trust. Make your discussions, criticisms and debates from
> a position of respect for the humanity of all involved. Ask yourself, is it
> true? Is it necessary? Is it constructive? Anything less is missing the
> mark.
> 5. *Reactions require grace*. Angry responses are valid, but neither
> abusive language nor harmful actions are acceptable. If something happens
> which concerns you, address it directly or report it, but be respectful.
> Allow the organizers time to discuss the incident with the offender and
> possibly correct the issue.
> 6. *To err is human; always be iterating*. You might not intend it, but
> mistakes do happen and contribute to build experience. Tolerate honest
> mistakes, and don't hesitate to apologize if you make one yourself.
> Remember, apologies are hallow without also correcting the behavior.
>
> On Tue, Jan 29, 2019 at 9:06 AM Chuck Burgess <demon...@gmail.com> wrote:
> > Looking over both the manifesto and the covenant, I didn't really notice
> > anything that would conflict between the two, if we wanted to simply
> > include *both*... doing so would just be presenting an intersection of
> > their requirements. Is that too much verbiage overall? Maybe just link
> > to
> > both, since they are standalone entities (that seem to be versioned, or at
> > least versionable)? Stating that we want to abide by both, then
> > delineating how those in FIG positions can act to enforce, ... maybe that
> > would cover the concerns mentioned?
> > CRB
> > *about.me/ashnazg <http://about.me/ashnazg>*
> > <https://groups.google.com/d/msgid/php-fig/CANsgjnv%2BtYJxR15i17QMRGJT%3D
> > %3D2QtjmeDEYO4p%2B3fbgQ5Pg-QA%40mail.gmail.com?utm_medium=email&utm_source
> > =footer> .
signature.asc
Reply all
Reply to author
Forward
0 new messages