SlideShare a Scribd company logo
Gemeente
Amsterdam
The README
The most important content in your project.
Boris van Hoytema
“Grow an Open Source ecosystem for cities”
boris@publiccode.net
@bvhme
Open Source Adviseur (extern)
Director
Consortium Open Source Development Manager
The Foundation
For Public Code
2
Shopfront for your project
The README is the first thing almost anyone sees and perhaps one of the critical
parts of the project. It serves as an advertisement for the product, indicator of for
what users it can be relevant, the primary user’s guide and the way to get new
collaborators up to speed.
Keep your users in mind
● Your teammates
● People new to your team
● (Potential) users of our projects
● Contributors, both in and external
● People interested in your work
1. The project name and description
The README is an introduction. It should assume the reader
knows absolutely nothing about the software and should
provide a brief introduction. If software were a screenplay, the
README would be the elevator pitch. If a person finishes
reading the first 10 lines of frobnicator/README and still does
not know if frobnicator is a widget library, accounting software,
or a video game, then the author of the README has failed.
— William Pursell on StackOverflow
The description is a high-level overview of what the project is for, what it does and
in what way it should be used. The description can double as a mission to keep you
focussed and on track, so it is wise to define this as early in the process as possible.
Description
Be sure to answer these questions in your description:
● What is this project?
● How does it work?
● Who are the users?
● What is the benefit for the users?
● What is the goal of this project?
Answer these in the Description
Make it shine
Start with the most important things so people can continue their search if this
project is not what they are looking for.
Make this section shine: If your project has a front-end include a screenshot here; if
there is a demo or there are live examples, include links; if there are features, list
them.
2. How to use what you’ve made
Comprehensive guide to get started
The basics a user needs to know to use the project. Be sure to document every
necessary step and some common edge cases to get started and point to relevant
further documentation if available.
These sections can be quite technical. You don’t need to explain everything as and
you can expect users to search the web for what they don’t understand.
We find it works really well if you follow a two-step approach to develop the content
for this section: first, help someone setup the site who has never done it before, and
then write down the exact instructions. Next, ask someone to follow those
instructions and see if you’ve missed anything.
— 18F: Making READMEs Readable
Keep it current
Make sure that these sections are always up-to-date. If you change functionality in
the code, update the README concurrently.
Simplify
Tip: If this section gets long and tedious it might be worth it to try and simplify the
process of getting started, as ease of use is one of the key reasons for developers
to use a project.
3. How to contribute and ask questions
CONTRIBUTING
You should describe how to get involved in the project, contribute and ask
questions.
If you have a CONTRIBUTING file, be sure to point to it from your README.
You might need to explain more about
● Nomenclature: what words are used in the code and what do they mean
● Governance: how do contributions work and who makes decisions
● Architecture: what is the structure you’ve decided on, and what do
developers need to know about this
● Dependencies: what software does this project depend on
● Licence: what licence the project has and point to the LICENCE file.
Break long sections out into separate files.
● Welcome message!
● Project description & vision
● Links to:
○ How to contribute & get
involved
○ License
○ Code of Conduct, reporting
info
A closer look at a README:
README example: STEMM Role Models App
HOW can we communicate better?
Image from xkcd, editor at http://splasho.com/upgoer5/
XKCD explained a complicated
subject using only the ten
hundred words people use the
most often
Jargon are terms with a
specific meaning in a given
field, obscure for people
outside that field. It can
exclude potential
contributors.
Let’s try this together.
http://splasho.com/upgoer5/
Try to explain your project using only the
ten hundred most used words
Breakout Rooms of 3-4, 10min
● Purple Booth’s README Template
● Standard README - style specification
● PaperBadger - project README
● Thoughtbot’s Blog on How to Write a Good README
● Matias Singer’s curated List of Awesome READMES
Good README Examples
Thanks
This presentation (excluding where
other licences are mentioned – for
example the photos – and
trademarks/logos) is licenced CC0 and
Public Domain, do with its content
what you think will help the world.
City of
Amsterdam

