Commit c0098251 authored by Richard Eisenberg's avatar Richard Eisenberg
Browse files

Vision, code of conduct

parent f70a6bc2
......@@ -2,5 +2,6 @@
This "meta" repo contains notes about how the Haskell Foundation
conducts its business. If you want to change the way the Haskell
Foundation does its business, please make a PR or file an Issue
Foundation does its business, please make an MR or file an Issue
against this repo.
# Board of Directors
This document describes the current membership of the Haskell Foundation's Board
of Directors.
<!-- edit this easily by pasting it at https://www.tablesgenerator.com/markdown_tables -->
| Name | Appointment | Affiliation | Role |
|----------------------|-------------|------------------|-----------|
| Alexander Bernauer | Feb 2021 | PwC Switzerland | |
| Théophile Choutri | Feb 2021 | | |
| Scott Conley | Feb 2021 | | |
| Wendy Devolder | Feb 2021 | | |
| Richard Eisenberg | Feb 2021 | Tweag I/O | Chair |
| Tom Ellis | Feb 2021 | | |
| Edward Kmett | Feb 2021 | | |
| Andrew Lelechenko | Feb 2021 | | |
| Jose Pedro Magalhaes | Feb 2021 | | |
| Simon Peyton Jones | Feb 2021 | | |
| Michael Snoyman | Feb 2021 | | |
| Ryan Trinkle | Feb 2021 | Obsidian Systems | Treasurer |
| Niki Vazou | Feb 2021 | | |
## Past members
None yet!
# Haskell Foundation Code of Conduct
## Preamble
The Haskell Foundation has adopted these guidelines for respectful
communication, for use both in our own communication, and as a strongly
recommended template for affiliated committees and projects.
## Motivation
We are motivated to adopt a set of guidelines for respectful communication for
several reasons
* Diversity and inclusion. We recognize that the Haskell community, echoing
the technology industry more generally, skews white and male. We see it as our
duty and honour to spread the joy of Haskell widely and to broaden the patterns
of participation, in the hopes that, one day, we will no longer be askew.
* Making an explicit commitment will encourage us to review our messages to see
if they meet the goals set out here, and will give others some specifics to
point to if we fail.
## Guidelines for respectful communication
We commit ourselves to a high standard of public behaviour. We have one
over-arching rule:
**We strive to treat every person with respect.**
Specifically, we aspire to these qualities:
* We treat everyone with courtesy, aware that their diverse backgrounds,
experiences, goals, and perspectives may be very different to ours.
* In our communication, we consistently honour and affirm the passion,
professional expertise, and good intentions of others. Even if we
occasionally doubt these qualities in someone else, we will not make public
accusations of incompetence, malice or ulterior motives.
* We strive to be scrupulously polite at all times. There should be no
rudeness, name-calling, or harassment in our communication.
* Where we disagree with someone, we avoid forms of expression that might make
our dialogue partner feel attacked, humiliated, demeaned, or marginalised.
Our critique should always be of specific statements and claims, never of
people.
* Disagreement itself is fine: we are enriched by robust technical debate. But
we seek to make the tone of that debate to be a conversation among people who
respect, or even admire, each other.
* Where we disagree, we try to be curious about the perspective, goals,
motivation, and priorities of the other person.
* We do not tolerate any form of discriminatory language or behaviour towards
any minority (for example age, body size, disability, ethnicity, sex
characteristics, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation).
We seek to apply these standards in all our public interactions in the Haskell
sphere, including email, social media, discussion forums, and so on.
If one of us fails to meet these standards, the ideal course of action is to
write to that person privately, gently drawing attention to their lapse. If
you're not comfortable with that, please contact the chair of the committee, or
(if the chair is the problem) the vice-chair or co-chair.
Our response should usually be to apologise and stop doing what it was that you
are unhappy about. Even if we feel we have been misinterpreted or unfairly
accused, the chances are good there was something we could have communicated
better, and an apology is far more likely to bring healing than is a
counter-accusation.
## Acknowledgements
We'd like to thank the communities and projects that established code of
conducts and diversity statements as our inspiration, including these:
* A month before this document was first published, Michael Snoyman proposed
a [Stack code of conduct](https://www.snoyman.com/blog/2018/11/proposal-stack-coc) with a
motivation similar to ours.
* The [GNU Kind Communication Guidelines](https://www.gnu.org/philosophy/kind-communication.html), published in
October 2018, also express the positive tone we seek; [Stallman’s post](https://lwn.net/Articles/769167/) explains the intent.
* The [Snowdrift community code of conduct](https://wiki.snowdrift.coop/community/conduct) also has a companion [Guidelines for healthy communication](https://wiki.snowdrift.coop/community/honor-users).
* [Open code of conduct](https://github.com/todogroup/opencodeofconduct/blob/gh-pages/index.md)
* [Pycon code of conduct](https://github.com/python/pycon-code-of-conduct/blob/master/code_of_conduct.md)
* [Rust code of conduct](https://www.rust-lang.org/policies/code-of-conduct)
* [TypeLevel code of conduct](https://typelevel.org/conduct.html)
* [Contributor covenant](https://www.contributor-covenant.org/)
# Who we are
This document describes the current and former people involved with
the Haskell Foundation.
## Current staff
<!-- edit these easily by pasting it at https://www.tablesgenerator.com/markdown_tables -->
| Name | Appointment | Role | Email | Twitter | GitHub | gitlab.haskell.org |
|-----------------|-------------|--------------------------|-------|---------|--------|--------------------|
| Andrew Boardman | Feb 2021 | Executive Director | | | | |
| Emily Pillmore | Feb 2021 | Chief Technology Officer | | | | |
## Current Board of Directors
| Name | Appointment | Affiliation | Role | Email | Twitter | GitHub | gitlab.haskell.org |
|----------------------|-------------|------------------|-----------|------------------|-------------|-------------|--------------------|
| Alexander Bernauer | Feb 2021 | PwC Switzerland | | | | | |
| Théophile Choutri | Feb 2021 | | | | | | |
| Scott Conley | Feb 2021 | | | | | | |
| Wendy Devolder | Feb 2021 | | | | | | |
| Richard Eisenberg | Feb 2021 | Tweag I/O | Chair | rae@richarde.dev | @RaeHaskell | @goldfirere | @rae |
| Tom Ellis | Feb 2021 | | | | | | |
| Edward Kmett | Feb 2021 | | | | | | |
| Andrew Lelechenko | Feb 2021 | | | | | | |
| Jose Pedro Magalhaes | Feb 2021 | | | | | | |
| Simon Peyton Jones | Feb 2021 | | | | | | |
| Michael Snoyman | Feb 2021 | | | | | | |
| Ryan Trinkle | Feb 2021 | Obsidian Systems | Treasurer | | | | |
| Niki Vazou | Feb 2021 | | | | | | |
## Past members of the Haskell Foundation
We are grateful to these members of the Interim Board, who selected
the initial Board of Directors and our initial staff.
| Name | Affiliation | Role |
|----------------------|----------------------------|-------|
| Lennart Augustsson | Epic Games | |
| Chris Dornan | IRIS Connect | |
| Gabriele Keller | Universiteit Utrecht | |
| Edward Kmett | MIRI | |
| Simon Marlow | Facebook | |
| Simon Peyton Jones | Microsoft Research | Chair |
| Jasper Van Der Jeugt | Fugue | |
| Stephanie Weirich | University of Pennsylvania | |
Beyond just these members of our interim Board, we thank the many
volunteers who helped build the idea that became the Haskell Foundation.
In particular, we thank Tim Sears, Emily Pillmore, and Ryan Trinkle, who did much of
the hard, often invisible work of organizing us and arranging our founding
sponsors.
# Haskell Foundation vision
The Haskell Foundation (HF) is an independent, non-profit organization
dedicated to broadening the adoption of Haskell, by supporting its ecosystem
of tools, libraries, education, and research.
Why do we need yet another Haskell community organisation? The HF addresses
the following needs, which were previously under-served:
* Driving adoption. HF seeks to foster an understanding of the benefits of
using Haskell among developers who do not currently use the language, to
erase barriers to entry, and to improve the Haskell ecosystem. We have many
passionate and expert groups, but each is focused around a particular piece
of the ecosystem, and none is dedicated to the overall user experience.
* Technical infrastructure and glue. The HF identifies and integrates or
implements missing “technical glue”: the useful stuff that makes for a smooth
user experience (pain-free installers, documentation, error messages, and
much more).
* Community glue. Our individual groups function well, but on their own lack mechanisms
for high-quality technical communication between them. The HF tries to
nurture respectful, inclusive communication across the community.
* Resources and funding. We have plenty of volunteer groups, but as Haskell
becomes more widely adopted, and more mission critical to more organisations
it becomes harder for volunteers to sustain all the necessary
infrastructure. We need colleagues whose day job is to make everything
work...and that needs funding. Because of its broad scope, the Foundation
is a more credible recipient of corporate funding than any other
individual group is.
## Principles and Ethos
How we pursue the goals of HF is just as important what the goals are. HF’s
actions are guided by these core principles:
* **Open source.** Haskell is an open source community and HF embraces the
open-source ethos wholeheartedly. HF may develop or sponsor the
development of tools and infrastructure, but it will all be open source.
* **Empowering the community.** A major goal of HF is to augment, celebrate,
and coordinate the contributions and leadership of volunteers, not to
supplant or replace them.
* **Open, friendly, and diverse.** For many of us Haskell is more a way of
life than a programming language. All are welcome; all can contribute.
* **Transparent.** All communication related to code and decision making is
be publicly accessible, to enable asynchronous communication and
collaboration. Only certain categories of sensitive information (e.g.
financial, and matters concerning particular individuals) are kept
confidential. Details are in the [transparency document](transparency.md).
* **True to Haskell’s principles.** Haskell’s design puts principle ahead of
expediency, notably by cleaving closely to the principles of purely
functional programming. Success, yes, but not at all costs!
## Organization
The Haskell community comprises an amazing group of technical talent, and
functions as an almost entirely volunteer effort. The Haskell Foundation
does not change that. Our goal is to make every member of the Haskell
community, and every Haskell committee, feel more supported, and more
productive. We want to enlarge and diversify our community going forward.
More specifically:
* HF has a Board of Directors (“Board” hereafter) that reflects the Haskell
community and its stakeholders, including academics, commercial users, and
individuals.
* HF has a full-time staff. The size of the staff varies, depending on funding, but we
always have at least an Executive Director (ED), who can organize Haskell outreach,
support its funding activities and oversee the rest of the staff. The staff
mostly focuses on funding, marketing, and key infrastructure.
* HF works with existing and new open-source teams to channel energy into
various efforts like packaging, tools, libraries, compilers, languages,
documentation, user experience, and infrastructure. To reiterate, we expect
that most technical contributions will be by volunteers, as it always has been,
but we position HF to fill gaps that can help adoption.
* HF establishes a [code of conduct](conduct.md) and transparent decision-making that
applies to itself and any associated teams.
* To the extent HF funds and pursues technical goals itself, it pursues
those goals with the same transparency as we expect from any of the teams
associated with it. In this way HF augments the community in a
transparent way.
## Funding
There have been other initiatives of this kind in the past, but they have
proved hard to sustain. A big part of this has been a simple lack of bandwidth
in a highly decentralised community run entirely by volunteers.
The Haskell Foundation launched with a small group of founding sponsors,
enough to employ an Executive Director. Our goal is to raise around $1M/year
in cash and in-kind contributions.
## Improving the Haskell Adoption Story
A principal goal of the Foundation is to promote adoption of Haskell. We see
that task as having three major components:
1. Eliminating unreasonable and perceived barriers to adoption.
2. Educating the tech community about the benefits of adoption, including
decision makers.
3. Enhancing the tooling, so that the risk associated with adoption is
dramatically reduced.
### Eliminating unreasonable barriers to adoption
We expect that with HF adding a little structure, some things can be improved
immediately. For example, we need an entry point for Haskell that speaks to
the needs of a range of users: from engineers looking for an easy on-ramp with
our best advice on how to learn and use Haskell, to team leaders who want to
assess Haskell adoption as a business decision. The Haskell community today
does not provide the full range of content needed to promote adoption. This is
one example where an organization with the right focus and some resources can
easily have a positive impact.
### Educating the tech community
Engineers are typically the ones who drive Haskell adoption. But they often
need permission or sponsorship from managers 1 or 2 levels higher. These
decision makers are people who are more concerned about speed of development,
reliability, maintenance, and people. We need to explicitly address a broader
audience and position Haskell as the best solution to many problems, while
maintaining integrity and avoiding too much “marketing speak".
Conditions for telling this story are favorable. The days of a senior sysadmin
dictating which version of Java or Python “shall be used” are dying.
Containers and cloud technology have inadvertently conspired to permit
engineering teams to make these decisions more often at a team level, even in
larger organizations. Still, these teams need air cover and solid tools so
that their decisions don’t look “rogue” to the rest of the organization.
If used correctly, Haskell can be unreasonably effective. Unfortunately, the
“if” clause is not common knowledge. The HF recognizes that many of these
advanced features are precisely the reason why Haskell can be successful in
cases where other languages fall short. We trust that the end users will be
able to make the right trade-offs that work for them. The HF will be there to
help users that need to make these trade-offs by improving documentation and
highlighting success stories. For example, Haskell has a great concurrency
story and things like STM that are dramatically undersold in the marketplace.
Some advanced features can be emphasized and taught.
The spectrum of developers is very broad: Haskell is used by both junior
developers as well as long-time experts. This can cause friction, and some
code may be unreadable even to other Haskell developers. This is unfortunate,
because we believe that Haskell allows us to express ideas in a way that are
clear and elegant. We need to delineate the common knowledge aspect of the
language and tools to elevate more developers. HF should carry this banner.
Beyond that, the pesky problem of the marketplace for Haskellers remains. We
often hear about fear of hiring bottlenecks and we know some engineering
leaders that list this as the number one concern about Haskell. These leaders
need to know one thing. You don’t have to hire a Haskell team: Haskell can
make your team. Your smart Python developers can learn how to make reliable
software and will love you for letting them. There is a role for HF to bridge
the gap between the countless developers who want to learn and write Haskell,
and the decision makers who currently believe it is hard to find these people.
### Technical Agenda: Enhancing the tooling, filling the gaps
Haskell Foundation identifies a list of technical goals that will ease
adoption and improve Haskell use in production. We have established an
[initial
agenda](https://drive.google.com/file/d/1VmiQJTiejajAmpNKBFKME6Chr2m0tH9t/view?usp=sharing)
and are seeking to refine it as we go forward. As HF evolves, we will engage
technical discussion in a transparent way, with input from the community.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment