Developer Experience in Open Source

A presentation at State of Open Con in February 2024 in London, UK by Lorna Jane Mitchell

Slide 1

Slide 1

Developer Experience in Open Source Lorna Mitchell, Redocly @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 2

Slide 2

Developer Experience Developer experience is about people getting things done in a confident and efficient way. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 3

Slide 3

Open Source Lifecycle From user to contributor. From contributor to maintainer. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 4

Slide 4

The art of README @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 5

Slide 5

README structure 1.Project purpose 2.Installation 3.Basic usage 4.Further resources @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 6

Slide 6

Documentation Documentation is a multiplier. •Use Docs-as-Code •Publishing is optional •Getting started •Platform-specific info •Advanced usage @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 7

Slide 7

Metadata Topic tags help project discovery. Introduce your project briefly. Key project measurements. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 8

Slide 8

Issues •A well-maintained issue list is a warm welcome. •Respond, and close as appropriate. •List all known issues, and any workarounds. •Use the help-wanted and good-first-issue tags. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 9

Slide 9

Code of Conduct A code of conduct sets out expectations for all participants. GitHub prompts with a selection of CoC templates. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 10

Slide 10

Contributing file Everything a new user needs to contribute. •Branching strategy •Commit naming requirements •How to run tests •Coding standards, linting •How to set up local tools •Docs process @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 11

Slide 11

Pull request reviews Transferrable skill from other code projects. •Be clear and constructive •Be prepared to add one more commit •Be consistent •Be responsive Does this feature improve things for the project audience/purpose? @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 12

Slide 12

Tools and automation Let the machines do the work @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 13

Slide 13

What to automate A non-exhaustive list of suggestions: •tests •linting (all file formats) •formatting/coding standards •build or compile •spell and link checking Include anything you can include. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 14

Slide 14

Local tools Provide developer information in CONTRIBUTING.md. Local tools shorten feedback cycle and improve developer experience. @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 15

Slide 15

Outreach Your project is more than the code. Build and enable the ecosystem: •write about the project •feature cool projects using your project •check stackoverflow questions •speak at a meetup @redocly ~ @lornajane ~ @lornajane@indieweb.social

Slide 16

Slide 16

Developer Experience in Open Source @redocly ~ @lornajane ~ @lornajane@indieweb.social