More Related Content

Similar to The README

Leading an open source project as a startup
Leading an open source project as a startupLeading an open source project as a startup
Leading an open source project as a startup
Nicolas Garnier
 
Leading An Open Source Project As A Startup
Leading An Open Source Project As A StartupLeading An Open Source Project As A Startup
Leading An Open Source Project As A Startup
Mailjet
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developer
Netcetera
 
A holistic guide to annotated wireframes for app development
A holistic guide to annotated wireframes for app developmentA holistic guide to annotated wireframes for app development
A holistic guide to annotated wireframes for app development
Concetto Labs
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
jeetendra mandal
 
IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE
 
Basics of-software-development
Basics of-software-developmentBasics of-software-development
Basics of-software-developmentlukaramishvili
 
How to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guideHow to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guide
SnehaDas60
 
COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON Jitender Suryavansh
 
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Carlo Longino
 
What is the Easiest Way to Hire a React Developer?
What is the Easiest Way to Hire a React Developer?What is the Easiest Way to Hire a React Developer?
What is the Easiest Way to Hire a React Developer?
BOSC Tech Labs
 
IT 700 Final Project Guidelines and RubricOverviewAs the fin.docx
IT 700 Final Project Guidelines and RubricOverviewAs the fin.docxIT 700 Final Project Guidelines and RubricOverviewAs the fin.docx
IT 700 Final Project Guidelines and RubricOverviewAs the fin.docx
ADDY50
 
UX class presentation
UX class presentationUX class presentation
UX class presentationTheo V
 
Learn To Be A Good Open Source Project Owner
Learn To Be A Good Open Source Project OwnerLearn To Be A Good Open Source Project Owner
Learn To Be A Good Open Source Project Owner
Orangescrum
 
AP CS PD 1.3 Week 4.pptx
AP CS PD 1.3 Week 4.pptxAP CS PD 1.3 Week 4.pptx
AP CS PD 1.3 Week 4.pptx
afsheenfaiq2
 
Professional project writing
Professional project writingProfessional project writing
Professional project writingjkmaster
 
4 D Techniqes
4 D Techniqes4 D Techniqes
4 D Techniqesvsnmurthy
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101
POSSCON
 
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfHow to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
Marie Weaver
 

Similar to The README (20)

Leading an open source project as a startup
Leading an open source project as a startupLeading an open source project as a startup
Leading an open source project as a startup
 
Leading An Open Source Project As A Startup
Leading An Open Source Project As A StartupLeading An Open Source Project As A Startup
Leading An Open Source Project As A Startup
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developer
 
A holistic guide to annotated wireframes for app development
A holistic guide to annotated wireframes for app developmentA holistic guide to annotated wireframes for app development
A holistic guide to annotated wireframes for app development
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
 
IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...
 
Basics of-software-development
Basics of-software-developmentBasics of-software-development
Basics of-software-development
 
How to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guideHow to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guide
 
COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON
 
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
Best Practices for API Adoption - WIP Factory presentation for AnyPresence we...
 
What is the Easiest Way to Hire a React Developer?
What is the Easiest Way to Hire a React Developer?What is the Easiest Way to Hire a React Developer?
What is the Easiest Way to Hire a React Developer?
 
IT 700 Final Project Guidelines and RubricOverviewAs the fin.docx
IT 700 Final Project Guidelines and RubricOverviewAs the fin.docxIT 700 Final Project Guidelines and RubricOverviewAs the fin.docx
IT 700 Final Project Guidelines and RubricOverviewAs the fin.docx
 
UX class presentation
UX class presentationUX class presentation
UX class presentation
 
Learn To Be A Good Open Source Project Owner
Learn To Be A Good Open Source Project OwnerLearn To Be A Good Open Source Project Owner
Learn To Be A Good Open Source Project Owner
 
AP CS PD 1.3 Week 4.pptx
AP CS PD 1.3 Week 4.pptxAP CS PD 1.3 Week 4.pptx
AP CS PD 1.3 Week 4.pptx
 
