Talk given on Oct 15, 2019 at the Inclusive Astronomy 2 conference held in at STScI in Baltimore, MD. Video is here: https://cloudproject.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=5bf2ea68-b046-4c13-9a4a-aaea00dae5f8
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. DOI:10.5281/zenodo.3515334.
Unlocking Productivity and Personal Growth through the Importance-Urgency Matrix
Lessons from the Astropy Code of Conduct
1. Lessons from the Astropy
Code of Conduct
Kelle Cruz (@kellecruz)
CUNY Hunter College
An overview of
Adrian Price-Whelan
! adrn "adrianprw
2. Astropy Core Package
(currently v3.1.x)
• Units and
“Quantities” (arrays with
units that act the way
you’d expect).
Integrated with
comprehensive astro-
appropriate physical
constants
• Date/time good to
nanoseconds over a
Hubble time
• Celestial coordinates
and their transformations
• Table manipulation,
including many arcane
astro formats
• nddata: Image analysis
and interoperability data
structures
• Astro-appropriate
convolution
• WCS (pixel sky
mapping)
• Extensible I/O: FITS,
VOTable, hdf5, custom
• Data modeling and fitting
• Common astrostatistics
tools
• Cosmology tools
Best place to look is always http://docs.astropy.org
3. Astropy Coordinated And Affiliated Packages
• APLpy: astronomical
plotting
• astroquery: access to
internet-accessible
astronomy resources
• ginga: interactive image
viz
• imexam: quick image
analysis
• pydl: simple IDL ports
• PyVO: VO access
• WCSAxes: WCS-aware
matplotlib plots
• pyregion: ds9 region files
• montage-wrapper: image
mosaicing
• ccdproc: ccd reductions
• photutils: photometry
• specutils: spectroscopy
• gammapy: gamma-ray
astronomy
• sncosmo: supernova light
curves fitting/typing/etc
• halotools: high-
performance tools for
using n-body simulations
to model galaxy formation
• galpy: tools for Galactic
dynamics
• dust_extinction: tools for
those who study dust and
those who hate it
Canonical list is at: http://affiliated.astropy.org
4. Core package: General tools, long-term stable,
longer release schedule
Affiliated packages: More specialized tools,
faster development and release cycle
- Can also be Astropy-coordinated, managed
by the Astropy project
The Astropy Ecosystem
Core package + affiliated packages
5. A collaborative effort
~240 contributors
~20 package leads & maintainers
Who develops the Astropy Core Package?
7. The Astropy Coordination Committee
Erik Tollerud Kelle Cruz Tom Aldcroft Tom Robitaille
• Overall coordination and management of the Astropy project
• Evaluating new affiliated packages
• Arbitrating disagreements in the core package
• Managing finances for the project
8. We might be doing it wrong,
but we got something done!
• We followed our noses, read a couple other CoCs, and
basically made up something which felt right for us.
• These “lessons” are working for us but have not been
studied or even read over by an HR professional.
9. Lesson #1: Write the Code of
Conduct as a Community
• Astropy Code of Conduct was written via Google Docs
during the 2015 Python in Astronomy conference as
an unconference and hack project.
• Things were hashed out in-person and in a relatively
short amount of time.
10. Our goal is to keep ours a
positive, inclusive, successful,
and growing community.
Lesson #2: Identify the Goal
11. Lesson #3: Make the Code of
Conduct Aspirational
• We all have bad habits that we need to work on breaking.
• Everybody breaks the code of conduct every once in
awhile.
We pledge to…
12. Lesson #4.1: Identify Exclusive
Practices and Barriers to Full
Participation
We pledge to treat all people with respect and provide a
harassment- and bullying-free environment, regardless of sex,
sexual orientation and/or gender identity, disability, physical
appearance, body size, race, nationality, ethnicity, and
religion. In particular, sexual language and imagery, sexist,
racist, or otherwise exclusionary jokes are not appropriate.
13. Lesson #4.2: Identify Exclusive Practices
and Barriers to Full Participation
We pledge to welcome those interested in joining the community, and
realize that including people with a variety of opinions and backgrounds will
only serve to enrich our community. In particular, discussions relating
to pros/cons of various technologies, programming languages, and
so on are welcome, but these should be done with respect, taking
proactive measure to ensure that all participants are heard and feel
confident that they can freely express their opinions.
In practice: No IDL bashing.
14. Lesson #4.3: Identify Exclusive Practices
and Barriers to Full Participation
We pledge to be conscientious of the perceptions of the wider community
and to respond to criticism respectfully. We will strive to model behaviors
that encourage productive debate and disagreement, both within our
community and where we are criticized. We will treat those outside our
community with the same respect as people within our community.
In practice: Don’t be rude when people complain.
15. Lesson #4.4: Identify Exclusive Practices
and Barriers to Full Participation
We pledge to welcome questions and answer them respectfully, paying
particular attention to those new to the community. We pledge to provide
respectful criticisms and feedback in forums, especially in discussion
threads resulting from code contributions.
In practice: Be as nice and patient as possible.
16. Lesson #5: Make Everyone
Mutually Accountable
We pledge to help the entire community follow the code of conduct, and
to not remain silent when we see violations of the code of conduct. We will
take action when members of our community violate this code such as
contacting confidential@astropy.org or talking privately with the person.
In practice, when there is not ideal behavior, we say,
“Code of conduct?” We say it to each other A LOT.
17. Frequent violations are good.
Tech rules have acted
as training wheels for
holding each other
accountable for
behavior and calling
each other out.
18. Leadership should model
desired behavior
The Coordination Committee members probably
call “Code of Conduct" on each other the most.
We do it during talks, in large groups, and
publicly on social media.
19. Lesson #6: Tell people what
the code of conduct is
Code of Conduct is discussed at the
beginning of every Python in Astronomy
conference and at the AAS Hack Day.
20. Discussion Topics
• Is this experience reproducible? Do you think these
elements would work in your community?
• Should Codes of Conduct include specific what-not-to-
dos in addition to more general aspirational statements?
• What are other examples of bad-habit behaviors we
should consider adding or would be good for other
types of communities?
21. Postscript - Oct 21, 2019
• These was a discussion in the conference slack and this Guide to Code of
Conducts was shared: https://files.frameshiftconsulting.com/books/
cocguide.pdf
• In Chapter 4 of that Guide, it specifically recommends to keep “positive/
expected” behaviors separate from “unacceptable” behaviors.
• Given that our CoC is already well established as aspirational behaviors,
I’ve proposed we make a document called "Unacceptable Behaviors"
which has the most egregious CoC violations and keep our Code of
Conduct as the document describing the desirable behaviors.
https://github.com/astropy/community-engagement/issues/10