Professional project writing
Professional project writingProfessional project writing
Professional project writing
 
4 D Techniqes
4 D Techniqes4 D Techniqes
4 D Techniqes
 
4 D Techniqes
4 D Techniqes4 D Techniqes
4 D Techniqes
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101
 
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfHow to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
 

More from Boris van Hoytema

Digitale ethiek
Digitale ethiekDigitale ethiek
Digitale ethiek
Boris van Hoytema
 
An introduction to Open Source for Cities
An introduction to Open Source for CitiesAn introduction to Open Source for Cities
An introduction to Open Source for Cities
Boris van Hoytema
 
Smart cities and livable networks future sessions, manchester, march 22nd 2018
Smart cities and livable networks   future sessions, manchester, march 22nd 2018Smart cities and livable networks   future sessions, manchester, march 22nd 2018
Smart cities and livable networks future sessions, manchester, march 22nd 2018
Boris van Hoytema
 
Open source for the city
Open source for the cityOpen source for the city
Open source for the city
Boris van Hoytema
 
Principes voor hanteren open source, VNG Realisatie common ground field lab
Principes voor hanteren open source, VNG Realisatie common ground field labPrincipes voor hanteren open source, VNG Realisatie common ground field lab
Principes voor hanteren open source, VNG Realisatie common ground field lab
Boris van Hoytema
 
VNG Realisatie common ground field day 2018 Amsterdam Open Source
VNG Realisatie common ground field day 2018   Amsterdam Open SourceVNG Realisatie common ground field day 2018   Amsterdam Open Source
VNG Realisatie common ground field day 2018 Amsterdam Open Source
Boris van Hoytema
 
Open Source Summit Paris '17 Amsterdam Open Source
Open Source Summit Paris '17 Amsterdam Open SourceOpen Source Summit Paris '17 Amsterdam Open Source
Open Source Summit Paris '17 Amsterdam Open Source
Boris van Hoytema
 
City of Amsterdam: High velocity development
City of Amsterdam: High velocity developmentCity of Amsterdam: High velocity development
City of Amsterdam: High velocity development
Boris van Hoytema
 

More from Boris van Hoytema (8)

Digitale ethiek
Digitale ethiekDigitale ethiek
Digitale ethiek
 
An introduction to Open Source for Cities
An introduction to Open Source for CitiesAn introduction to Open Source for Cities
An introduction to Open Source for Cities
 
Smart cities and livable networks future sessions, manchester, march 22nd 2018
Smart cities and livable networks   future sessions, manchester, march 22nd 2018Smart cities and livable networks   future sessions, manchester, march 22nd 2018
Smart cities and livable networks future sessions, manchester, march 22nd 2018
 
Open source for the city
Open source for the cityOpen source for the city
Open source for the city
 
Principes voor hanteren open source, VNG Realisatie common ground field lab
Principes voor hanteren open source, VNG Realisatie common ground field labPrincipes voor hanteren open source, VNG Realisatie common ground field lab
Principes voor hanteren open source, VNG Realisatie common ground field lab
 
VNG Realisatie common ground field day 2018 Amsterdam Open Source
VNG Realisatie common ground field day 2018   Amsterdam Open SourceVNG Realisatie common ground field day 2018   Amsterdam Open Source
VNG Realisatie common ground field day 2018 Amsterdam Open Source
 
Open Source Summit Paris '17 Amsterdam Open Source
Open Source Summit Paris '17 Amsterdam Open SourceOpen Source Summit Paris '17 Amsterdam Open Source
Open Source Summit Paris '17 Amsterdam Open Source
 
City of Amsterdam: High velocity development
City of Amsterdam: High velocity developmentCity of Amsterdam: High velocity development
City of Amsterdam: High velocity development
 

Recently uploaded

Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 

Recently uploaded (20)

Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 

The README

  • 1. Gemeente Amsterdam The README The most important content in your project.
  • 2. Boris van Hoytema “Grow an Open Source ecosystem for cities” boris@publiccode.net @bvhme Open Source Adviseur (extern) Director Consortium Open Source Development Manager The Foundation For Public Code 2
  • 3. Shopfront for your project The README is the first thing almost anyone sees and perhaps one of the critical parts of the project. It serves as an advertisement for the product, indicator of for what users it can be relevant, the primary user’s guide and the way to get new collaborators up to speed.
  • 4. Keep your users in mind ● Your teammates ● People new to your team ● (Potential) users of our projects ● Contributors, both in and external ● People interested in your work
  • 5. 1. The project name and description
  • 6. The README is an introduction. It should assume the reader knows absolutely nothing about the software and should provide a brief introduction. If software were a screenplay, the README would be the elevator pitch. If a person finishes reading the first 10 lines of frobnicator/README and still does not know if frobnicator is a widget library, accounting software, or a video game, then the author of the README has failed. — William Pursell on StackOverflow
  • 7. The description is a high-level overview of what the project is for, what it does and in what way it should be used. The description can double as a mission to keep you focussed and on track, so it is wise to define this as early in the process as possible. Description
  • 8. Be sure to answer these questions in your description: ● What is this project? ● How does it work? ● Who are the users? ● What is the benefit for the users? ● What is the goal of this project? Answer these in the Description
  • 9. Make it shine Start with the most important things so people can continue their search if this project is not what they are looking for. Make this section shine: If your project has a front-end include a screenshot here; if there is a demo or there are live examples, include links; if there are features, list them.
  • 10. 2. How to use what you’ve made
  • 11. Comprehensive guide to get started The basics a user needs to know to use the project. Be sure to document every necessary step and some common edge cases to get started and point to relevant further documentation if available. These sections can be quite technical. You don’t need to explain everything as and you can expect users to search the web for what they don’t understand.
  • 12. We find it works really well if you follow a two-step approach to develop the content for this section: first, help someone setup the site who has never done it before, and then write down the exact instructions. Next, ask someone to follow those instructions and see if you’ve missed anything. — 18F: Making READMEs Readable
  • 13. Keep it current Make sure that these sections are always up-to-date. If you change functionality in the code, update the README concurrently.
  • 14. Simplify Tip: If this section gets long and tedious it might be worth it to try and simplify the process of getting started, as ease of use is one of the key reasons for developers to use a project.
  • 15. 3. How to contribute and ask questions
  • 16. CONTRIBUTING You should describe how to get involved in the project, contribute and ask questions. If you have a CONTRIBUTING file, be sure to point to it from your README.
  • 17. You might need to explain more about ● Nomenclature: what words are used in the code and what do they mean ● Governance: how do contributions work and who makes decisions ● Architecture: what is the structure you’ve decided on, and what do developers need to know about this ● Dependencies: what software does this project depend on ● Licence: what licence the project has and point to the LICENCE file. Break long sections out into separate files.
  • 18. ● Welcome message! ● Project description & vision ● Links to: ○ How to contribute & get involved ○ License ○ Code of Conduct, reporting info A closer look at a README: README example: STEMM Role Models App
  • 19. HOW can we communicate better? Image from xkcd, editor at http://splasho.com/upgoer5/ XKCD explained a complicated subject using only the ten hundred words people use the most often Jargon are terms with a specific meaning in a given field, obscure for people outside that field. It can exclude potential contributors.
  • 20. Let’s try this together. http://splasho.com/upgoer5/ Try to explain your project using only the ten hundred most used words Breakout Rooms of 3-4, 10min
  • 21. ● Purple Booth’s README Template ● Standard README - style specification ● PaperBadger - project README ● Thoughtbot’s Blog on How to Write a Good README ● Matias Singer’s curated List of Awesome READMES Good README Examples
  • 22. Thanks This presentation (excluding where other licences are mentioned – for example the photos – and trademarks/logos) is licenced CC0 and Public Domain, do with its content what you think will help the world. City of Amsterdam