├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── _articles ├── building-communities-of-contributors.md ├── building-communities-of-contributors │ ├── bring-on-contributors-using-personas-and-pathways.md │ ├── understand-meaningful-participation-and-distributed-leadership.md │ ├── visualize-your-support-network.md │ ├── write-a-code-of-conduct.md │ └── write-contributor-guidelines.md ├── get-your-project-online.md ├── get-your-project-online │ ├── introducing-github-for-collaborative-work-and-version-control.md │ ├── project-set-up-for-collaboration-with-github.md │ ├── sharing-your-work-in-the-open.md │ └── the-github-interface-and-markdown.md ├── github-for-collaboration.md ├── github-for-collaboration │ ├── collaborative-workflow-for-contributions.md │ └── getting-around-github.md ├── glossary.md ├── introduction-to-open-leadership.md ├── introduction-to-open-leadership │ ├── getting-to-know-mozilla-and-the-leadership-network.md │ ├── introduction-to-working-open.md │ ├── stating-your-project-vision.md │ └── understanding-the-project-lead-role.md ├── open-communications.md ├── open-communications │ └── communicating-openly-about-your-work.md ├── open-leadership-outro-and-next-steps.md ├── open-leadership-outro-and-next-steps │ └── next-steps-for-open-leadership.md ├── open-project-maintenance.md ├── open-project-maintenance │ └── open-project-maintenance.md ├── opening-your-project.md ├── opening-your-project │ ├── develop-an-open-project-strategy-with-open-canvas.md │ ├── start-your-project-roadmap.md │ └── write-a-great-project-readme.md ├── readme.md ├── running-awesome-community-events.md └── running-awesome-community-events │ ├── designing-an-open-event.md │ ├── documenting-and-reporting.md │ ├── event-follow-up.md │ └── event-planning-and-facilitation.md ├── _config.yml ├── _includes ├── contents.html ├── footer.html ├── navigation.html └── videowrapper.html ├── _layouts ├── default.html ├── home.html └── page.html ├── contents.html ├── css ├── main.css ├── mofo-bootstrap.css └── syntax.css ├── img ├── cc-logo.svg ├── commit-message.png ├── create-issue.png ├── create-milestone.gif ├── create-pull-req-1.png ├── create-pull-req-2.png ├── create-pull-req-3.png ├── edit-button.png ├── favicon.png ├── footer-icon-conduct.svg ├── footer-icon-email.svg ├── footer-icon-github.svg ├── footer-icon-help.svg ├── footer-icon-irc.svg ├── footer-icon-terms.svg ├── footer-icon-twitter.svg ├── githib-projects.png ├── github-markdown.png ├── hero.png ├── mozilla-wordmark-white.svg ├── new-repository-description.png ├── new-repository-license-and-readme.png ├── new-repository-name.png ├── new-repository.png ├── preview-changes-readme.png └── sign-up-github.png └── index.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | _site 3 | .sass-cache 4 | .jekyll-metadata 5 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Participation Guidelines 2 | 3 | This project respects Mozilla's [community participation guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). These guidelines cover our behaviour as participants, facilitators, space wranglers, staff, volunteers, vendors, and anyone else involved in making the MozFest possible. 4 | 5 | ## How to treat each other 6 | 7 | * Be respectful and welcoming 8 | * Try to understand different perspectives 9 | * Do not threaten violence 10 | * Empower others 11 | * Strive for excellence 12 | * Don’t expect to agree with every decision 13 | 14 | ## Inclusion and Diversity 15 | 16 | The Mozilla Project welcomes and encourages participation by everyone. It doesn’t matter how you identify yourself or how others perceive you: we welcome you. 17 | 18 | We welcome contributions from everyone as long as they interact constructively with our community, including, but not limited to people of varied age, culture, ethnicity, gender, gender-identity, language, race, sexual orientation, geographical location and religious views. 19 | 20 | Mozilla-based activities should be inclusive and should support such diversity. 21 | 22 | ## Working in the Open 23 | 24 | Because working open is one of our core values, MozFest program planning is done in the open on Github (check out our repo [here](https://github.com/MozillaFoundation/mozfest-program-2016)). We hope participants will benefit from this culture of transparency and collaboration during the Festival, and will continue to work with an open ethos in their projects after Mozfest. Learn more about [how we work open at Mozilla](https://wiki.mozilla.org/Working_open). 25 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Open Leadership Training Series 2 | 3 | Thank you for your interest in contributing to the Open Leadership Training Series :tada:! 4 | 5 | The Open Leadership Training Series (OLTS) teaches you best practices in Working Open. 6 | 7 | This documents is a set of guidelines for contributing to the OLTS on GitHub. These are guidelines, not rules. This guide is meant to make it easy for you to get involved. 8 | 9 | * [Participation guidelines](#participation-guidelines) 10 | * [What we're working on](#what-were-working-on) 11 | * [How to submit changes](#how-to-submit-changes) 12 | * [How to report bugs](#how-to-report-bugs) 13 | * [Communication channels](#communication-channels) 14 | 15 | ## Participation guidelines 16 | 17 | This project adheres to a [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to abby@mozillafoundation.org. 18 | 19 | ## What we're working on 20 | 21 | Take a look at the issues in our [current milestone](https://github.com/mozilla/open-leadership-training-series/issues) or browse some [good first bugs](https://github.com/mozilla/open-leadership-training-series/labels/good%20first%20bug) to get started! 22 | 23 | ## How to submit changes 24 | 25 | Once you've identified one of the issues above that you feel you can contribute to, you're ready to make a change to the project repository! 26 | 27 | 1. **[Fork](https://help.github.com/articles/fork-a-repo/) this repository**. This makes your own version of this project you can edit and use. 28 | 2. **[Make your changes](https://guides.github.com/activities/forking/#making-changes)**! You can do this in the GitHub interface on your own local machine. Once you're happy with your changes... 29 | 3. **Submit a [pull request](https://help.github.com/articles/proposing-changes-to-a-project-with-pull-requests/)**. This opens a discussion around your project and lets the project lead know you are proposing changes. 30 | 31 | First time contributing to open source? Check out this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). 32 | 33 | ## Maintainers 34 | 35 | This repository is currently maintained by [@acabunoc](http://github.com/acabunoc), [@betatim](http://github.com/betatim) and [@zee-moz](http://github.com/zee-moz). We like to keep all discussions [in this repo open](https://github.com/mozilla/open-leadership-training-series/issues/new) but feel free to reach out or ping us directly! 36 | 37 | ## How to report bugs 38 | 39 | Notice a mistake? Please file any bugs, requests, or questions in [our issue tracker](https://github.com/mozilla/open-leadership-training-series/issues) 40 | 41 | ## Communication channels 42 | 43 | Come and say hi in [our chat room](https://chat.mozillafoundation.org/mozilla/channels/mozfest-open-projects)! We're friendly. 44 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | gem "github-pages" 3 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | activesupport (4.2.9) 5 | i18n (~> 0.7) 6 | minitest (~> 5.1) 7 | thread_safe (~> 0.3, >= 0.3.4) 8 | tzinfo (~> 1.1) 9 | addressable (2.5.2) 10 | public_suffix (>= 2.0.2, < 4.0) 11 | coffee-script (2.4.1) 12 | coffee-script-source 13 | execjs 14 | coffee-script-source (1.11.1) 15 | colorator (1.1.0) 16 | commonmarker (0.17.8) 17 | ruby-enum (~> 0.5) 18 | concurrent-ruby (1.0.5) 19 | ethon (0.11.0) 20 | ffi (>= 1.3.0) 21 | execjs (2.7.0) 22 | faraday (0.14.0) 23 | multipart-post (>= 1.2, < 3) 24 | ffi (1.9.21) 25 | forwardable-extended (2.6.0) 26 | gemoji (3.0.0) 27 | github-pages (177) 28 | activesupport (= 4.2.9) 29 | github-pages-health-check (= 1.3.5) 30 | jekyll (= 3.6.2) 31 | jekyll-avatar (= 0.5.0) 32 | jekyll-coffeescript (= 1.0.2) 33 | jekyll-commonmark-ghpages (= 0.1.5) 34 | jekyll-default-layout (= 0.1.4) 35 | jekyll-feed (= 0.9.2) 36 | jekyll-gist (= 1.4.1) 37 | jekyll-github-metadata (= 2.9.3) 38 | jekyll-mentions (= 1.2.0) 39 | jekyll-optional-front-matter (= 0.3.0) 40 | jekyll-paginate (= 1.1.0) 41 | jekyll-readme-index (= 0.2.0) 42 | jekyll-redirect-from (= 0.12.1) 43 | jekyll-relative-links (= 0.5.2) 44 | jekyll-remote-theme (= 0.2.3) 45 | jekyll-sass-converter (= 1.5.0) 46 | jekyll-seo-tag (= 2.3.0) 47 | jekyll-sitemap (= 1.1.1) 48 | jekyll-swiss (= 0.4.0) 49 | jekyll-theme-architect (= 0.1.0) 50 | jekyll-theme-cayman (= 0.1.0) 51 | jekyll-theme-dinky (= 0.1.0) 52 | jekyll-theme-hacker (= 0.1.0) 53 | jekyll-theme-leap-day (= 0.1.0) 54 | jekyll-theme-merlot (= 0.1.0) 55 | jekyll-theme-midnight (= 0.1.0) 56 | jekyll-theme-minimal (= 0.1.0) 57 | jekyll-theme-modernist (= 0.1.0) 58 | jekyll-theme-primer (= 0.5.2) 59 | jekyll-theme-slate (= 0.1.0) 60 | jekyll-theme-tactile (= 0.1.0) 61 | jekyll-theme-time-machine (= 0.1.0) 62 | jekyll-titles-from-headings (= 0.5.0) 63 | jemoji (= 0.8.1) 64 | kramdown (= 1.16.2) 65 | liquid (= 4.0.0) 66 | listen (= 3.0.6) 67 | mercenary (~> 0.3) 68 | minima (= 2.1.1) 69 | nokogiri (>= 1.8.1, < 2.0) 70 | rouge (= 2.2.1) 71 | terminal-table (~> 1.4) 72 | github-pages-health-check (1.3.5) 73 | addressable (~> 2.3) 74 | net-dns (~> 0.8) 75 | octokit (~> 4.0) 76 | public_suffix (~> 2.0) 77 | typhoeus (~> 0.7) 78 | html-pipeline (2.7.1) 79 | activesupport (>= 2) 80 | nokogiri (>= 1.4) 81 | i18n (0.9.5) 82 | concurrent-ruby (~> 1.0) 83 | jekyll (3.6.2) 84 | addressable (~> 2.4) 85 | colorator (~> 1.0) 86 | jekyll-sass-converter (~> 1.0) 87 | jekyll-watch (~> 1.1) 88 | kramdown (~> 1.14) 89 | liquid (~> 4.0) 90 | mercenary (~> 0.3.3) 91 | pathutil (~> 0.9) 92 | rouge (>= 1.7, < 3) 93 | safe_yaml (~> 1.0) 94 | jekyll-avatar (0.5.0) 95 | jekyll (~> 3.0) 96 | jekyll-coffeescript (1.0.2) 97 | coffee-script (~> 2.2) 98 | coffee-script-source (~> 1.11.1) 99 | jekyll-commonmark (1.1.0) 100 | commonmarker (~> 0.14) 101 | jekyll (>= 3.0, < 4.0) 102 | jekyll-commonmark-ghpages (0.1.5) 103 | commonmarker (~> 0.17.6) 104 | jekyll-commonmark (~> 1) 105 | rouge (~> 2) 106 | jekyll-default-layout (0.1.4) 107 | jekyll (~> 3.0) 108 | jekyll-feed (0.9.2) 109 | jekyll (~> 3.3) 110 | jekyll-gist (1.4.1) 111 | octokit (~> 4.2) 112 | jekyll-github-metadata (2.9.3) 113 | jekyll (~> 3.1) 114 | octokit (~> 4.0, != 4.4.0) 115 | jekyll-mentions (1.2.0) 116 | activesupport (~> 4.0) 117 | html-pipeline (~> 2.3) 118 | jekyll (~> 3.0) 119 | jekyll-optional-front-matter (0.3.0) 120 | jekyll (~> 3.0) 121 | jekyll-paginate (1.1.0) 122 | jekyll-readme-index (0.2.0) 123 | jekyll (~> 3.0) 124 | jekyll-redirect-from (0.12.1) 125 | jekyll (~> 3.3) 126 | jekyll-relative-links (0.5.2) 127 | jekyll (~> 3.3) 128 | jekyll-remote-theme (0.2.3) 129 | jekyll (~> 3.5) 130 | rubyzip (>= 1.2.1, < 3.0) 131 | typhoeus (>= 0.7, < 2.0) 132 | jekyll-sass-converter (1.5.0) 133 | sass (~> 3.4) 134 | jekyll-seo-tag (2.3.0) 135 | jekyll (~> 3.3) 136 | jekyll-sitemap (1.1.1) 137 | jekyll (~> 3.3) 138 | jekyll-swiss (0.4.0) 139 | jekyll-theme-architect (0.1.0) 140 | jekyll (~> 3.5) 141 | jekyll-seo-tag (~> 2.0) 142 | jekyll-theme-cayman (0.1.0) 143 | jekyll (~> 3.5) 144 | jekyll-seo-tag (~> 2.0) 145 | jekyll-theme-dinky (0.1.0) 146 | jekyll (~> 3.5) 147 | jekyll-seo-tag (~> 2.0) 148 | jekyll-theme-hacker (0.1.0) 149 | jekyll (~> 3.5) 150 | jekyll-seo-tag (~> 2.0) 151 | jekyll-theme-leap-day (0.1.0) 152 | jekyll (~> 3.5) 153 | jekyll-seo-tag (~> 2.0) 154 | jekyll-theme-merlot (0.1.0) 155 | jekyll (~> 3.5) 156 | jekyll-seo-tag (~> 2.0) 157 | jekyll-theme-midnight (0.1.0) 158 | jekyll (~> 3.5) 159 | jekyll-seo-tag (~> 2.0) 160 | jekyll-theme-minimal (0.1.0) 161 | jekyll (~> 3.5) 162 | jekyll-seo-tag (~> 2.0) 163 | jekyll-theme-modernist (0.1.0) 164 | jekyll (~> 3.5) 165 | jekyll-seo-tag (~> 2.0) 166 | jekyll-theme-primer (0.5.2) 167 | jekyll (~> 3.5) 168 | jekyll-github-metadata (~> 2.9) 169 | jekyll-seo-tag (~> 2.2) 170 | jekyll-theme-slate (0.1.0) 171 | jekyll (~> 3.5) 172 | jekyll-seo-tag (~> 2.0) 173 | jekyll-theme-tactile (0.1.0) 174 | jekyll (~> 3.5) 175 | jekyll-seo-tag (~> 2.0) 176 | jekyll-theme-time-machine (0.1.0) 177 | jekyll (~> 3.5) 178 | jekyll-seo-tag (~> 2.0) 179 | jekyll-titles-from-headings (0.5.0) 180 | jekyll (~> 3.3) 181 | jekyll-watch (1.5.1) 182 | listen (~> 3.0) 183 | jemoji (0.8.1) 184 | activesupport (~> 4.0, >= 4.2.9) 185 | gemoji (~> 3.0) 186 | html-pipeline (~> 2.2) 187 | jekyll (>= 3.0) 188 | kramdown (1.16.2) 189 | liquid (4.0.0) 190 | listen (3.0.6) 191 | rb-fsevent (>= 0.9.3) 192 | rb-inotify (>= 0.9.7) 193 | mercenary (0.3.6) 194 | mini_portile2 (2.3.0) 195 | minima (2.1.1) 196 | jekyll (~> 3.3) 197 | minitest (5.11.3) 198 | multipart-post (2.0.0) 199 | net-dns (0.8.0) 200 | nokogiri (1.8.2) 201 | mini_portile2 (~> 2.3.0) 202 | octokit (4.8.0) 203 | sawyer (~> 0.8.0, >= 0.5.3) 204 | pathutil (0.16.1) 205 | forwardable-extended (~> 2.6) 206 | public_suffix (2.0.5) 207 | rb-fsevent (0.10.2) 208 | rb-inotify (0.9.10) 209 | ffi (>= 0.5.0, < 2) 210 | rouge (2.2.1) 211 | ruby-enum (0.7.2) 212 | i18n 213 | rubyzip (1.2.1) 214 | safe_yaml (1.0.4) 215 | sass (3.5.5) 216 | sass-listen (~> 4.0.0) 217 | sass-listen (4.0.0) 218 | rb-fsevent (~> 0.9, >= 0.9.4) 219 | rb-inotify (~> 0.9, >= 0.9.7) 220 | sawyer (0.8.1) 221 | addressable (>= 2.3.5, < 2.6) 222 | faraday (~> 0.8, < 1.0) 223 | terminal-table (1.8.0) 224 | unicode-display_width (~> 1.1, >= 1.1.1) 225 | thread_safe (0.3.6) 226 | typhoeus (0.8.0) 227 | ethon (>= 0.8.0) 228 | tzinfo (1.2.5) 229 | thread_safe (~> 0.1) 230 | unicode-display_width (1.3.0) 231 | 232 | PLATFORMS 233 | ruby 234 | 235 | DEPENDENCIES 236 | github-pages 237 | 238 | BUNDLED WITH 239 | 1.16.1 240 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Mozilla Foundation and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Leadership Training Series 2 | How to work openly to build collaboratively 3 | 4 | This Open Leadership Training Series teaches you best practices in “working open” -- a way of working where: 5 | 6 | * **_everyone_ is invited to collaborate on something amazing,** 7 | * **and any new product or knowledge is shared widely and freely.** 8 | 9 | This is for anyone starting up or leading open projects-- project leads, collaborators, or small groups of co-leaders responsible for project success and growth. 10 | 11 | ## Contributing 12 | 13 | Thanks for your interest in contributing to the Open Leadership Training Series! There are many ways to contribute. To get started, take a look at [CONTRIBUTING.md](CONTRIBUTING.md). 14 | 15 | ## Run locally 16 | 17 | You'll need to install [Jekyll](https://jekyllrb.com/), [Ruby](https://www.ruby-lang.org/en/) and [Bundler](http://bundler.io/) to run this site locally. 18 | 19 | 1. `bundle install` 20 | 2. `bundle exec jekyll serve` 21 | 3. Open [http://localhost:4000/open-leadership-training-series/](http://localhost:4000/open-leadership-training-series/) in your favourite browser! 22 | 23 | ## Participation Guidelines 24 | 25 | This project adheres to a [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to abby@mozillafoundation.org. 26 | 27 | ## Contributors 28 | 29 | The material this repository is based on was written by [@zee-moz](https://github.com/zee-moz) and [@chadsansing](https://github.com/chadsansing). Many thanks to the wonderful contributors who've helped since to improve this series: 30 | 31 | * David Bild ([@dbild](https://github.com/dbild)) 32 | * Zannah Marsh ([@zee-moz](https://github.com/zee-moz)) 33 | * Tim Riches 34 | * Holly Robbins ([@hvrobbins](https://github.com/hvrobbins)) 35 | * Chad Sansing ([@chadsansing](https://github.com/chadsansing)) 36 | * Robert Schaefer ([@schae234](https://github.com/schae234)) 37 | 38 | As well as all [contributors][gh-contributors] on GitHub. 39 | 40 | ## License 41 | 42 | Non-software content in this project is licensed under a [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/) license. 43 | 44 | 45 | [gh-contributors]: https://github.com/mozilla/open-leadership-training-series/network/members 46 | -------------------------------------------------------------------------------- /_articles/building-communities-of-contributors.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Building Communities" 4 | module: "3" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/building-communities-of-contributors/visualize-your-support-network.md 8 | - _articles/building-communities-of-contributors/bring-on-contributors-using-personas-and-pathways.md 9 | - _articles/building-communities-of-contributors/understand-meaningful-participation-and-distributed-leadership.md 10 | - _articles/building-communities-of-contributors/write-a-code-of-conduct.md 11 | - _articles/building-communities-of-contributors/write-contributor-guidelines.md 12 | following: _articles/building-communities-of-contributors/visualize-your-support-network.md 13 | --- 14 | 15 | Leading an open project, realizing a vision, collaborating with smart people to make cool stuff on the web-- this is thrilling, energizing work! And as much as you’re driven by project creation, goals, and aims, in the end working open is really all about relationships: the working relationships you establish with your contributors, how those contributors come together to grow into a community, and how you as a leader can welcome them, and help them feel valued, engaged, and excited by the project. In this module you’ll learn how to build two kinds of communities-- the large, vibrant, ever changing and growing community of open project contributors, and smaller, closer-knit network of people who support your leadership. 16 | -------------------------------------------------------------------------------- /_articles/building-communities-of-contributors/bring-on-contributors-using-personas-and-pathways.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Contributor Personas & Pathways" 4 | module: "3.2" 5 | date: 2016-10-06 14:05:56 6 | time: "45 min" 7 | following: _articles/building-communities-of-contributors/understand-meaningful-participation-and-distributed-leadership.md 8 | summary: "Learn how to bring contributors onto your project by using tools called \"personas\" and \"pathways.\" These tools will help you plan and test how you'll interact with new contributors, and imagine what is really involved for the contributor to succeed." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "A writing and thinking assignment. It can be done alone or you can invite a supporter or community member to help!" 11 | materials: "Pen or pencil and paper, or a computer with word processing software" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Personas 17 | 18 | A “persona” is a tool commonly used in the design world, to help create products and experiences that work for real world users (aka “user-centered design”). This short video describes a bit more about personas and how they're typically used. 19 | 20 | {% include videowrapper.html 21 | url="https://www.filepicker.io/api/file/Xx83owiQdyyBMfJg6YCg" 22 | title="About Personas, Zannah Marsh" %} 23 | 24 | To recap, the persona is a description of a user. Personas should: 25 | 26 | * describe an imaginary user 27 | * be based on observations or understandings of actual potential or current users 28 | * be detailed enough so it feels real to the designer, so they can imagine the persona’s needs and responses to a product or project 29 | 30 | Here is a sample persona used by the Mozilla Science Lab to help design its Study Group Program, a effort to get researchers to learn to code and collaborate together informally. 31 | 32 | >Rashid is a PhD student in astronomy at a university in Southern England. He’s outgoing and a snappy dresser, favoring skinny jeans and colorful cardigans. He lives in on-campus housing and after a long day at the lab he usually rushes home to see his wife and infant son. Rashid took an intro Java programming course long ago, as an undergrad, but his research now demands Python skills. Because of the competitive nature of his lab, he’s reluctant to ask colleagues for help. He follows Mozilla Science Lab on Twitter, has some exposure to and interest to Open Science, but is hesitant to share his data for fear of being “scooped” on an important discovery. 33 | 34 | Once we have created a persona, we can imagine how they might interact with our project-- the pathway they to get involved and to sustain involvement. 35 | 36 | ### Pathways 37 | 38 | Once we have created a persona, we can imagine how they might interact with our project-- the pathway they to get involved and to sustain involvement. Let's imagine that this process of engagement has a few phases. 39 | 40 | 1. Discovery - How they first hear about the project or group. 41 | 2. First Contact - How they first engage with the project or group, their initial interaction. 42 | 3. Participation - How they first participate or contribute. 43 | 4. Sustained Participation - How their contribution or involvement can continue. 44 | 5. Networked Participation - How they may network within the community. 45 | 6. Leadership - How they may take on some additional responsibility on the project, or begin to lead. 46 | 47 | If you are working with a good persona, you can clearly see a progression of steps. Here’s an example (using Rashid). 48 | 49 | >1. Discovery - _Rashid sees poster advertising study group around campus._ 50 | 2. First Contact - _Attends a meeting of the group, and is encouraged to return in a follow up email._ 51 | 3. Participation - _Asks and answers questions during the help session._ 52 | 4. Sustained Participation - _Attends several "hackathons" sessions throughout the semester._ 53 | 5. Networked Participation - _Invites some of his colleagues from his lab to a session._ 54 | 6. Leadership - _Agrees to present an intro session on Java, and creates a learning resource to contribute to the group's repo._ 55 | 56 | When you think through a pathway, you should begin to realize, what needs to be in place to move your persona forward. You’ll begin to see potential pitfalls for your persona, in terms of skills, time, and motivation. Once you have a sense of this story, you can begin to list solutions to any challenges. Here are examples of things that the project lead would need to do, or put in place for Rashid’s pathway to work: 57 | 58 | * Publicize group meetings via posters around campus as well as on twitter and via email blasts. 59 | * Collect emails of new group attendees for follow up messages. 60 | * Offer an online intro to GitHub for those who join mid-semester and missed the first sessions. 61 | * Schedule meetings for daytimes and early evenings to avoid conflicts with family schedules. 62 | 63 | ### {{ site.assignment }} Create a Persona and Pathway for Your Project 64 | 65 | 1. Brainstorm. Read through the two following questions and come up with answers. You can do this individually or as a group. If working in a group, brainstorm individually and share afterwards. Sticky notes are great for this task, for recording ideas during the brainstorm, and sharing and organizing the group’s ideas. Spend about 3 minutes on each question. 66 | * Who is the person you most need in your community or on your project? Think of skills and attributes-- but, since this is an imaginary person, also give them identifying details, a brief life story, etc. 67 | * What are that person's motivations and needs? Think of what might draw them to your project, what value they would gain from it, how it fits into their long term goals. 68 | 69 | 2. Create a short written description of your persona. See above "Rashid" for an example. Spend about 4 minutes on this task. If you like, draw a picture of this person! 70 | 3. Plan a Pathway Using the structure above (Discovery → Leadership), describe a pathway for your persona. What are the steps through this project? What could be stumbling blocks for user? 71 | 4. List your Solutions For each potential stumbling block or barrier your user might encounter, list a solution that you'll work into your design of your group or project. 72 | 73 | You’ll likely need more than one persona for your project, as different groups of users will have different needs and motivations. Repeat this exercise as needed. 74 | 75 | Now that you’ve gotten a glimpse into the mindset of a potential contributor, it’s time to revisit the project lead role: how you, as project lead, can best work with your contributors. Head over to the next section, on meaningful participation and distributed leadership. 76 | -------------------------------------------------------------------------------- /_articles/building-communities-of-contributors/understand-meaningful-participation-and-distributed-leadership.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Meaningful Participation" 4 | module: "3.3" 5 | date: 2016-10-06 14:05:56 6 | time: "10 min" 7 | following: _articles/building-communities-of-contributors/write-a-code-of-conduct.md 8 | summary: "In this module, you'll consider what a good participation experience might look like on your project and how to “level-up” or encourage contributors to gain new skills. You'll also reflect on why and how to share leadership with contributors." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "Read and watch videos in this section" 11 | materials: "None" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Meaningful Participation And Mentorship 17 | 18 | How you invite participation from your community is the secret to your project’s success. Remember, you are working with volunteers who are contributing valuable time and energy to the project. As you saw in the Persona activity, you will need to work with them to find tasks that motivate them and connect to their skills and interests. 19 | 20 | 21 | 22 | As an open leader, you cannot make demands or act like a boss. You are not telling contributors what to do for you or the project; you are entrusting them to follow through on work they want to own and supporting them in doing so. Delegation is about you sharing agency and ownership in your project with volunteers; it’s not about being fully in charge and making assignments for people without their agreement. 23 | 24 | ### Distributed Leadership 25 | 26 | In the previous section on Personas and Pathways, you wrote a pathway that moves the user into a leadership role by the end. Distributing or sharing leadership among a few community members is a way to secure your project. 27 | 28 | 29 | 30 | Distributed, shared leadership is a key element of open leadership. It requires that you intentionally hand off aspects of your project to trusted, capable people who have grown (and you have mentored) into that role. It means giving up some control of the project to your community members. This is difficult for many people to do-- you may find it uncomfortable at first-- but it will make your project stronger. Distributing leadership ensures that there are others who feel invested in the project and its survival and success over the long term. If there are times when you’re not able to put as much time as usual into the project, your co-leaders can step up and pitch in. If, eventually, you’d like to move on to other new and exciting projects, the contributors you’ve mentored can take over leading the project -------------------------------------------------------------------------------- /_articles/building-communities-of-contributors/visualize-your-support-network.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Visualize Your Support Network" 4 | module: "3.1" 5 | date: 2016-10-06 14:05:56 6 | time: "20 min" 7 | following: _articles/building-communities-of-contributors/bring-on-contributors-using-personas-and-pathways.md 8 | summary: "Consider the allies and advisers who support your leadership; create a network map of those people to visualize the resources available to you." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "A writing and thinking assignment, with a bit of drawing. This is a solo assignment" 11 | materials: "Pen or pencil and paper" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Support Networks for Open Leadership 17 | 18 | As mentioned in the section introduction, **working open is all about relationships**. As project lead, you’ll need to establish good working relationships with an ever-growing, diverse community of contributors. Any time a group of people come together to do exciting, creative work, there will necessarily be struggles. **It’s important that you, as project lead, have support and help that you can count on when things get challenging.** So before you grow a community of contributors around your project, identify a smaller group of people who support you as an open leader. 19 | 20 | These supporters are people with whom you have person-to-person connections. They should be much closer to you than, say, a social media follower or someone you’ve run into once or twice at at a meetup. Support can come in many different forms. It can mean someone who shares or champions your vision, someone who serves as a partner or colleague in this work, someone who funds your project or has been reliable and enthusiastic about contributing time, work, advice. It can be someone in your life who doesn’t work on the project, but offers emotional support or encouragement. **You will be far more effective as a leader when you have your own mentors, cheerleaders, and supporters. **These are people who can encourage and advise you; they’ll be your closest allies in creating this project.** In the following video, Amira Dhalla describes how she uses her close support network to help her improve her written communications for her work as Lead of Mozilla's Women in Web Literacy program.** 21 | 22 | {% include videowrapper.html 23 | url="https://www.filepicker.io/api/file/fWoGVzOqTpWSNmcTXMhH" 24 | title="Support Networks For Open Leadership, Amira Dhalla" %} 25 | 26 | By describing your support network and the kinds of relationships you have, you’re in a better position to remember to draw on that group of advisers and allies when times get tough. And if your support network is vanishingly small, or if there isn’t anyone who supports you (yet), that may be a sign that you need to reach out and create more of those kinds of relationships. 27 | 28 | ### {{ site.assignment }} Visualize your own Support Network 29 | 30 | In this Assignment, you’ll begin thinking of who is in your support network, and how you’re connected to them. You’ll make a personal, network map of these close connections which you can add to and revisit as needed. Here are two examples of network maps: 31 | 32 | 1. **Start your network visualization**. Begin by adding yourself as the first point or node in your network graph. But you’re not alone! 33 | 2. **Add supporters.** Think of at least 2 or 3 people closest to you who support you in this work. These people may be friends, advisers, mentors, spouses, parents, etc. Using the tool, enter the names of your closest supporters (choose settings). You’ll see them pop up around your node in the visualization. 34 | 3. **Add one or two future supporters.** Think a small number of people you’d like to bring in closer, to help you with the project. These are people that you know well, who may know of your project or vision, but aren’t actively involved or supporting you at this time. They are people who could contribute something significant or powerful to you as you lead, and who might share your vision or be inspired and activated by it if they knew more. Enter them into your visualization, using the tool. You’ll see they appear on the outskirts of the project, without a strong connection to your work. 35 | 4. **Take a moment to appreciate your network!** You are not alone in this work. 36 | 5. **Think about how to expand your network.** Choose one of the peripheral people in your network, the person who you think might help you most. Think about how you might engage and approach them, to bring them closer to you. Make an effort to take action on this step. 37 | 38 | At times when you’re struggling or experiencing setbacks on your project, return to this visualization and tap the people listed here for help. Reach out to your supporters for advice and assistance, but also be sure to share your successes and discoveries with them, too! Like all networks of humans, your support network relationships are flexible and dynamic. You can add to this network visualization anytime-- you may want to make it a goal to expand your support network (slowly) as your project grows. If you’re running at truly welcoming open project, this may happen organically. -------------------------------------------------------------------------------- /_articles/building-communities-of-contributors/write-a-code-of-conduct.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Write or Choose a Code of Conduct" 4 | module: "3.4" 5 | date: 2016-10-06 14:05:56 6 | time: "60 min" 7 | following: _articles/building-communities-of-contributors/write-contributor-guidelines.md 8 | summary: "Write or choose Code of Conduct to establish guidelines for how members of your community interact with each other. Your Code of Conduct will help you maintain a diverse, welcoming community." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "A writing and thinking assignment (best done with community members, if available)" 11 | materials: "Pen and paper, sticky notes, or computer to type" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Introducing Codes of Conduct 17 | 18 | To lead an open project effectively, you’ll need to think both about the individuals on your project and how they can join and grow with the project (as we did in the previous sections) but also about the community that your crew of contributors create together. For your project to truly thrive, your community must be welcoming, inclusive, and safe for all. This means that all people-- regardless of their background or identity-- who come to the project as a contributor or potential user should feel comfortable, find themselves reflected in some way in the project, and be able to participate. 19 | 20 | One of the ways to do this is establish some guides for participation in the community, which you’ll write up in a document called a Code of Conduct or Participation Guidelines. These guides are for both projects and any events or convenings you’ll hold for your projects. They apply to face to face, in person interactions and those that happen online, in forums, chat, via email and in project repositories. 21 | 22 | Codes of Conduct serve two main purposes: 23 | 24 | * To establish the sorts of behaviors encouraged by the community, and to make clear which behaviors are unacceptable and discouraged 25 | * To establish the process by which any problems or violations of the guidelines will be handled by the project lead or leads. 26 | 27 | 28 | **Code of Conduct Examples** 29 | 30 | Excerpt from [Open Code of Conduct](http://todogroup.org/opencodeofconduct/) 31 | 32 | >* Be friendly and patient 33 | >* Be welcoming 34 | >* Be considerate 35 | >* Be respectful 36 | >* Be careful in the words that we choose 37 | >* Try to understand why we disagree 38 | 39 | Other Examples, 40 | 41 | * [Contributor Covenant](http://contributor-covenant.org/) - A Code of Conduct maintained specifically to be adopted by Open Source projects. 42 | * [Apache Software Foundation Code of Conduct](https://www.apache.org/foundation/policies/conduct) 43 | * [Citizen Code of Conduct](http://citizencodeofconduct.org/) 44 | * [Hack Code of Conduct](http://hackcodeofconduct.org/) - A Code of Conduct for Hackathons. 45 | 46 | ### {{ site.assignment }}Write your Code of Conduct 47 | 48 | What you’ll do: This is a writing and brainstorming exercise. It can be done individually by the project lead but it’s best completed with members of your community, to encourage shared responsibility for the community’s health and wellbeing. 49 | 50 | Tips for this exercise: 51 | 52 | * If you are working with a group, in person, do the first section as a silent brainstorming exercise. Participants jot down their ideas on sticky notes, then share-- take note of any common thoughts, outliers and surprises. 53 | * If working with a group online, brainstorm by sharing questions in an editable document (ie, etherpad, Google Doc, etc), and circulate to community members for input. Once you have answers, move on to to next steps. 54 | * We find this process works best when the group creating the COC represents the diversity of interests and opinions within the community. You can invite your entire community to participate, or work with a representative subset of the community. 55 | 56 | 1. Brainstorm. (30 minutes or more) Whether in person or online, start by reflecting on the following questions. Give yourself at least 5 minutes to answer each set of questions, or more time as needed. 57 | * **What core words would you associate with your community?** These could be values, ideals, or characteristics. Try to keep these to one word answers, if possible.If you’re having trouble getting started, think of communities you identify with, be they a set of friends, a group of peers, or an organization you feel a part of in some way. What makes that a community you come back to? (Examples: welcoming, safe, open, friendly, creative, playful, fun). 58 | * **What behaviors do you want to encourage? .... and what do you want to discourage?** Be specific enough to be useful here, and be sure to include lots of positive behaviors. Don’t focus only on the negative.(Examples: Encourage: active listening, being welcoming, asking questions; Discourage: unwanted physical contact, insults, being disrespectful of another's skills or work) 59 | * **How does someone alert you as project lead to a problem, issue, or violation of the code?**Be explicit in these steps. It’s OK (and encouraged) to have a few different options for reporting issues.Example: Leaders create a Safety/Code of Conduct committee, and advertise a bit about each person (general information, bios) including a photo to all.Reporters of problems can contact the Safety/Code of Conduct representatives by email or in person at an event. Note that all discussions or correspondences are confidential. Call or text a Google Voice number, set up specifically for the event or project. 60 | * **What consequences are there for violating the code?** It’s important the consequences are real and appropriate to the situation. Examples: Asked to leave the event. Removed as a contributor from the project. 61 | * **Who decides what does and does not violate the code?** What's an example of how this might be done? Come up with a process and think about you'd explain it to participants. This should be clear and consistent. You may want to define response times, how decisions on reported events will be handled, where this will be posted etc. 62 | * **How can you make others feel safe and supported?**Code of Conducts are about creating a welcoming and safe environment as much as they are about discouraging bad behavior. Take a few minutes to reflect on how you can better support your peers, reward or highlight good behavior, and model the behavior you want to see. 63 | 2. Refine and Remix. (25 mins) Using the information you’ve collected in the brainstorm above and drawing on the examples, Write your own Code of Conduct. You can also remix some of these to get started. 64 | 3. Share and Discuss. (As much time as needed) Share the version created with your wider community for feedback; make sure everyone knows about the Code, how it was created, and that the intention is to ensure the wellbeing of all community members. In the next section, you’ll be putting your project and this Code of Conduct on the online collaboration platform GitHub, where everyone can see it. It’s a great idea to ask for comments on your Code of Conduct from project members, and revise as needed. 65 | -------------------------------------------------------------------------------- /_articles/building-communities-of-contributors/write-contributor-guidelines.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Write Contributor Guidelines" 4 | module: "3.5" 5 | date: 2016-10-06 14:05:56 6 | time: "60 min" 7 | following: _articles/get-your-project-online.md 8 | summary: "Create a set of instructions that explain how new contributors can help out on your project." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "A writing and thinking assignment (best done with community members, if available)" 11 | materials: "Pen and paper, sticky notes, or computer to type" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Introducing to Contributor Guidelines 17 | 18 | Now that you've set out guidelines for behaviors within the community, and asked contributors to approach participation with a specific mindset, we'll lay out the actual process by which can participate-- the stuff they'll do. Contributor guidelines, which we'll write in a file we'll call title CONTRIBUTING, are the nuts and bolts instructions on how to contribute to your project. (Along with the README file, the idea of a CONTRIBUTING file is borrowed from the software engineering world, where it is a conventing to capitalize the filenames of very important files.) 19 | 20 | In the next section, getting started with GitHub, you'll get your project files online in a place where people can find them and contribute to your project. This CONTRIBUTING file (along with the project README you create) will be one of the first things that potential contributors to your project see. You can write this file with whatever text editor you prefer, or with good old pen and paper-- in the next module you'll learn how to format it for life on the web, with links to other key files. 21 | 22 | There are three audiences for this file: 23 | 24 | - Your potential contributors, people who want to know what they can help out with, the process and conventions they'll need to follow in making contributions, and they way they are expected in interact with other members of the community 25 | 26 | - Project consumers, those who want to build off the work you've done, remix and reuse it to create their own project. This file should give them a sense of how best to do that, and what's allowed. 27 | 28 | - You, the project lead, who creates and maintain this file. You'll want to update this file as the project evolves. The process of writing this file will also help prep you for good interactions with your community. 29 | 30 | If possible, write a draft of the CONTRIBUTING file with members of your community, if you have already engaged with them. This will help them feel a shared sense of responsibility and to create the best possible guide for encouraging new contributors. 31 | 32 | ### {{ site.assignment }} Write Contributor Guidelines 33 | 34 | 1. Reflect / Plan 35 | Start by reflecting on what to include, and what kinds of contributions to invite. Browse these examples of CONTRIBUTING files from diverse projects. 36 | 37 | - Small project, some field, etc 38 | 39 | - Medium size project, field, etc. 40 | 41 | - Big software project[ example of the Atom.io CONTRIBUTING.md file](https://github.com/atom/atom/blob/master/CONTRIBUTING.md). 42 | 43 | The following elements should appear in your CONTRIBUTING file. If you don't know the details right now, it's OK to write "more details coming soon!" for that section. Remember, you'll often return to this document to update it as your project evolves. But if you've completed the previous modules, you should have the first 4 items on this list already! Take a few notes as you read through the list, plan and reflect. You'll write up your CONTRIBUTING file in the next step. 44 | 45 | 1. Restate your project vision, in one sentence. Redundancy is your friend! 46 | 47 | 2. Welcome contributors to the project: Let them know that you are eager for contributions and happy that they've come. This is a great place to introduce yourself so people see that there's a name and face that goes with this project. 48 | 49 | 3. Point people to your Code of Conduct for the project, and require users to read it before they go any further. 50 | 51 | 4. List Important Resources where contributors can see what kind of work is currently happening on the project. 52 | * Readme 53 | * Roadmap 54 | 55 | 6. List Communication Channels: if you are using forums, chat clients, email lists or other ways of communicating about the project, list those here and provide instructions on how to join. (more on this in section x, don't worry if you don't have this all figured out yet) 56 | 57 | 7. Tell readers how to submit changes: This is the process for adding your work or changes to the repository or collection of ongoing work (Leave this blank for now-- we'll cover how to manage contributions on the web with an open workflow in the next module.) 58 | 59 | 8. Describe Good First bugs for Contributors: Guidelines for the types of "bugs" or useful, helpful tasks new contributors should start with as they're first coming on to a project. A bug often refers to a problem that needs to be fixed. These should be small, fairly easy but meaningful tasks that get a new contributor started and provide an early, encouraging success. For a very new project, a good first bug might be to ask contributors to comment on your README file-- does it make sense, do they understand the project? Is all the information they need there? Are there any typos? 60 | 61 | 9. Tell readers how to report a bug: Ask your contributors to stay on the lookout for can any potential issue that might cause problems for the project. These could be problems in code (if you're creating software), content omissions or copy errors (if you're creating a learning resource), or any issues with the functionality or design of your project. Basically, by asking users to report bugs, you're asking for feedback on work that's been done. Most projects invite all contributors to reporttell the project lead about bugs, so "debugging" or fixing problems happens quickly and with the input of the community. Take a look at[ Atom's example](https://github.com/atom/atom/blob/master/CONTRIBUTING.md#reporting-bugs) for how to teach people to report bugs to your project. (Again, you may want to add to this section after you get comfortable with GitHub, and get everything online) 62 | 63 | 10. Tell users about your recognition model - Remember, you need to acknowledge value of the time and work your volunteers give your project. Here, provide a pre-emptive "thank you" for interest contributing. List any recognition contributors might receive for participating in your project. You can also outline how contributors can "level up" to become project maintainers (a certain number of bugs resolved, a certain number of changes or contributions successfully submitted to the project). You can leave this blank for now, and fill it in later. 64 | 65 | 11. Let users know where to go for help - provide clear contact info, and outline the process for getting in touch, for anyone with questions. 66 | 67 | Here are some elements that are optional for your CONTRIBUTING.MD file. See if any of these make sense for your project. 68 | 69 | 1. Templates: You might want to link to templates, which contributors can copy and add context to; templates help guide contributors on what information to include, and how. 70 | 71 | 2. Info on how to request an "enhancement" - enhancements are features that contributors suggest for a project, but aren't necessarily bugs/problems with the existing work; there is a "label" for enhancements in Github's Issues so contributors can tag issues as "enhancement" -- not the same priority as a bug or current task, but important as the community helps guide the project's design and evolution. See[ Atom's example section](https://github.com/atom/atom/blob/master/CONTRIBUTING.md#suggesting-enhancements). 72 | 73 | 3. Style Guide / Coding conventions - If your project is a coding project, it's important to designate how [ See Atom's example](https://github.com/atom/atom/blob/master/CONTRIBUTING.md#styleguides). 74 | 75 | 4. Who is involved? -[ Open Government's CONTRIBUTING.md](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md) . You might list the core contributors and their preferred methods of contact here, or link to a[ humans.txt](http://humanstxt.org/). Here is an[ example of a humans.txt file](http://www.stereosemantics.com/humans.txt). 76 | 77 | 2. Write up your a CONTRIBUTING file. Now that you've reviewed what goes into the CONTRIBUTING file and given some thought to how you want newcomers to engage with your own project, take your notes and write up your own CONTRIBUTING file. In the next section, we'll get your project (and this file) online using the GitHub platform for collaboration. -------------------------------------------------------------------------------- /_articles/get-your-project-online.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Get Your Project Online" 4 | module: "4" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/get-your-project-online/introducing-github-for-collaborative-work-and-version-control.md 8 | - _articles/get-your-project-online/the-github-interface-and-markdown.md 9 | - _articles/get-your-project-online/project-set-up-for-collaboration-with-github.md 10 | - _articles/get-your-project-online/sharing-your-work-in-the-open.md 11 | following: _articles/get-your-project-online/introducing-github-for-collaborative-work-and-version-control.md 12 | --- 13 | 14 | In this module you’ll set your project up for collaboration on the web, using GitHub, an online tool for working openly with communities, tracking changes to shared documents, and managing open projects. -------------------------------------------------------------------------------- /_articles/get-your-project-online/introducing-github-for-collaborative-work-and-version-control.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Introducing GitHub" 4 | module: "4.1" 5 | date: 2016-10-06 14:05:56 6 | time: "20 min" 7 | following: _articles/get-your-project-online/the-github-interface-and-markdown.md 8 | summary: "For others to discover, contribute to, learn from, and re-use your project, it needs to be on the world wide web. We recommend using a web-based software platform called GitHub, which helps you with one of the main challenges in collaborating with lots of volunteers on a single project. This challenge is “version control,” the task of managing the many contributions your group makes to shared working documents. This module explains the more about version control, and how GitHub can help." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "Read, look at diagrams, and watch videos" 11 | materials: "None" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Collaborative Work and Version Control 17 | 18 | Your contributors may be spread around the world or working in the same room; they may be working simultaneously or asynchronously. No matter how you’re working, all contributions need to be wrangled into a single project. Thankfully, we have version control, which is a way of keeping track of changes made to a collection of working documents. Version control also stores the history of changes, allowing you to revert or go back to earlier versions of those documents, and understand how contributions have changed the project over time. You may have used word processing software that has a “changes,” “history” or “revisions” feature, which also allows you to see and revisit any changes to the document: this is a form of version control! 19 | 20 | How does it work? Let’s look at some diagrams to better understand version control, and learn some new vocabulary related to this concept. 21 | 22 | When we code, write text, or create any kind of content using computers, we end up with a collection of files in a folder or directory, also known as a repository, or “repo.” 23 | 24 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-04.png](https://lh3.googleusercontent.com/sQoNFN2_O3-LFT5UpKzSl1keSvQnjjfleeb9i5tFcBf_UdkazbUSnUWgIlCWpSonUK4_A0RKwZkNnEZ0wnZ8-eHFn3TH3nkEhDniiq4rwBwAE3F6sCNZ0_Gms7sQopBsFOotpdEc) 25 | 26 | Even if you’re working alone, you’re probably going to make lots of changes to your content or code as you go-- you'll change some sections or functionality and leave others untouched, you'll make mistakes while you experiment with new ideas. 27 | 28 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-05.png](https://lh3.googleusercontent.com/wYh-8kl_sBZn_3BXyFgYnesqZKhvanay2UGbCUW-AXundxHmqoxmmctWSof-UkDLR4JMx-xrbJ0ShDyGRE5JdtU5dXTDjQ33fj9JDgN-MhV9VDQMfAO5NKnhYx-sN5DodK_ef4tC) 29 | 30 | You might make multiple copies of your files to preserve a version that's working while you try to improve it or add functionality, but keeping track of all these versions and the differences between them becomes difficult. 31 | 32 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-06.png](https://lh5.googleusercontent.com/0PwkghcbzK4Zc43yPqZYEruVsFNXqL3sasQVyUdulBWnG8CgcKwHzZ7dA5OLybtyStzdakEajrG6AzJI-jp7zdiMHZMulqyxsRJYTPs3RvJmc7E1owOyLgcE0Guy0KJ747MCZeaX) 33 | 34 | We need **version control.** Imagine your document has a life story. Version control is like a time machine, it can take you back to the moment your document was born, or any other point in time when you or a collaborator saved that document. You don’t save copies, you just save the the life story, or the document's timeline. 35 | 36 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-07.png](https://lh4.googleusercontent.com/qVhOs9Zxx93AcLZ5lx_8Cpgzid0n2qwbOAhP9_47hJrrZKiQTLnB1D3BFXup3W3lB4k7F96vg988Ts6QPtNCInpVHURXdd6Hn2PwT4XOxBRZHBrUfaqApAFi564kwoP4ubFuQ8yF) 37 | 38 | What’s on the timeline? For our purposes, let’s call any saved change a commit. The life story of your document is a timeline of commits. 39 | 40 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-08.png](https://lh3.googleusercontent.com/jCQ9hAQOmRpoFC8Ma1cYeWkPWjDZO3JEpoXfEGDxvlN2UVbp7H9Pt4-vuuC14fkw3Fu-_pJJvBJrprZmZryLxe8_vh8qZGoZQxHHSZ6d_cpTjjxoM7MZezNqp44-emNygysqbGNL) 41 | 42 | When we share and work on projects with collaborators, managing the changes, or commits that multiple collaborators working in different places at different times make to a single set of documents becomes very, very important. 43 | 44 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-09.png](https://lh3.googleusercontent.com/fhQzq0KyVCM1gW4cvChCitB7XQvFk4fclo6L_AVUsUAdAkBKroBusH7hqrCS4C0LAaP7D4TDYqlwPHBtp8dvwGHR4-4kPAtV3eBRgkrfaywVaLJYUYdPfxagrqY_ifQN8QZNe4O2) 45 | 46 | And when we’re working with multiple collaborators, everybody needs to know and understand what commits are being incorporated into the repository and why, so good communication becomes very very important. The great news is that there’s a piece of version control software to help us both manage and communicate with our collaborators about commits to our project-- that software is called Git, and it’s the basis for the online platform GitHub, where we recommend you work on your project. 47 | 48 | ### GitHub to the Rescue! 49 | 50 | GitHub is a web-based tool originally developed by software engineers to work collaboratively on coding projects, but you don’t need to be a computer programmer to use it. GitHub has terrific project management features, a social platform, and communication tools that are useful for any project where a group of people are working together on the same set of documents. Because GitHub is online, it’s designed to share your work, and allows other people to “fork” your project-- meaning they can create an independent copy of your work to test, modify, remix and reuse it. Let's see how projects in real life (IRL) are using GitHub. 51 | 52 | {% include videowrapper.html 53 | url="https://www.filepicker.io/api/file/GWtFi0eNTrO9wlLg59Xt" 54 | title="GitHub Projects IRL, Andre Garzia" %} 55 | 56 | Before we go any further, let's talk for a minute about something that Andreas mentioned in his video, a piece of software called Git. Git is the command line software that powers GitHub and actually handles the version control work. When you use GitHub, Git is working behind the scenes. You can also use Git without ever using GitHub, and many software engineers do. This is what Git looks like to a user: 57 | 58 | ![](https://lh3.googleusercontent.com/p2_DZ7gP1go-UNjcb4Mk_K7ilO1Rn9vSQ7q_Kki1X795V6LbBc5035JqYJyJm4K_oa6Ax9oAWcOsNssj3495QBYen0PPDLI7dQPvIEdGnKPAJFFMJ-3i9Ls5-DKb_6LHLgcvvRk7) 59 | 60 | **But, for nearly all your collaboration needs, you don’t won’t use the command line and Git directly.** You’ll use the GitHub web interface (with Git running in the background). That interface looks a bit friendlier, like this. 61 | 62 | ![Screen Shot 2016-01-27 at 12.35.04 PM.png](https://lh3.googleusercontent.com/ZLPBm0N15l3dgO0u5hv9_TeANzfHUM9aBbm7vmWciOJY12AmI7pu_HBYso7uEJd3VgiFnizV7TZIa0R_Ebqw4BCRypnCXdYRwHZKcadQNYlp8Bilb7VMRYyYOxUduPO-YT__XdYD) 63 | 64 | Continue to the next module to get a closer look at the GitHub interface. -------------------------------------------------------------------------------- /_articles/get-your-project-online/project-set-up-for-collaboration-with-github.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Project Set-Up" 4 | module: "4.3" 5 | date: 2016-10-06 14:05:56 6 | time: "30 min" 7 | following: _articles/get-your-project-online/sharing-your-work-in-the-open.md 8 | summary: "In this module, you’ll learn how to organize your project files so they are easy for newcomers to navigate. You’ll also create your very first GitHub issue!" 9 | prereq: "Have completed all previous sections and modules" 10 | format: "Read, watch videos, use GitHub" 11 | materials: "A computer, an internet connection, and a free GitHub account" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Project Structure and Organization 17 | 18 | To work most effectively with contributors, your project structure should be clean and welcoming, with folder titles that make sense. For example, your project might have different folders for data, technical documentation, and images. README.md and CONTRIBUTING.md (which you’ll make in the next module) should be in your root directory, along with your ROADMAP. Think of these documents as an anchor for your project. As you add files, you may want to organize these into folders and create a consistent naming convention. Here’s an example of a good project set-up. 19 | 20 | . 21 | ├── docs 22 | ├── images 23 | ├── src 24 | ├── .gitignore 25 | ├── CONTRIBUTING.md 26 | └── README.md 27 | └── ROADMAP 28 | 29 | Few example projects, 30 | 31 | - [GitHub hubot](https://github.com/github/hubot) - CoffeeScript 32 | - [nteract](https://github.com/nteract/nteract) - JavaScript 33 | - [Picasso](https://github.com/square/picasso) - Java 34 | - [Laravel](https://github.com/laravel/framework) - PHP 35 | - [Ansible](https://github.com/ansible/ansible) - Python 36 | 37 | GitHub is not only a place to store your files, and a way of managing collaborations, but also a great tool to organize the work you plan to do, and keep you on task. Here’s how: 38 | 39 | 40 | {% include videowrapper.html 41 | url="https://www.filepicker.io/api/file/LjOBbVuSRhuJLFJlulZn" 42 | title="Github For Project Management, Hannah Kane" %} 43 | 44 | Now that you’ve seen how GitHub can be used to organize and plan work, you’re ready to plan some work in your own GitHub repository. 45 | 46 | ### {{ site.assignment }} Add Your First Issue 47 | 48 | ![Creating your first milestone]({{ site.baseurl }}/img/create-milestone.gif) 49 | 50 | 1. Create some milestones for your project. Refer to the roadmap you created in Section 2 (and added to the repo in the previous module). If you have milestones already specified in the roadmap, add them to your GitHub repo. If you don't have milestones, come up with two or three-- these are significant turning points or events that will move the project forward. You will use these to organize your issues. 51 | * Give each milestone a title and brief description. 52 | * Use the calendar interface to assign a date to the milestone. 53 | * Save this milestone. It will now appear as an option 54 | 2. (Optional) Create some labels. Click on the labels tab and add any new labels you’d like. These labels can help categorize an issue, or provide information about the priority or status of the issue. GitHub has some label options already baked in. These give you an idea of the kinds of labels that can be useful. 55 | 3. Add some issues. As you’ve seen, an issue is a bit of information about work that needs to be done, a description of the next task you’re planning on doing. If you’re not sure what task to start with, go back and check out the Roadmap you created in Module 2, where you’ve outlined upcoming work. 56 | * Describe the work you plan to do. Use a checklist, if a task has multiple parts. 57 | * Provide context to show how this task relates to the larger plan described in your Roadmap. 58 | * If you like, give your new issue a label. Use the ones you’ve created, or the ones GitHub provides. 59 | * Add a milestone to your issue, to add a bit more information about the task, and how it fits into your larger project roadmap. Click on the Milestones button in the sidebar and select from the list of options you created in Step 1\. 60 | * Save the issue. Now you’re ready to get to work! (When this issue is eventually completed, you can close it. It will disappear from your Open issues tab and appear under the Closed issues tab. You can revisit it there at any time, to review work completed.) If you have an issue with multiple steps or tasks, use Markdown’s “checkbox” feature, and check off each task as you complete it. 61 | 62 | ![Creating your first issue]({{ site.baseurl }}/img/create-issue.png) 63 | 64 | For more on GitHub and what the platform can do, see our list of Resources and Tutorials below. 65 | 66 | ### More GitHub Resources and Tutorials 67 | 68 | - [Try GitHub](https://try.github.io) - Interactive Tutorial to learn GitHub 69 | - [Git Tutorial](https://www.atlassian.com/git/tutorials/) - Illustrated Git Tutorial 70 | - [GitHub Guides](https://guides.github.com/) - General guides authored by GitHub 71 | - [GitHub Help](https://help.github.com/) - General FAQ authored by GitHUb 72 | - [Creating an Issue](https://help.github.com/articles/creating-an-issue/) - GitHub authored article on how to create an issue 73 | - [Mastering Issues](https://guides.github.com/features/issues/) - Issues are a great way to keep track of tasks, enhancements, and bugs for your projects 74 | - [Adding Existing Projects to GitHub](https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/) - Learn how to add existing projects to GitHub using the command line 75 | - [Creating a Repo](https://help.github.com/articles/create-a-repo/) - Learn how to create a repo 76 | - [Fork a Repo](https://help.github.com/articles/fork-a-repo/) - Learn how to fork a repo 77 | - [Adding a remote](https://help.github.com/articles/adding-a-remote/) - Learn how to add a new remote 78 | - [Renaming a remote](https://help.github.com/articles/renaming-a-remote/) - Learn how to rename an existing remote 79 | - [Working with remote](https://help.github.com/articles/renaming-a-remote/) - Git Basics-Working with remote 80 | 81 | Now that your project is on GitHub, it’s ready to be shared widely. In the final module of this section, you’ll learn about licenses for sharing an open project. 82 | -------------------------------------------------------------------------------- /_articles/get-your-project-online/sharing-your-work-in-the-open.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Sharing Your Work in The Open" 4 | module: "4.4" 5 | date: 2016-10-06 14:05:56 6 | time: "60 min" 7 | following: _articles/github-for-collaboration.md 8 | summary: "Learn how to share your code and content for the widest possible use and reuse." 9 | prereq: "Your project’s GitHub repo including any code, content, and data you want to share" 10 | format: "You'll make a LICENSE file explaining how others can use your project’s code and content" 11 | materials: "A computer and access to your project’s online repo" 12 | --- 13 | 14 | * TOC 15 | {:toc} 16 | 17 | ### Introduction 18 | 19 | By sharing your work widely and with few restrictions, you allow your project to achieve its maximum impact. Your project can have positive, transformative effects far beyond what you’re able to imagine when you empower others to build on your work. 20 | 21 | A big part of working open is sharing-- sharing the work of project creation with your community, and also sharing the results of that work with your community members and beyond. When you share your process and making ongoing work openly available on the web, others can build on your work, adapt your process or a part of your product for a novel use. This is called using an open license (traditional ‘licenses’ are restrictive, not permissive). It’s important that you think through how you want to share your work and make that information clear to anyone who encounters your project on GitHub or elsewhere on the web. 22 | 23 | The statement of what you and your community permit in terms of sharing-- the guidelines for use and reuse is called a license. Now, while we’re not lawyers, we do strongly believe in openness, and recommend making your work as open, available and remixable as possible. Also remember that if you do not explicitly license your content differently, it generally falls under copyright and technically cannot be remixed without your permission. You may use an open license to share code, or content, or both. There are lots of licenses designed especially for sharing broadly, and organizations like Creative Commons and the Free Software Foundation have created tools and resources to facilitate sharing of content, data and code. If you’re working collaboratively on GitHub or in another common place to store your work, you’ll put the license info in your LICENSE file. 24 | 25 | 26 | 27 | ### Sharing Your Content 28 | 29 | If your community is producing content you’d like to share-- for example learning materials, data colllected in a citizen science project, original images or artwork, a collection of blog posts, or even music files-- or if your project mixes code and other kinds of content (such as original artwork), you’ll want to choose a content license in your LICENSE.md file. 30 | 31 | Creative Commons is a nonprofit organization that works to enable the sharing and use of creativity and knowledge through free legal tools. Creative Commons has a variety of open licenses in their [Choose a License](https://creativecommons.org/choose/) section, to help you pick the best way to credit and share the work of your project. Here are some examples of Creative Commons licenses: 32 | 33 | * **CC0 Public Domain** - This label essentially gifts your project into the public domain making it usable by all without restriction. 34 | * **CC-BY** - This license enables others use your project so long as they attribute what they use and acknowledge that the original work was done “by” you and your team. This license is most commonly used in the Open Access Movement. Here’s an [overview of Open Access](http://legacy.earlham.edu/~peters/fos/overview.htm), and you can learn more about applying its practices from [Science Commons](http://sciencecommons.org/projects/publishing/open-access-data-protocol). 35 | * **CC-BY-SA** - This license lets others use your project so long as they attribute it correctly and license any derivative work in the same way. They have to “share alike.” This license is commonly used by groups like Wikipedia. 36 | 37 | You can mix-and-match the terms and conditions of CC licenses to meet your exact needs and wishes for sharing your project in the open. 38 | 39 | ![](https://lh4.googleusercontent.com/LV3WBGcXtDDDTiqOeVhp1nwX4nbQRNo0ZY0_fIrHcgvkTVua20PjCgDzBQ4a4aTiOHhYvd64InxQFV-DJpUkEN2-guMFIlOvxzHw33nw9Y-V63Sx8Ia-7vPHM9gG5QM_KJOpwQ1c) 40 | 41 | From [Creative Commons](https://creativecommons.org) 42 | 43 | Once you pick a license on [Creative Commons](https://creativecommons.org/choose/), you’ll get a snippet of code and text like this: 44 | 45 | ![](https://lh4.googleusercontent.com/Vss4n88Jw5L-LjUtWZJfDf3RLCjjJc8kWLkLFG6qL8I3HmZ-RAaj9VY6BlS3jYeIoAno_Labvx0caVeEBkFv1s9NauypjCAJDlczRMUNce3Sknf1tL4xDJ6rVeT31fHStnI7XZyK) 46 | 47 | From [Creative Commons](https://creativecommons.org) 48 | 49 | You can grab the text and link from that snippet and insert your CC license into LICENSE.md using Markdown like this: 50 | 51 | Non-software content in this project is licensed under a [Name of the license](link to the license) license. 52 | 53 | When you license your “non-software content,” you’re referring to things like your contribution guidelines, code of conduct, and any media or text that might appear on a webpage or in an app. 54 | 55 | If you are an academic researcher collecting data, writing articles, books, and papers, or creating visualizations and other research products, you may want to explore making your work Open Access, which means making it available on the web with no restrictions to access and minimal or no restrictions on use. 56 | 57 | 58 | 59 | ### Sharing Your Code 60 | 61 | If you and your community are collaborating on code, we recommend using an open license. Open licenses for code help make clear how people can use or contribute to your work, and makes it clear to the community that it's open for remixing. To begin, you’ll need to select an open source software license (OSS). There’s a really easy way to do this, built in to GitHub. When you create a repo, GitHub gives you the option of selecting from a number common OSS licenses, and GitHub automatically generates a LICENSE.md file for you with the terms and conditions of whatever license you picked. This is a handy feature if you and your community want to share the code you create together. 62 | 63 | Of course, you can create your own license file or edit your LICENSE.md at any time. This lets you change your license or add a license for content that isn’t code. 64 | 65 | Visit [choosealicense.com](http://choosealicense.com/) to learn more about the different kinds of OSS licenses available for your project. The site asks you to identify your primary motivation or need for licensing your project’s code and then suggests a license to you. There are also content licenses in the [“My project isn’t software”](http://choosealicense.com/non-software/) section of [choosealicense.com](http://choosealicense.com). 66 | 67 | ![](https://lh6.googleusercontent.com/XeH5ZCcaS_MnePa2-wyiXsnJvRtcQ8031yZ_jXEj0H-UMqfhywjD13CZrm-e2kRv480tAYCMafqur0LckEcGym9aq2xaGw9q1csrXR7sbG4aLLUCZjLBkzvLZ6AZkZRo7bOrlE_b) 68 | 69 | From [choosealicense.com](http://choosealicense.com/non-software/) 70 | 71 | You can cut and paste the license into your pre-existing LICENSE.md file or create a new LICENSE.md file if you didn’t pick a license when you set up your repo 72 | 73 | ### {{ site.assignment }} Add a License to Your Project 74 | 75 | 1. Pick an OSS license if your project has code. (10 minutes) 76 | * Spend some time reading and researching the software licenses on [choosealicense.com](http://choosealicense.com/non-software/). Pick a license that makes the most sense for your project, but remember that the goal of working open is build stuff people can use, adapt, and make their own. Don’t unduly limit your project’s usefulness to your community. 77 | * Once you’ve picked a license, go to your GitHub repo and look for your LICENSE.md file. Make one if you don’t already have one. Copy and paste your OSS license into the file. 78 | 2. Pick a content license for the rest of your work. (10 minutes) 79 | * Likewise, read around the license descriptions on [Creative Commons](https://creativecommons.org/licenses/) website to get an idea of which content license serves your community best. Once you’ve picked a license, grab its name (like CC-BY 4.0) and [its link](http://creativecommons.org/licenses/by/4.0/). Add the license at the top of your LICENSE.md file like this: 80 | > Non-software content in this project is licensed under a [CC-BY 4.0](http://creativecommons.org/licenses/by/4.0/) license. 81 | * If you’re unsure about which licenses to pick for your project, take it to the community. Ask your contributors what they think is appropriate and ask your community, at-large, how they would like to be able to use the project when it is completed and released. -------------------------------------------------------------------------------- /_articles/get-your-project-online/the-github-interface-and-markdown.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "The GitHub Interface and Markdown" 4 | module: "4.2" 5 | date: 2016-10-06 14:05:56 6 | time: "30 min" 7 | following: _articles/get-your-project-online/project-set-up-for-collaboration-with-github.md 8 | summary: "In this module, we’ll get acquainted with GitHub interface-- the place where all the magic happens. You’ll also sign up for a GitHub account, and start getting your project online!" 9 | prereq: "Have completed all previous sections and modules" 10 | format: "Read, watch videos, use GitHub" 11 | materials: "a computer, an internet connection, and a free GitHub account" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### The GitHub Interface 17 | 18 | Probably the easiest way to get to know the GitHub interface is to click around it a bit. We’ll do that in the video below to give you a preview, but you should explore on your own when you get your account set up in the assignment that follows. 19 | 20 | {% include videowrapper.html 21 | url="https://www.filepicker.io/api/file/JBBnlYcIQlGAth3Uaw9F" 22 | title="The GitHub Interface, Abby Cabunoc Mayes" %} 23 | 24 | ### Using Markdown 25 | 26 | In the previous video, you saw lots of documents and issues (those bits of information about work that needs to be done). Some of these files and issues included links, images, and emoticons. These documents were formatted using a handy system called “markdown” designed to make any document more organized and readable for display on the web. When you use markdown you are adding a bit of extra notation to your text file. This Markdown notation instructs your web browser how to display the text-- where to bold or italicize text, create lists, embed an image or a link, etc. Markdown is very much like HTML, the language of the web, in that it lets you easily create and display text in different ways online. 27 | 28 | Here are some examples of how you can use Markdown. 29 | 30 | * `#` creates a top-level heading, like a title. (e.g. `# My README File`) 31 | * `## `through `######` create sub-headings like those you might use for different chapters or sections within a larger document. (e.g. `## Part 1: Project Description`) 32 | * `*` makes text bold or strong. (e.g. `*Key vocabulary*`) 33 | * `**` makes text italic or emphasized. (e.g. `The **internet** is a network of computers.`) 34 | * `-` creates a list item. (e.g. `- First, click on the file called readme.md.`) 35 | * `- [ ]` creates a checklist item (e.g. `- [ ] Draft contributor guidelines.`) 36 | * Any number starts a numbered list. 37 | * You format links like this: `[text](link)`. (e.g. `Visit [our teaching activities page]([https://teach.mozilla.org](https://teach.mozilla.org)).`) 38 | * You format images like this: `![alt text](image source)`. (e.g. `![kittens](https://pixabay.com/static/uploads/photo/2014/12/03/21/20/kittens-555822_960_720.jpg)`). 39 | 40 | ![Github markdown interface with preview]({{ site.baseurl }}/img/github-markdown.png) 41 | 42 | You can preview the message you write before sending using the preview tab in the markdown editor. 43 | 44 | Find [more documentation on using Markdown on Daring Fireball](http://daringfireball.net/projects/markdown/syntax), and [GitHub has its own markdown documented here](https://guides.github.com/features/mastering-markdown/). There are also tools like [MacDown](http://macdown.uranusjr.com/) that show live previews to make writing Markdown easier. 45 | 46 | ### {{ site.assignment }} Get on GitHub! 47 | 48 | 1.Sign up.
 Start by signing up with Github Online.
 You’ll be creating a new account, and joining the larger GitHub community of people working openly. Access the site https://github.com and fill the form of *sign up for GitHub*. 49 | 50 | ![Entering GitHub]({{ site.baseurl }}/img/sign-up-github.png) 51 | 52 | 2.Create a Repository, or place to store all your working files
. Every project starts by creating a new repository. 53 | 54 | ![Create a Repository]({{ site.baseurl }}/img/new-repository.png) 55 | 56 | 2.1. Create a project title. Good practice is to either use dashes ("-") or underscores ("_") between words in your title (e.g. my-first-repo or my_first_repo), in the same way you might structure a file name on your desktop. Computers read continuous names more easily than ones punctuated by spaces, so it's nice to reinforce that convention in your file names. You can change the name of this repo later on (under the settings tab) if need be, but if you’re working with a community of contributors it’s best to keep your naming conventions consistent to avoid confusion. 57 | 58 | ![Entering the new repository name]({{ site.baseurl }}/img/new-repository-name.png) 59 | 60 | 2.2. Write a short description of your repository in the space provided. 61 | 62 | ![Entering the new repository description]({{ site.baseurl }}/img/new-repository-description.png) 63 | 64 | 2.3. Initialize your repo with a README: check the box the box in the interface to add your very first file, a README, to your brand new repository. GitHub will generate a generic file containing the title and description you wrote in b, above. You’ll add more content to it in step 3, below. 65 | 2.4. Select a license. If you are sure what kind of license you want on your repo, select one here. If you’re not sure, don’t worry! Licences are covered in section 4.5, so you can skip selection for now and add a license after you’ve completed that section.
 66 | 2.5. Click in the **create repository** button. 67 | 68 | ![Creating with README.md file and selecting the license]({{ site.baseurl }}/img/new-repository-license-and-readme.png) 69 | 70 | 3.Your first commit.
 Let's start by adding some content to your README. 71 | 72 | 3.1. Click on the README.md and then the edit button
 73 | 74 | ![Edit button]({{ site.baseurl }}/img/edit-button.png) 75 | 76 | 3.2. Using the README text you generated in the first module, add Markdown to create any headings, images, links, or lists you need. Note that you can toggle between editing (in markdown) and previewing the changes that markdown makes to the text. 77 | 78 | ![Preview changes]({{ site.baseurl }}/img/preview-changes-readme.png) 79 | 80 | 3.3. Add a commit message - Your commit message should point to the changes that you've made (e.g. “added content to readme”) and press the commit button!
 81 | 82 | ![Adding a commit message]({{ site.baseurl }}/img/commit-message.png) 83 | 84 | 3.4. Hooray! You did it! 👏🏽✨🎉 Your first commit! 85 | 86 | 4.Now that you’ve added your first file, go ahead and add another-- put your project Roadmap, which you created in Section 2, up on GitHub as well, using Markdown to format it, as in the previous step. Do the same with your Code Of Conduct and CONTRIBUTING files. Now your project is on the web and ready for collaboration! 87 | -------------------------------------------------------------------------------- /_articles/github-for-collaboration.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "GitHub for Collaboration" 4 | module: "5" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/github-for-collaboration/getting-around-github.md 8 | - _articles/github-for-collaboration/collaborative-workflow-for-contributions.md 9 | following: _articles/github-for-collaboration/getting-around-github.md 10 | --- 11 | 12 | As you learned in a previous section, GitHub is a web-based interface for version control. To review, version control is a way of keeping track of changes made to a collection of working documents. GitHub also provides an excellent set of collaborative tools as well as structure and space for communicating about collaborative work on open projects. You’ve already got your project set up on Github in the previous section, in this section you’ll establish a good workflow to create a respectful and productive environment for your collaborators. 13 | 14 | First, you’ll learn a bit more about how repositories are shared, stored, and updated on GitHub. You’ll learn about GitHub-specific concepts related to making those changes: branches, pull requests, merges, forks, and issues. And you’ll get some practice managing and making changes to a repository. -------------------------------------------------------------------------------- /_articles/github-for-collaboration/collaborative-workflow-for-contributions.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Collaborative Workflow" 4 | module: "5.2" 5 | date: 2016-10-06 14:05:56 6 | time: "60 mins" 7 | following: _articles/open-communications.md 8 | summary: "In this module, you’ll be introduced to a good, open, welcome workflow for collaboration on GitHub. You’ll get some tips for good GitHub communications, and you’ll practice making and managing changes to repositories… You’ll play the role of both Project Lead and contributor. Get ready to make and merge your first pull requests!" 9 | prereq: "Have completed all previous sections and modules" 10 | format: "Read, watch videos, and work with GitHub in two roles: as a contributor, and as a project lead" 11 | materials: "Your computer, GitHub account, your own project— plus someone else’s project you’ll contribute to!" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Collaboration as Conversation 17 | 18 | Good collaboration is a back and forth process, like a conversation, or a call and response. It’s not complicated, but you need to know the steps and the roles for contributor and lead. The series of videos below walks you through a workflow for collaboration on open projects, and demonstrates good communication with contributors. Watch closely, because you’ll be doing these steps (and playing both roles) yourself in the assignments at the end of this module! We’ve included screenshots in the assignment section to help you along. 19 | 20 | 21 | 22 | If you master this workflow and practice it in your community, contribution can happen more smoothly and be more satisfying for all involved. You, the project lead, need to move this whole process forward! These handy tips should help. 23 | 24 | * Acknowledge when a new issue is posted by a contributor (remember, both contributors and project leads can post issues!) 25 | * Notify users when you start and finish work 26 | * Summarize the state of the issue 27 | * Give periodic status updates 28 | * Inform everyone if you slip 29 | * Inform everyone if you’re on track 30 | * Make responsibility handoffs clear 31 | * Notify when new functionality is added to the project, and when fixes are made 32 | * Always use friendly tone and correct grammar to increase legibility 33 | * Talk to users on their terms, follow their cues 34 | 35 | ### Writing Great Messages and Comments on GitHub 36 | 37 | Your communications on GitHub don’t need to be literary masterpieces, but it’s really helpful if they are clear and well-written. Remember the history of your document is a timeline of commits. Each "commit message" is the backstory of your changes. A good, comprehensible, useful "commit message" is one that fills in that story. It lets collaborators and the project owner/lead know what you've done, what changes you’ve made, what you’ve added. This includes your own commits as project lead. While you might know the ins and outs of any change you made at the moment, in 5 days or 5 weeks or 5 years, those details will probably have slipped your mind. A detailed commit will capture that information forever. 38 | 39 | When you’re writing commit messages, you’ll want to make them short, clear, and in a fairly uniform format so they're easy to read. Here are a few rules for writing messages like these, taken from this excellent blog post, [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/), by Chris Beams. Read the post to learn about the rationale behind each rule. 40 | 41 | 1. Separate subject from body with a blank line 42 | 2. Limit the subject line to 50 characters 43 | 3. Capitalize the subject line 44 | 4. Do not end the subject line with a period 45 | 5. Use the imperative mood in the subject line 46 | 6. Wrap the body at 72 characters 47 | 7. Use the body to explain what and why vs. how 48 | 49 | Here is an example to illustrate the above points: 50 | 51 | ``` 52 | Add example commit message to collab workflow lesson 53 | 54 | An example of what a nice commit message looks like to make the points from 55 | the lesson text more concrete. 56 | ``` 57 | 58 | ### {{ site.assignment }} As a Contributor, Make a Pull Request 59 | 60 | 1. Find a project you’d like to contribute to and check out the README 61 | 2. Read the contributing.md file and code of conduct 62 | 3. Familiarize yourself with the project’s roadmap 63 | 4. Review the issues and pick one-- ideally a “good first bug” that you can take on 64 | 5. Comment on the issue, be sure to ask if you have any questions about the task 65 | 6. Follow the contributor guidelines 66 | 1. Fork the repo 67 | 2. Make a branch 68 | 3. Make a commit 69 | 4. Write a great commit message 70 | 5. Make a pull request! 71 | 72 | *Switch to your branch containing the changes* 73 | ![New Pull Request]({{ site.baseurl }}/img/create-pull-req-1.png) 74 | 75 | *Compare your changes with the remote branch* 76 | ![Compare Changes]({{ site.baseurl }}/img/create-pull-req-2.png) 77 | 78 | *Provide a title and a description for your pull request* 79 | ![Create Pull Request]({{ site.baseurl }}/img/create-pull-req-3.png) 80 | 81 | ### {{ site.assignment }} As Project Lead, Merge a Pull Request 82 | 83 | Follow the steps described for as project lead 84 | 85 | 1. Make a label 86 | 2. Make an issue for a good first bug 87 | 3. Let your community know about this issue! 88 | 4. Reply to Comment 89 | 5. Wait for Pull request 90 | 6. Review pull request, and be sure to provide useful feedback and encouragement 91 | 7. Merge pull request 92 | 8. Thank your contributor! 93 | 9. Close the issue! Woo-Hoo! 94 | -------------------------------------------------------------------------------- /_articles/github-for-collaboration/getting-around-github.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Getting Around in GitHub" 4 | module: "5.1" 5 | date: 2016-10-06 14:05:56 6 | time: "10 mins" 7 | following: _articles/github-for-collaboration/collaborative-workflow-for-contributions.md 8 | summary: "This module will help you understand how and where you and your collaborators will save changes and any work on a collection of files (a repository) when using gitHub." 9 | prereq: "Have completed all previous sections and modules" 10 | format: "Read and look at diagrams" 11 | materials: "None" 12 | 13 | --- 14 | * TOC 15 | {:toc} 16 | 17 | ### Repos, Forks, and Branches, Oh My! 18 | 19 | What's special about Git and GitHub is that every instance or copy of a repository (or collection of files) has its full life history, the full timeline of changes bundled with it. When you’re working with GitHub, you may have multiple copies of the same repository in use at once, and it’s helpful to understand how that works, and why. Let’s take a moment to understand how this works, starting with the simplest scenario. 20 | 21 | If you're working alone you might use version control on a single repository on your local computer. Here’s a diagram that illustrates that scenario: 22 | 23 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-10.png](https://lh6.googleusercontent.com/ylFY_bZygXEAUq7faPluylRBp9BR-CT7TE11xnEoonRd0QnxcE-jXzDLKCZJo21bE5hj37nzb_e6zktHcigv_XInUivAmCpeqKS2X1Dpke-loQb6bVpKJG51uvbr5UYKwX8i6bKv) 24 | 25 | Every save or commit you make is tracked and we can step back and forth between versions. 26 | 27 | This is great! But what if you have a crazy new idea you want to try out, that you’re excited about but not sure will work. You might make a whole boatload of changes that could take your project to amazing new levels-- OR totally break everything you’ve done so far. To experiment with your repository without permanently altering it, you can use a special feature enabled by GitHub (and the underlying technology Git) to create a copy or branch of your existing code that has all the functionality of the original, but is still connected to the original (it’s not a separate duplicate or clone), which is called the master branch. 28 | 29 | This concept of branching is a bit tricky to explain. For a metaphor, you can imagine a river. This river is just flowing along, but every once in awhile, there might be a stream that flows out from the river in a new direction-- let’s call this a new branch. This new branch is doing its own thing. It may flow along with lots of twists and turns but go nowhere and just peter out... or it may splash along and then join up and flow into the river again somewhere down the line. 30 | 31 | Back in your repository, your new experimental branch (which contains a copy of all your code or content) is connected to the master branch (also containing code and content) in the same way as our stream is connected to the river. In your new branch (the stream), you make all sorts of great changes, and if they work out, you can choose to merge (or flow) them back into the master branch (the river). Our new branch and the master branch are always connected, and part of the same project. 32 | 33 | If you’ve got lots of new ideas, you can make lots of branches. This concept of branching allows you to work in many new directions without altering your code or content base in the master branch until you are ready. 34 | 35 | But what about sharing your files? You can’t do that if they are only stored your own, local computer. You need GitHub! To get your files on GitHub, you’ll make a copy or clone of your local repository and upload it to GitHub. When you put a repository on GitHub, it’s stored on GitHub server, so anyone can find them on the web. An added benefit is that the clone on GitHub serves as a backup of your local repository, in case the files on your own computer catch a virus, get lost, or are accidentally erased. To work with this repository, you’d most likely make changes to the files on your local machine, using your favorite text or code editor. Then you’d PUSH those changes as commits to the copy of the repo on the server. Your local copy of the repo and the one on the server are in sync, and you have a stable, reliable back-up. 36 | 37 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-11.png](https://lh3.googleusercontent.com/cphihMu1zjZlAsuA5dxo1hbrpiBIPaGoVwX38KqaW6NJ7_YlRdJFG4fvXEbgp8qYMhGdQZ7_16gQka_dSY2OjqDwHHecGm0_REQvsR-O2b-aE4MEy6OJ-XyjkWnQRiwRmhHWXjTs) 38 | 39 | This method where you’re working locally and pushing changes to the server is pretty simple. It gets a teeny bit more complex when you have lots of contributors. Luckily, and this is where GitHub really shines. 40 | 41 | To work with contributors, you need to designate a main repo, hosted on GitHub. This repo that contains all the project code, content, and changes your community agrees should be part of the project. There's nothing structurally different or special about this repo (since all repos contain a full history of changes), it's just the one all your contributors agreed to use. We’ll call this repo the main repo. 42 | 43 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-12.png](https://lh6.googleusercontent.com/Luq9N7LHpv8KMf4pFLnS9Wni2PeLt7ulIEbW4wh4log9235dgNOySPOro3X-q1Oao_znDlTRGj33k3EEWQA_NIES7F6gIY5ZUUtvKfzcEW-zfHa7NnK-iwS133sTmXHF4E2rmx_G) 44 | 45 | Usually in this workflow, each collaborator makes their own local copy or clone of the main repo, so they can work and make changes locally. In addition, they may make a BRANCH in their clone of the main repository. ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-13.png](https://lh5.googleusercontent.com/JqyTz_ULhjJzvNtwXqwOlDBmfzlcK3lk18Ps4eNwStGIk5tM1Gpg167IMq4YMsWXQ4_Ro1_9ZVT2tu5VrEsyjzYvk_5Kkb2RR34uXT1Mpzl455AYSmuh83tr89Y2pSNBvj8dA4T2) 46 | 47 | Work on a collaborator’s branch won't change anything in the main repo until the collaborator makes what's called a pull request, a request for the main owner of the repo to incorporate the changes from the branch. The project lead or owner (that’s you!) will review the changes and may decide to merge them into the master branch. A collaborator working on a branch is working along with, in the same direction as everyone else on the master branch, and communicating about their work within the context of that repo. 48 | 49 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-14.png](https://lh5.googleusercontent.com/I5AnTX_uXcppmAcChH0hCAjqWMa8zMfgSCpxBokciF2hmgUn2N1eiHjxNPQ-joObxifZZWqnR_yrGvVsInlsm6q8CshE1xvudniLVg_iqlaBOaLT_C0hw5Xkn47Hppz9CAxoUB0k) 50 | 51 | A collaborator might make a complete copy of a master repo from another user’s account and bring it into their own account-- this is called a fork. A fork is a complete copy of a repo made from one user’s account to another account, often for repurposing or independent work. 52 | 53 | ![Open-Leadership-Curriculum-Diagrams-and-Line-Art-15.png](https://lh6.googleusercontent.com/ulru10eSxqfjrhdnD3g7Ve3OCyhIA-CfAQDDr7NOd4FWue4K9l3HkZtckcf-8u9uSICeUghZL_Io82evKwgIKblcEGasYs2gg0dxjJHZUPooSV7Q0az2jQQhypCaingKO1LTOjG4) 54 | 55 | People often fork when they are going to take the content or code and repurpose it or take it into a completely different direction. The project lead will have specified what can and can’t be done with the original work in a the project license (refer back to module 4\. 5 for a refresher on licensing). When a project is forked, work and decisions happen independently, outside of the context of the original or upstream repo, independently, in the new fork. Now that you’ve got some sense of how and where work happens in GitHub, head to the next section to practice a collaborative workflow. -------------------------------------------------------------------------------- /_articles/glossary.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Glossary" 4 | --- 5 | 6 | * TOC 7 | {:toc} 8 | 9 | #### Bug 10 | 11 | Bugs are problems in a project, particularly one in code, they are either problems where a program/project does not perform according to intention, or situations where the users' expectations are not met in a program/project. You can read a more granular definition in [Code Simplicity](http://www.codesimplicity.com/post/what-is-a-bug/) or in [Wikipedia](https://en.wikipedia.org/wiki/Software_bug). 12 | 13 | 14 | #### Bug Tracker Tool 15 | 16 | bug reporting tools are applications for processing and organizing bugs submitted by product contributors or users, [Bugzilla](https://bugzilla.mozilla.org/) is Mozilla's bug tracking tool, and [Github has it's own issue system](https://github.com/features) built into every repository, in the "issues" tab of your repo. See [Wikipedia](https://en.wikipedia.org/wiki/Bug_tracking_system) for more details. 17 | 18 | #### Branch 19 | 20 | a copy of a repo that is contained within the orignal repo. Branches are used to work on a project features without altering the original or "master" repo. 21 | 22 | #### Code of conduct 23 | 24 | a set of rules outlining the social norms and rules and responsibilities of, or proper practices for, an individual, party or organization. 25 | 26 | #### Commit 27 | 28 | a saved change to a document in a repository. 29 | 30 | #### Contributor 31 | 32 | a person that contributes content or services to an open source project. 33 | 34 | #### Discrimination 35 | 36 | treatment or consideration of, or making a distinction in favor of or against, a person or thing based on the group, class, or category to which that person or thing is perceived to belong to rather than on individual merit. types of discrimination include race, color, religion, sex, socioeconomic status, sexual orientation, public assistance status, disability, and age. 37 | 38 | #### Elevation / Escalation 39 | 40 | the process of flagging an issue or violation to be addressed by the Safety/ Code of Conduct behavior. 41 | 42 | #### Enforcement 43 | 44 | the process of moving from elevating an issue to be addressed, to acting on resolving that issue. 45 | 46 | #### Fork 47 | 48 | a copy of a repository that is saved in another user's GitHub account. 49 | 50 | #### Git 51 | 52 | the command-line software that tracks all changes to a collection of documents 53 | 54 | #### GitHub 55 | 56 | a service that hosts your repository online and helps you work with contributors. GitHub adds a web-based interface to version control. 57 | 58 | #### Global Sprint 59 | 60 | is an event with multiple sites around the world where participants work on projects for a set time period within their timezone. 61 | 62 | #### Harassment 63 | 64 | covers a wide range of behaviours of an offensive nature. It is commonly understood as behaviour which disturbs or upsets, and it is characteristically repetitive. It also includes behaviours that are threatening or disturbing. 65 | 66 | #### Inclusion 67 | 68 | a state of being valued, respected and supported. often referred to in terms of an event or community, as in an "inclusive event", meaning one that's welcoming and a respectful environment. 69 | 70 | #### Issue 71 | 72 | a message on gitHub that outlines a task that needs to be completed. 73 | 74 | #### Jargon 75 | 76 | a type of language, especially vocabulary, that is particular to a certian trade or discipline, and is not understood by anyone outside that discipline. 77 | 78 | #### Licensing 79 | 80 | A license gives explicit permissions for the use of something. This is particularly important if you want to make your data open as some jurisdictions assign copyrights to data sets which limit their use. There are several types of licenses that are in common use for data. You can read more about them here: http://www.dcc.ac.uk/resources/how-guides/license-research-data. 81 | 82 | #### Local sprint 83 | 84 | is an event that has projects, project leads and contributors that come from the local area. 85 | 86 | #### Markdown 87 | 88 | a lightweight way of annotating a document with instructions that tell a web browser how to format and display text. 89 | 90 | #### Merge 91 | 92 | the act of incorporating new changes (commits) into a repository. 93 | 94 | #### Metadata 95 | 96 | Information that describes, explains, locates, or in some way makes it easier to find, access, and use a resource (in this case, data). For example, metadata for a photograph may include the name of the photographer, when and where it was taken, as well as the type of camera and settings used to take the photograph. 97 | 98 | #### Milestone 99 | 100 | An event or state marking a specific stage in development on the project. 101 | 102 | #### Naming Conventions 103 | 104 | These are a set of predefined rules for the naming and structure of folders, files, field names, etc. (E.g. All files begin with a date, location and project name.) Naming conventions help provide context to a data set, as well as make sure a standard of data collection and management is being followed by all members of a team. 105 | 106 | #### Open Data 107 | 108 | Data that is made easily and freely available for anyone to access, use, and share without restrictions, the possible exception being a requirement of attribution. 109 | 110 | #### Permanent Identifiers 111 | 112 | A permanent identifier (or PID) is a set of numbers and/or characters, frequently in the form of a URL, that points to the location of a resource. PIDs are set up in such a way that even though the storage location of the resource may change over time (e.g. moving data from one university server to another), the PID will always point to the correct location. DOI is a commonly known type of PID. 113 | 114 | #### Persona 115 | 116 | A fictional user, based on real-world observations of actual or potential users. personas are used to test and shape the design of a product or experience, so that the final design responsive and relevant to user needs. 117 | 118 | #### Project Lead 119 | 120 | a person that is the main contact for a particular project. 121 | 122 | #### Pull Request 123 | 124 | a request to add a commit or collection of commits to a repository. 125 | 126 | #### README file 127 | 128 | a document that introduces an open project to the public and any potential contributors. 129 | 130 | #### Repository or Repo 131 | 132 | a collection of documents related to your project, in which you create and save new code or content. 133 | 134 | #### Roadmap 135 | 136 | A document outlining the schedule of work to be done on a project. 137 | 138 | #### Sprint 139 | 140 | is an event where project leads connect with contributors from the community to work on open source projects. 141 | 142 | #### Swag 143 | 144 | promotional merchandise given away at events, trade fairs or conferences. 145 | 146 | #### Venue 147 | 148 | the place where the sprint will be held. 149 | 150 | #### Version Control 151 | 152 | a way of tracking changes to a document or collection of documents. Version control is like a time machine, it can take you back to the moment your document was created, or any other point in time when you or a collaborator saved that document. 153 | -------------------------------------------------------------------------------- /_articles/introduction-to-open-leadership.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Intro to Open Leadership" 4 | module: 1 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/introduction-to-open-leadership/getting-to-know-mozilla-and-the-leadership-network.md 8 | - _articles/introduction-to-open-leadership/introduction-to-working-open.md 9 | - _articles/introduction-to-open-leadership/understanding-the-project-lead-role.md 10 | - _articles/introduction-to-open-leadership/stating-your-project-vision.md 11 | following: _articles/introduction-to-open-leadership/getting-to-know-mozilla-and-the-leadership-network.md 12 | --- 13 | 14 | **Before you start this section, be sure to read the Series README file, for information about how this training series is structured, and what you’ll need to begin.** 15 | 16 | In this first section in the Open Leadership Series, you’ll learn more about working open and open projects, with the aim of helping you understand how working open can improve your project. You’ll get a sense of what it actually means to lead an open project, and you’ll learn a bit more about Mozilla, the organization that created this training. You’ll also get an introduction to Mozilla’s amazing network of people and projects, which you are welcome to join! 17 | -------------------------------------------------------------------------------- /_articles/introduction-to-open-leadership/getting-to-know-mozilla-and-the-leadership-network.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Getting to Know Mozilla" 4 | module: "1.1" 5 | date: 2016-10-06 14:05:56 6 | time: "20 mins" 7 | following: _articles/introduction-to-open-leadership/introduction-to-working-open.md 8 | summary: "This module explains a bit about Mozilla’s history with working open, and introduces Mozilla’s Network." 9 | prereq: "Have read the Series README file" 10 | format: "Read and watch videos on this topic" 11 | materials: "None" 12 | --- 13 | 14 | * TOC 15 | {:toc} 16 | 17 | 18 | ### Oh Hi, We’re Mozilla 19 | 20 | This training was developed by the non-profit Mozilla Foundation, with help from members of the broader Mozilla Community. You may recognize the name Mozilla-- we’re a group of people, organized as a non-profit, public charity-- that makes the Firefox web browser. Mozilla’s Firefox is an open source project, which means the source code is freely, publicly available and anyone who would like to can help develop the project. Firefox was created and is sustained by the Mozilla staff and a collaborative community of volunteers, called “contributors.” The open source movement showed that scrappy, self-organized groups of passionate volunteers could collaborate to develop viable alternatives to proprietary software, and even compete against huge corporations! Many practices of "working open"-- particularly the use of the web as a collaboration tool-- were created, tested, and refined by software developers working on open-source projects like Firefox. 21 | 22 | {% include videowrapper.html 23 | url="https://www.filepicker.io/api/file/kLlp7wEAQBWJf8emecWo?autoplay=0" 24 | title="Mozilla And The Firefox Creation Myth, Mark Surman" %} 25 | 26 | In addition to developing Firefox and the community of contributors that builds and supports it, Mozilla fights for what we call the “open web.” We’re doing this by championing: 27 | 28 | * **Inclusion:** an accessible, free Internet for all 29 | * **Privacy:** user control of their own data on the web 30 | * **Web literacy***: the ability for everyone to meaningfully 31 | * Read: navigate the web, and find, evaluate, and synthesize web content 32 | * Write: code, design, compose, revise and remix content for the web 33 | * Participate: connect with online communities, share, contribute, maintain control over their own personal data, and work collaboratively with others on the web. 34 | 35 | While we are constantly refining our working open practices, we’re excited to share our decades of experience and expertise in this area with you… to help you and your communities create your own amazing projects on the web. 36 | 37 | *for more, see [Mozilla’s web literacy map.](https://teach.mozilla.org/web-literacy/) 38 | 39 | ### Meet Mozilla’s Network 40 | 41 | To drive our efforts to secure and expand the open web, we coordinate and support a network of leaders. These leaders are people (like you) committed to working open and using the web to build, create, or make positive change-- especially around issues of inclusion, privacy, and web literacy. Members of the network are leading projects as diverse as improving civic engagement, creating better educational experiences, building more human technologies, and making scientific research more collaborative and efficient. Here’s a glimpse of some of the awesome people and projects that are part of the network-- we hope you’ll join us, too! 42 | 43 | {% include videowrapper.html 44 | url="https://www.filepicker.io/api/file/KUpDbyKUQii3CMw3yU1i" 45 | title="The Mozilla Leadership Network, Kaitlin Thaney" %} 46 | 47 | As you work through the training-- whether you’re using our online interface or taking one of our in-person workshops-- there will be lots of opportunities to connect with both Mozilla staff and members of our leadership network. 48 | 49 | ### {{ site.assignment }} Explore the Network 50 | 51 | [Browse Network Pulse](https://www.mozillapulse.org/), a stream of assets news and stories from the Mozilla network and communities, to find projects with a shared vision, audience, or strategy. This exploration will help you get a better sense of Mozilla's network and the connections you can make within it. 52 | -------------------------------------------------------------------------------- /_articles/introduction-to-open-leadership/introduction-to-working-open.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Working Open" 4 | module: "1.2" 5 | date: 2016-10-06 14:05:56 6 | time: "10 min" 7 | following: _articles/introduction-to-open-leadership/understanding-the-project-lead-role.md 8 | summary: "This module introduces you to the basic concepts of working open." 9 | materials: None 10 | format: Read and watch videos on this topic 11 | prereq: "Have read the [Series README file](/open-leadership-training-series/articles/readme)" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Welcome! And a Look at Working Open IRL (In Real Life) 17 | 18 | Welcome! We’re excited that you’re here. In this training series, you’ll learn a specific set of practices which we’re calling “working open.” 19 | 20 | * **When you are “working open” you use the power, knowledge, and skills of a diverse community of volunteers (called “contributors”) to accomplish something that a single person or a small team couldn’t do alone.** 21 | * **When your project is “open” you share knowledge and information generated by the project widely and freely, allow others to build on your project, and maximize its usefulness for everyone.** 22 | 23 | The Open Leadership Training Series is designed for those who want to work together with others to create, build, and make amazing stuff-- anything from software projects to learning materials to organizations or advocacy campaigns. As we mentioned in the [Series README]({{ site.baseurl }}/)-- it doesn’t matter if your project aims to teach kids to code in Cleveland or build mobile apps with taxi drivers in Bangladesh, this is a one-size-fits-all resource. Here is one example of how people are working open, in real life, on real projects. 24 | 25 | {% include videowrapper.html 26 | url="https://www.filepicker.io/api/file/383PaLJiSF68FFgvH5Qb" 27 | title="A Working Open Example - STEMM Role Models, Kirstie Whitaker" %} 28 | 29 | ### The Ingredients of an Open Project 30 | 31 | Very different projects can be open, but there are some commonalities to open projects, a list of basic ingredients for working open: 32 | 33 | * A great **idea of something amazing to make or build** 34 | 35 | * A **clear intention to share** your idea, project and process widely 36 | 37 | * A group of **contributors, which form a community** to shape and drive your project 38 | 39 | * The **world wide web** to connect and collaborate 40 | 41 | * **A project leader** (this is you!) 42 | 43 | * A series of **open practices and tools** for planning, project management, mentorship, growing a community and running events, which we’ll cover in this training. 44 | 45 | By working open, we can often get far more done (and often done better) than we could working alone. And the knowledge, resources, and tools we generate in our work are more useful and powerful because they’re shared widely. Now that you’ve seen how working open happens in real life, and have a better sense of what’s a project needs to be open, it’s time to explore what it means to actually lead an open project. Continue to the next module to learn more. 46 | -------------------------------------------------------------------------------- /_articles/introduction-to-open-leadership/stating-your-project-vision.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Your Project Vision" 4 | module: "1.4" 5 | date: 2016-10-06 14:05:56 6 | time: "15 mins" 7 | following: _articles/opening-your-project.md 8 | summary: "Articulate your big idea, vision or dream that you want to achieve by working open, and experiment with expressing your vision in a short format." 9 | prereq: "Have completed previous modules in this section" 10 | format: > 11 | * Read and watch videos on this topic 12 | 13 | * Complete a thinking/writing assignment 14 | materials: "Pencil and paper or a computer-- a way of recording your statement." 15 | --- 16 | 17 | * TOC 18 | {:toc} 19 | 20 | 21 | ### Your Vision Drives Your Project 22 | 23 | Before you jump into section 2, on Opening Your Project, take a few minutes to state your vision for your project and community going forward. Your vision is what powers your project and excites and attracts contributors. It’s important to be able to say what you plan to do, clearly and concisely, in a short form, to anyone, on a moment’s notice! The process of choosing these words may also help you think through and refine your project idea and goals. This is a great exercise to do with a small group of community members or contributors if available, to ensure that everyone has a shared understanding of the project. 24 | 25 | > *Articulate your big idea, vision or dream that you want to achieve by working open, and experiment with expressing your vision in a short format.* 26 | 27 | Take a few minutes to state your vision for your project and community going forward. It’s important to be able to say what you plan to do, clearly and concisely, in a short form, to anyone, on a moment’s notice! t. 28 | 29 | 30 | 31 | ### {{ site.assignment }} Write Your Vision or Mission Statement 32 | 33 | 1. Brainstorm answers to these questions to help you craft your vision statement. 34 | * Who you’re working with, or hope to work with 35 | * What you’re doing 36 | * Who you’re doing it for, your audience (may be same as the previous question) 37 | * Why you’re doing this, the impact or change you hope to make 38 | 39 | 2. Put your answers together in a short statement 40 | 41 | Incorporating your responses, write your vision or mission statement in a short, simple format. Feel free to tweak the format. Color coding is added here for clarity, to indicate each key piece of information and where it appears in the statement: 42 | 43 | > I’m working with [community, allies, contributors] to [make, build, teach, or do something] so that [audience, end users, consumers, community members] can [do something different, achieve a goal] 44 | 45 | Sample Statement: 46 | 47 | > I’m working with public school teachers in Boston to teach computational thinking and creative coding skills to public school students so that they can use and create with technology to actively shape their own futures. 48 | 49 | Tips for writing your vision statement: 50 | 51 | * Use clear concise language-- see if you can get your statement down to a single, powerful sentence 52 | * Use cause and effect language-- verbs that express both what you’ll do, and what your users or community members will do differently when your vision is realized. 53 | 54 | 3. Add a second part to your vision statement-- thinking back on the benefits/challenges of working open that you reflected on in module 1.2, add a sentence that expresses why you want to work openly: “I’m working open because…” 55 | 56 | 4. If you’d like, share this vision statement with the Mozilla’s network of leaders by sharing it on [Mozilla's Network Pulse](http://mzl.la/pulse). Browse the inspiring and energizing statements that others have shared there. Do you see any opportunities for connection or collaboration or resource sharing between projects? 57 | 58 | Your project, and your vision for it, will be the basis for all the work you do in this series; you may find you need to return to it for clarity and inspiration when you get lost in the details or encounter stumbling blocks. You might discover you need to tweak your vision as your project evolves. Revisit your vision statement often, and get in the habit of using it when you talk to newcomers to your project. 59 | -------------------------------------------------------------------------------- /_articles/introduction-to-open-leadership/understanding-the-project-lead-role.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "The Project Lead Role" 4 | module: "1.3" 5 | date: 2016-10-06 14:05:56 6 | time: "25 mins" 7 | following: _articles/introduction-to-open-leadership/stating-your-project-vision.md 8 | summary: "This module explores what project leaders, or “leads” do on open projects, and the kind of mindset and approach this role requires." 9 | prereq: > 10 | * Have completed previous modules in this section 11 | 12 | * Have a project idea 13 | format: > 14 | * Read and watch videos on this topic 15 | 16 | * Do a short thinking/writing reflection exercise 17 | materials: "Paper and pen or computer for recording reflection" 18 | --- 19 | 20 | * TOC 21 | {:toc} 22 | 23 | 24 | ### Introduction 25 | 26 | When you're leading an open project, there are a few things you’ll do, listed below in the order they’ll likely happen on your project. Some of these practices (such as working with volunteers) aren’t so unusual, but in an open project the notions of community involvement and information-sharing become core, driving principles. When you work open you: 27 | 28 | * **Invite others to work on the project-- anyone with some level of skill who has an interest can pitch in. These are your project contributors, who volunteer their time and skills to your project. You’ll learn more about contributors in Section 3 of this training).** 29 | 30 | * **Provide information, help, and encouragement to any contributor working on your project, and connect them with their fellow contributors.** 31 | 32 | * **Encourage this community of contributors to participate in project decision-making and planning, and make these conversations as public as possible.** 33 | 34 | * **With intention and thoughtfulness, make both the end product of your project and the process you used to get there widely and freely accessible to all, for use and reuse.** 35 | 36 | Each of these points deals with making a project **participatory (getting new people involved)** and **transparent (sharing information about the project widely, in a way that’s useful for others).** Every project is different, and some of the points above may be less relevant to your project, while others will be at its core. Some projects will implement these elements slowly, while others may work fully in the open from day one. No matter how you do it, you can think of working open as a way of working that invites outsiders-- those who might otherwise have little or no part in project work, creation, and decision-making-- to become insiders in those aspects of the project. You can do this is by building trust in your community of collaborators. 37 | 38 | {% include videowrapper.html 39 | url="https://www.filepicker.io/api/file/2Egul1krQXaCeNTqfZGN" 40 | title="Creating Trust on an Open Project, Abby Cabunoc Mayes" %} 41 | 42 | 43 | To recap, here are ways that you can build trust on your project. 44 | 45 | To show that you trust and value those in your community, you should: 46 | 47 | * **Listen to and respect the views and approaches of your contributors.** 48 | 49 | * **Provide contributors with truly important, meaningful work to do on the project.** 50 | 51 | * **Give up some control of the project to your contributors.** 52 | 53 | To secure the trust of members of your community, you should: 54 | 55 | * **Be consistent and prompt in communicating with them.** 56 | 57 | * **Follow through and execute project work as planned.** 58 | 59 | * **Show that the project is solid, and worthy of their time and energy.** 60 | 61 | ### What Working Open Can (and Can’t) Do for You 62 | 63 | As Project Lead, you also need to have a good grasp of the possibilities and limitations of working open, and realistic expectations of what it can (and can’t) do for your project. 64 | 65 | As project lead, you need to ask yourself, “What’s the value of opening my project to community contribution and collaboration?” Below we’ve outlined some benefits of working open. 66 | 67 | **Working open can sharpen your thinking and help you find errors you hadn't realized you’d made.** Having many contributors on your project means you benefit from different approaches and ways of thinking-- a contributor might offer a totally novel solution to a design problem that would never occur to you. Diverse perspectives produce a better, richer product. Contributors may also catch errors that you’ve missed. In the world of software engineering, this is expressed in the "many eyes" principle, or Linus's Law: "given enough eyeballs, all bugs are shallow." In other words, the more people involved, the more likely someone is to spot an error or come up with a novel approach. And the process of mentoring contributors can enhance and deepen your own skills-- you may find efficiencies or better ways of working as you help contributors solve problems or tackle new chunks of creative work. 68 | 69 | **Working open is a way to incorporate user-centric thinking in the design and creation of your project.** Many projects-- from web apps or tools to advocacy campaigns to learning materials-- languish because they never find an audience. By inviting a broad community to contribute to your project, you can integrate your target audience into the development process to help ensure that you’re creating a tool, experience, or resource that meets their needs. Future users can be involved in decision-making about project design, direction, and features, as well as contributing project work. They can provide invaluable insights during user testing and evaluation of anything you make. In the words of Aspiration technology's Allen Gunn: 70 | 71 | "I believe in the ‘many eyes’ principle” — but also in the ‘many hearts and souls’ principle. Having many personalities, values and experience-sets involved in creating something intrinsically makes the finished product more robust and broadly relevant — versus, say, three privileged white guys in Silicon Valley kicking something out." 72 | 73 | **Working open can allow your project to achieve its maximum impact.** When you’re engaging contributors and target users from day one, your final product will launch to a built-in audience and be more likely to be supported, championed and sustained by contributors with a long history with the project. When you share your process and making ongoing work openly available on the web, others can build on your work, adapt your process or a part of your project for a novel use. Your project can have positive, transformative effects far beyond what you’re able to imagine. 74 | 75 | Working open can help your project flourish and grow, but there are also many misconceptions about the practice. Let’s address a few common confusions about working open, and get at some of the challenges inherent in this way of working. 76 | 77 | **Working open is not a way to get free software engineering work or other kinds labor for your project, without providing anything in return.** In a successful open project, volunteers will contribute time, energy and work, but if you open your project solely for the purpose of getting resources for free and you treat your contributors only as unpaid laborers, your contributors won’t stick around and your project will fail. Contributors on an open project should gain as much (if not more) than they give to the project, though not as monetary compensation. As an open project lead, you’ll need to figure out how to engage contributors in ways that are meaningful and valuable to them, appreciate and reward them, and create system of shared decision-making, mentorship, and skill sharing so that contributors grow and benefit along with the project. More about this in Section 3. 78 | 79 | **Working open is not a way to hit your deadline faster.** On an open project with a sizable community of enthusiastic contributors, you might think that work gets done rapidly and efficiently. And in some instances that can be true. But you should be prepared for the reality that it takes time and energy build a functional community of people who work well together. You’ll spend less time working directly on the project while you coordinate contributors and contributions, a task that requires intention, mindfulness, and consistent effort. Again, we’ll talk more about this in Section 3. 80 | 81 | **Working open is not a way to avoid process or structure.** Because decision-making is shared by the community and everyone pitches in as they like, it may seem like there’s no need to create roles on a project or define a system or series of steps to for contributors to follow-- why not just keep it casual? Actually, good open projects should provide clear guidelines and a coherent process so new contributors know what to do and what to expect as they make their first contributions. It’s helpful to have roles-- even if these are lightweight and somewhat flexible-- so it’s clear who contributors can go to for help or who might approve or review a contribution they make. Any power structures or decision making processes need to be transparent, so contributors feel encouraged to participate meaningfully in shaping the direction of the project. We’ll discuss good, transparent project set-up in Section 2. 82 | 83 | ### {{ site.assignment }} Reflecting on Benefits and Challenges of Working Open 84 | 85 | Reflect on what the benefits, challenges, and limitations of working open might mean for your project. For example, how do you envision your project specifically benefiting from more community contribution and participation? How do you feel about the need for well-defined process and structure on this project? Take about 4 or 5 minutes to write out your thoughts on this. If working in a group, you can write your reflections on sticky notes and then share and discuss together. 86 | -------------------------------------------------------------------------------- /_articles/open-communications.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Open Communications" 4 | module: "6" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/open-communications/communicating-openly-about-your-work.md 8 | following: _articles/open-communications/communicating-openly-about-your-work.md 9 | --- 10 | 11 | **Before you start this section, make sure you have completed your project README and established an online repository for your work. Also consider the online communication channels your contributors and community members use most often.** 12 | 13 | In this section, you'll learn about the importance of open communications to your project and then develop communication channels, or "comms," specific to your project and your community needs including a calendar, online presence (such as a blog), and community call schedule. -------------------------------------------------------------------------------- /_articles/open-communications/communicating-openly-about-your-work.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Communication Channels" 4 | module: "6.1" 5 | date: 2016-10-06 14:05:56 6 | time: "60 mins" 7 | following: _articles/running-awesome-community-events.md 8 | summary: "In this module you’ll learn about the different types of communication channels, or “comms” you can use to help your community discover, explore, and contribute to your project." 9 | prereq: > 10 | * A project with content like a [README file](/open-leadership-training-series/articles/opening-your-project/write-a-great-project-readme/) and [contribution guidelines](/open-leadership-training-series/articles/building-communities-of-contributors/write-contributor-guidelines/) 11 | 12 | * Online contact information (like email addresses or social media user names) for project participants 13 | format: > 14 | * Read and watch videos 15 | 16 | * Writing and planning exercises to establish and document regular communication with your community 17 | materials: "Access to your GitHub project repo" 18 | --- 19 | * TOC 20 | {:toc} 21 | 22 | 23 | ### Intro to Communications (a.k.a. Comms) 24 | 25 | “Comms” are the communications channels you use to help others discover, share, and contribute to your project. You want to send your comms out in the open; they should be easily findable and show people how to get involved with your community’s work. 26 | 27 | Comms also give project members a chance to talk with one another and support each other’s contributions to the project. In the video below, see how Coral Project Community Lead Sydette Harry describes how the Tiny Letter tool curates and archives online conversations about ‘creating common ground’ for collaborators in open journalism projects. Sydette and her colleagues are working to create a web-based platform and shared space for journalism communities to discuss their shared values, interests, and work. 28 | 29 | {% include videowrapper.html 30 | url="https://www.filepicker.io/api/file/ho0atyueQOyzh0byiOox" 31 | title="Why Do Comms Matter to an Open Project? Sydette Harry" %} 32 | 33 | ### Useful Communication Channels for Open Projects 34 | 35 | For contributors, your [GitHub](https://github.com) repo is likely to be the central hub of communication about the project itself. When contributors interact with one another on GitHub (by mentioning one another in their messages using @username) and issue pull requests (PR), they receive notifications on GitHub and/or through email indicating that they’re needed in a conversation or to review new work. 36 | 37 | Your contributors are the volunteers to who create content for your project - anything from code to codes of conduct, and everything in between. Contributors share the project’s workload with you and bring their time, talent, and generosity to attacking the problem your community and project want to solve. 38 | 39 | Sometimes community members also link out from GitHub to other sharing docs like an [Etherpad](http://etherpad.org/) or [Google Doc](https://drive.google.com), commonly-used platforms for asynchronous planning and collaboration. They might also use chat channels like [IRC](https://en.wikipedia.org/wiki/Internet_Relay_Chat), [Gitter](https://en.wikipedia.org/wiki/Gitter), and e-mail ([mailing-lists](https://en.wikipedia.org/wiki/Electronic_mailing_list), as an example). Keep in mind that one to one emails are okay but they should probably be replaced with more public communications in the name of openness around the project. 40 | 41 | 42 | However, other participants and community members less directly involved with the day-to-day work of the project still want to know what you’re making, how they can contribute, how it will help them,and when it will be ready to access. You can use a variety of communication channels to keep your larger community of potential supporters and users informed about your project’s progress. Which channels and forms of communication you choose or create should be determined with accessibility and inclusivity in mind. Use the tools that are available most broadly in your project’s community. When you’re planning communication channels, think back to your Building Community module work and strive to create or find the channels that best fit your contributors’ and community’s needs. 43 | 44 | At the very least, consider creating a shared calendar of events and two kinds of communication channels to help people find and keep up with your work. You may even decide to establish a third channel on a platform more familiar to you than your community. For example, if you don’t have a project page on [Facebook](https://facebook.com), but your community uses Facebook all the time, you should show up there. Creating these channels is another area for co-creation and delegation: inviting contributors to work on comms is a great way to raise others’ voices in the project. 45 | 46 | Your shared calendar can make it easy for community members to follow upcoming events and schedule their own project-related calls and convenings with minimal conflict. Use something like an [Google Calendar](https://calendar.google.com) to help your project members feel like they know what’s next. Sharing calendars lets you see your contributors’ availability and it lets them see yours. It’s easier to schedule meetings and send invitations community members can accept when you know one another’s schedules. 47 | 48 | Next, create some kind of online presence that people can find through search or social media. This is kind of like the landing page for your project - the front page people should encounter first when they search for your project online. 49 | 50 | If you or a volunteer contributor have some basic knowledge of HTML, consider building a web page for your project and hosting it from your repo with GitHub Pages. Online tutorials like this one [guide like this](https://guides.github.com/features/pages/) can help you get started. You can, of course, host your webpage somewhere else depending on your needs and the web expertise in your project community. 51 | 52 | If your community doesn’t have much web expertise, you can ask around to see what social media channel your community members use to communicate (such as Facebook or [Twitter](https://twitter.com)). You can create an account for your project on a social media platform that’s widely used by your community and reference that account in your documentation as the home base for your online presence. If you need help, look for an exemplar or mentor community to give you feedback and help, like the [Mozilla Design Community](https://github.com/mozilla/OpenDesign/blob/master/README.md). 53 | 54 | After establishing your web presence, create a communications channel or publication that lets you regularly update your entire community on your project’s progress. While you can do this through social media updates via a project account, you might also develop more in-depth platform for sharing news like a community call (over the phone or video conferencing), newsletter, or development blog. Here's a clip from a [Mozilla community call on International Women's Day](https://www.youtube.com/watch?v=QfvrKvx4mUk). 55 | 56 | {% include videowrapper.html 57 | url="https://www.filepicker.io/api/file/sazygmpkS0hsiU1CL4UC" 58 | title="Mozilla Community Call on International Women's Day" %} 59 | 60 | Community calls are regularly scheduled phone calls or webcasts that any community member can listen to, watch, and otherwise participate in live. Generally each call follows an agenda shared ahead of time that includes times for call organizers and project contributors to share updates, as well as time for less involved participants to ask questions about what’s been going on in the project. The agenda is typically published as a shared document so call organizers and participants can take notes during the call. You can see [an example of how Mozilla’s learning community structures its community calls here](https://teach.mozilla.org/community/community-call). 61 | 62 | A newsletter is a form of communication you can draft and send on a regular basis. You can collect updates from core contributors and survey your project for particular needs to share via email with anyone subscribed to your newsletter. If you choose to use a newsletter to talks/share about your project, make sure you meet your commitment to publish it regularly. 63 | 64 | Moreover, make sure that it’s easy for people who find your project to subscribe to the newsletter. Services like [Mailchimp](http://mailchimp.com)[](http://mailchimp.com) offer HTML email and newsletter design software free to small projects and communities. 65 | 66 | As you set up your newsletter, be sure to protect any email addresses you collect by sending the email to recipients using bcc or by using a mailing list you create rather than including every subscriber’s email address in the “to” line of every mailing. While your project is an open one, you should safeguard as much personal information about your contributors as possible so that sharing their email addresses or anything else about themselves is a choice they make. 67 | 68 | One other option for sharing updates is a development blog like [this one from the Coral Project](https://coralproject.net/)). A blog is a web page made up of posts that share news about a project. Platforms like [Wordpress](https://wordpress.com) let you create a blog without knowing much HTML. You can compose and edit your posts using a text-editor instead. A development blog might be just the thing to serve as both an easily discoverable landing page for your site and a regularly updated comms channel for your community. 69 | 70 | ### {{ site.assignment }} Start a Shared Calendar 71 | (10-15 minutes) 72 | 73 | Using a service like Google Calendar, chart upcoming opportunities for project members to meet online or off. Also consider posting essential milestones for your project. 74 | 75 | ### {{ site.assignment }} Build a Web Presence for Your Project 76 | (30+ minutes) 77 | 78 | Survey your contributors and other community members to see what kind of web presence they think would work best as an easily discoverable landing page for the project. You might do this through a GitHub issue (e.g. “Let’s develop our web presence”) or use a simple online survey tool like Google Forms or [Survey Monkey](https://www.surveymonkey.com/). 79 | 80 | Work to reach consensus about what kind of web presence makes the most sense for your project. Then ask community members if any volunteers have the expertise necessary to build that site or create that account. Work with them to get your landing page or main social media account set up. Finally, add the address of your landing page to your project documentation and share it widely with your community and others who might benefit from its work. 81 | 82 | ### {{ site.assignment }} Create a Comms Channel for Your Project 83 | (20-30 minutes) 84 | 85 | In consultation with community members, determine a format for sharing updates about your project on a regular basis. You might set up an online community call, publish a newsletter, or commit to writing posts for a development blog alongside core contributors. 86 | 87 | While you might have to create on these channels from time to time, your primary responsibility here is to make sure as many contributors’ voices are heard as possible by helping them to share their progress with others. Help your community figure out which channel works best, work with volunteers to set it up, and stick to your commitments to steward and publish updates on a regular basis. 88 | 89 | -------------------------------------------------------------------------------- /_articles/open-leadership-outro-and-next-steps.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Open Leadership Outro" 4 | module: "9" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/open-leadership-outro-and-next-steps/next-steps-for-open-leadership.md 8 | following: _articles/open-leadership-outro-and-next-steps/next-steps-for-open-leadership.md 9 | --- 10 | 11 | **Before you begin this section, gather together the offline and online materials and documentation you've assembled over the course of your project.** 12 | 13 | In this section, you'll consider open leadership advice from community organizers, expert facilitators, and veterans of working and leading in the open. After that, you'll have the chance to compose and share your own open leadership reflection on what you and your community have made and learned together over the course of Mozilla's Open Leadership Training Series. -------------------------------------------------------------------------------- /_articles/open-leadership-outro-and-next-steps/next-steps-for-open-leadership.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Next Steps for Open Leadership" 4 | module: "9.1" 5 | date: 2016-10-06 14:05:56 6 | time: "60 mins" 7 | summary: "Reflect on your open leadership journey and key takeaways for continuing your work." 8 | prereq: "Your project, its documentation, and event reports, including goal-setting documents like your open canvas" 9 | format: "Writing and reflection exercise on your experience as an open leader" 10 | materials: Your project's GitHub repo and a blog or other platform/technology for composing and sharing your reflection 11 | following: _articles/glossary.md 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | 17 | ### Open Leadership Takeaways 18 | 19 | Congratulations! You've done a lot of work in a short amount of time to level up your open leadership skills. As you take what you've learned and built into the future, keep these open essentials in mind. 20 | 21 | As [community organizers Marisa Franco, B Loewe, and Tania Unaueta write](https://medium.com/organizer-sandbox/how-we-make-change-is-changing-part-i-5326186575e6#.q10o4lync), "what makes open projects open-source is not the platform they use, but the way participation is designed. Whereas there’s still a hub and a core development team, participants have an ability to see the code and alter it to improve it." 22 | 23 | Your project might involve code, or it might not. It might be about policy or a design challenge that demands a response in an altogether different kind of materiality. Regardless, deciding to lead and work in the open means creating a platform that involves others in work that matters to them. As Franco et al. ask, "Does the problem you are trying to solve really matter to anyone? Is the solution you propose realistic and effective? In entrepreneurship, if the product you’re selling doesn’t meet a need or solve a problem, it’s not going anywhere." Moreover, 24 | 25 | > Establishing critical mass and that the demand resonates are critical because it drives participation and defines the depth of the participant’s commitments. It identifies and filters the team of the willing. For an open source campaign, if no one is moved by the problem addressed or the solution offered, it doesn’t matter that there’s an open door for his or her participation. Especially when there’s a long way to go from problem, to solution, to victory, the campaign needs both a foundational team of key players who have the guts, need, motivation and skills to win and a trajectory that will translate into mass appeal as it progresses. 26 | > 27 | > Take on projects that count; if you propose work that's important to your community, you'll find your "team of the willing" and can delegate a lot of the "work" of the project to them while you concentrate on the structures for participation, contribution, and meeting face-to-face that sustains the team's efforts. 28 | 29 | While urging us to bridge ["From Open to Justice,"](http://hackeducation.com/2014/11/16/from-open-to-justice) #edtech journalist Audrey Watters tells us that invoking "open" is not enough. You need to avoid "openwashing" your projects; don't convene communities around decisions you've already made and work you've already done. Your role is not to get community approval for something you made on your own. Rather, it is to create a deeply inclusive and respectful platform that contributors can use to meet the challenges facing your shared community. To realize the full potential of open-sourced projects like yours, Watters urges us to "recognize that what we need is social justice. We need politics, not simply a license. We need politics, not simply technology solutions. We need an ethics of care, of justice, not simply assume that “open” does the work of those for us." 30 | 31 | In other words, as "Open Matt" Thompson puts it: ["Stamping our feet and saying, 'work open, damnit!' doesn’t work."](https://openmatt.org/2011/04/06/how-to-work-open/) You have to commit to the process of inviting, testing, and iterating contributions. Toward those ends, Thompson asserts that "feedback is sometimes useful. Testing always is." The difference here is between asking, "What do you think?", and "Does this work?" Be specific when you ask users to test your work. If you're observing user interaction with your project - look for whether or not specific features function the way users think they should. It's essential that you know whether or not your project is meeting its stated goals - that you know whether or not it works. 32 | 33 | Finally, remember that your responsibility to your community is twofold. You're stewarding the project, but you're also modeling the open beliefs, habits, and technologies that make the work possible. Expert facilitator Allen Gunn [summarizes open commitments like this](http://blog.workopen.org/leadership/): 34 | 35 | > For 'open' to work well, there has to be an intrinsic commitment by all the stakeholders — to follow the process, follow through on commitments, and give feedback and interact with others in the community, in a lateral peer-based fashion. 36 | 37 | You are an open leader if you do all of those things and make it safe, possible, and compelling for others to do the same. 38 | 39 | ### What Does Success Look Like at the End of a Project? 40 | 41 | 42 | 43 | Mozilla’s [Hive Research Lab](https://hiveresearchlab.org/) characterizes the [core principles and benefits of working open](https://hiveresearchlab.files.wordpress.com/2014/12/what-does-it-mean-to-work-open-in-hive-nyc-hive-research-lab-october-2014.pdf) like this: 44 | 45 | ![](https://www.filepicker.io/api/file/0cUKYiMSQ9OP2N5O8DKD) 46 | 47 | Does your project allow for rapid prototyping and testing? Are you capturing and sharing your process and all the content below the surface of your project? Have you established clear contribution pathways and made it possible to benefit from community contributions and adaptations while explicitly recognizing and valuing the goodwill and labor of your contributors? 48 | 49 | Whether you take what you learned to launch another project or look for work that requires open leadership, it’s your role to help others realize the principles and benefits to see what they can accomplish together by working open. 50 | 51 | ### {{ site.assignment }} Draft a Reflection on Your Open Leadership Journey 52 | (45 minutes) 53 | 54 | Invite you contributors and other open leaders to read and comment on your thoughts. Add your voice to open conversations on the web and help others find the entry points into their own open leadership journeys. 55 | 56 | In drafting your reflection, consider questions like these (but don’t let them limit your response if you have more to say!): 57 | 58 | * How do you define open leadership? 59 | * How have you changed as a leader and person over the course of your project? By following this curriculum? 60 | * What have you learned? 61 | * What do you struggle with in leading and working in the open? What do you struggle with in the curriculum? 62 | * What surprised you the most? 63 | * What seemed easiest? 64 | * What seemed most difficult? 65 | * What are your most important takeaways or lessons learned? 66 | * What would you do differently if you could begin again? What will you do differently in your next project? 67 | 68 | As you continue to develop your open leadership skills and take on new projects in the open, we hope you’ll let us know how it goes, as well as how to improve this curriculum. We hope you’ll visit other [Mozilla Leadership Network](https://learning.mozilla.org) communities online and [join other leaders around the world](https://learning.mozilla.org/en-US/opportunities) supporting local communities in the fight to keep the web an open and free resource, accessible to all. 69 | 70 | -------------------------------------------------------------------------------- /_articles/open-project-maintenance.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Open Project Maintenance" 4 | module: "8" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/open-project-maintenance/open-project-maintenance.md 8 | following: _articles/open-project-maintenance/open-project-maintenance.md 9 | --- 10 | 11 | **Before you begin this section, make sure you have all of your project's online and event documentation up-to-date in your repo.** 12 | 13 | In this section, you'll learn how to steward your project and its community by mentoring contributors and developing an explicit plan to maintain your project's key content. -------------------------------------------------------------------------------- /_articles/open-project-maintenance/open-project-maintenance.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Open Project Maintenance" 4 | module: "8.1" 5 | date: 2016-10-06 14:05:56 6 | time: "60 mins" 7 | following: _articles/open-leadership-outro-and-next-steps.md 8 | summary: "Create a maintenance plan to prolong the life of your project and keep it accessible for your community and others." 9 | prereq: "Your community project and its documentation and materials in your GitHub repo" 10 | format: "You'll complete a project in GitHub." 11 | materials: "Access to your GitHub project repo" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | 17 | ### Mentorship as Maintenance 18 | 19 | Imagine reaching the end of your project. You've shipped an open source product to a community of users who helped build it. 20 | 21 | It's a natural time to ask, "What's next?" However, your project still needs your attention if it's to remain functional and useful in the long term. Maintenance of your open project is essential to its longevity and and is needed in order to be adopted by communities similar to yours. 22 | 23 | Mentorship in an important, but often overlooked a next step. Maintaining your project is as much about keeping its technology fresh - or at least functional - as it is about continuing your relationship with your contributors. As an open leader, you should continue to find ways to support them even after the official end of your shared project. Perhaps your next step is to mentor someone who wants to become an open leader, as well, and to serve as a contributor on their project. 24 | 25 | This draft of a [mentorship rubric](https://github.com/MozillaFoundation/curriculum-workshop/blob/master/march-8-2016/g-doc-transcript.md) for women mentors came out of the inaugural [Mozilla Curriculum Workshop](https://teach.mozilla.org/community/curriculum-workshop/) webcast on International Women’s Day. Consider forking or cloning it into your own GitHub repo and developing its guidelines further for your own mentorship work with community members. 26 | 27 | [![](https://lh4.googleusercontent.com/_4h4xPUhInqRys3fyQ_45hnrSg9A24UxqPec-a3wc_ZuDLlg0m6moNQgXgX1t_s-ggRkjvQ8HvxqKMl04REyKwzvKvlzagU4WXRVR8oTNi1GSfsefL2SaeFoeXQMQozEbHst3m-h)](https://github.com/MozillaFoundation/curriculum-workshop/blob/master/march-8-2016/g-doc-transcript.md) 28 | 29 | What would you add to those guidelines? What kind of mentorship practices should you adopt to help others, but also push yourself forward as a leader and community support? As a mentor, how would you use guidelines like these to help acclimate a mentee to the culture, contribution guidelines, and code of conduct for your project? 30 | 31 | You can also help your contributors move along the “committment curve” to deepen their engagement with, and contribute to your project. Check out [this curve from the A-Team Bootcamp](http://ateam-bootcamp.readthedocs.io/en/latest/guide/curve.html) to help you consider how community members can “level-up.” 32 | 33 | ### Maintaining the Stuff 34 | 35 | GitHub is a fine place to host your project as it enters maintenance mode; depositing your work and documentation in this kind of repository keeps its available for others to fork, clone, adapt, and improve over time. You don't need to update your project every day, but you should be able to update it when people offer suggestions or make pull requests through Git. You should also expect some questions or even requests for assistance from users who discover your project online and want to localize it for their communities. 36 | 37 | As a first step in drafting and implementing your project maintenance plan, audit your documentation to see if there are parts of your project that aren't adequately explained. Be sure to fill in any gaps in documentation so potential users know which parts of your project do what and how they do it. 38 | 39 | Consider setting aside a certain amount of time per week or month to check in on your project and with your community via your project's GitHub issues. If your project has a website hosted on GitHub Pages or another sever, keep the contact information on that site up to date. If your project collects user-data, review what gets collected frequently to make sure the data comes through in a useful format and doesn't expose private or sensitive information to anyone visiting your repo. In general, plan to check in on your project frequently enough to make sure it's working correctly and accessible to anyone who needs it. 40 | 41 | Additionally, draft and upload documentation to your repo, outlining your plan for project maintenance. Take feedback from project participants and contributors and consider recruiting a volunteer with whom you can share maintenance duties. 42 | 43 | For live communication between you and your contributors, set up a chat room through a service like [IRC](https://developer.mozilla.org/en-US/docs/Mozilla/QA/Getting_Started_with_IRC), [Gitter](https://gitter.im/), or [Mattermost](http://www.mattermost.org/) where people can ask questions and connect. 44 | 45 | If your project makes heavy use of open data, check out [this presentation on Open Data Reuse](https://docs.google.com/presentation/d/1kZd-ZD5lru5a7jIbyi9q8cBYCCAKRnIBSRvixYFtoF0/edit?pref=2&pli=1#slide=id.g1088c5b110_0_72) from the [Mozilla Science Lab](https://mozillascience.org/). You'll want to ensure that your data "is made easily and freely available for anyone to access, use, and share without restriction" while addressing how you approach human data use, data ownership, and data formatting through your documentation. 46 | 47 | If your project makes use of a particular open code-base for data visualization, web development, or any other kind of scripting, you'll want make such dependencies clear in your documentation and in the comments of your coded products. Part of your maintenance plan should be checking for updates for any of the APIs, coding languages, or libraries you use in your project and implementing them to keep your work as accessible as possible for others. 48 | 49 | Finally, think about how you might deprecate, or stop supporting, your project if it outlasts its usefulness to its users. Is there a way to share its content and documentation even after it stops working? Can you turn the project over to new maintainers in the project community? How will its ultimate form the work you and your community members did create it? 50 | 51 | ### Questions to Consider 52 | 53 | To help draft your maintenance plan and sustain your project, answer questions like these. 54 | 55 | **Logistical** 56 | 57 | * Which parts of your documentation do you need to maintain or update? 58 | * Which parts of your content or codebase do you need to maintain or update? 59 | * How often should you perform maintenance on your repo? 60 | 61 | **Interpersonal** 62 | 63 | * How will you identify and recruit community members who want to help maintain the project? 64 | * How will you decide when to end maintenance? 65 | * How will you keep your project’s documentation and content or codebase discoverable and functional enough to help communities that need and find it? 66 | 67 | 68 | ### {{ site.assignment }} Audit Your Documentation and Fill in the Blanks 69 | (30 minutes) 70 | 71 | Read through the GitHub documentation for your project. Look for gaps in your documentation and fill-in-the-blanks with new documents that provide explanations for how you and the community implemented pieces of work that are missing initial documentation. Also clarify anything that sounds clunky or jargony so it's clear to the most diverse audience of users possible. Finally, update anything in the documentation that's changed in the course of your project. 72 | 73 | ### {{ site.assignment }} Create a Maintenance Plan and Add it to GitHub 74 | (15 minutes) 75 | 76 | Draft your maintenance plan and share it with your community on GitHub. Your plan should describe: 77 | 78 | * Who is responsible for which parts of the plan. 79 | * Expected time commitments from each person or for each role. 80 | * How you and your team will maintain your technology and fix bugs. 81 | * How you and your team will maintain your data. 82 | * How you and your team will help others fork and use your project. 83 | * How and when you and your team will deprecate or sunset and archive your project. 84 | * How you and your community will stay in touch during the maintenance phase of your project. 85 | 86 | Upload it to your repo and invite comments, suggestions, and pull requests that might improve it or cover any blind-spots you had while writing it. Survey contributors to see if any of them would like to volunteer to help maintaining the project in the long-term. 87 | 88 | ### {{ site.assignment }} File Issues and Set Milestones for Your Check-Ins 89 | (15 minutes) 90 | 91 | Finally, add new issues and milestones in GitHub that reflect the steps and scheduling in your maintenance plan. Build on the trust you and your community established in creating the project by stewarding and updating it to ensure its longevity and reliability. Your project is an example of leading and working in the open that can inform and inspire other communities and projects in the future. -------------------------------------------------------------------------------- /_articles/opening-your-project.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Opening Your Project" 4 | module: "2" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/opening-your-project/develop-an-open-project-strategy-with-open-canvas.md 8 | - _articles/opening-your-project/write-a-great-project-readme.md 9 | - _articles/opening-your-project/start-your-project-roadmap.md 10 | following: _articles/opening-your-project/develop-an-open-project-strategy-with-open-canvas.md 11 | --- 12 | 13 | This section is designed to help you clarify and communicate your project idea, purpose and goals in a way that will invite and encourage participation from your community. This is a first step if you’re opening up a brand new project, but you can also use these exercises to refocus an open project that’s stalled or stuck. You’ll expand your project vision statement into a more detailed description, strategy, and plan for upcoming work. These documents will serve as a “welcome mat” for your project, a clear way for newcomers to quickly understand what the project is about, who can be involved, and where the work is headed. 14 | -------------------------------------------------------------------------------- /_articles/opening-your-project/develop-an-open-project-strategy-with-open-canvas.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Open Canvas" 4 | module: "2.1" 5 | date: 2016-10-06 14:05:56 6 | time: "40 mins" 7 | following: _articles/opening-your-project/write-a-great-project-readme.md 8 | summary: "Use a format called Open Canvas to help further define your project goals, strategy, and needs for resources." 9 | prereq: "Have completed the previous section" 10 | format: > 11 | * Read and watch videos on this topic 12 | 13 | * Do a thinking/writing assignment on your own or with a group 14 | materials: > 15 | * Pencil and paper or this [editable version of Open Canvas](https://goo.gl/to6PYn) (if you’d like to work online) 16 | 17 | * If you are working in a group, you can use a whiteboard and sticky notes so ideas can be easily shared with all members 18 | --- 19 | 20 | * TOC 21 | {:toc} 22 | 23 | ### Introducing Open Canvas 24 | 25 | Open Canvas is a way of clarifying your project idea and encouraging you to think strategically about project goals, plans, and resources you’ll need. It’s adapted from [Lean Canvas](https://leanstack.com/lean-canvas/), a one-page format used for describing a start-up business project. **What’s special about Open Canvas is that it assumes you’ll be working collaboratively with others-- that your project is community-based and will be fueled by significant contributions from volunteers, one of the key principles of working open.** 26 | 27 | To make an Open Canvas, you’ll fill a one-page template with information about your project. You’re not starting from scratch here-- you can use the vision statement from the previous section as a starting point. Here’s a sample of the Open Canvas template, with descriptions of the information required in each section. The blue dotted line separates your thinking around your **product** and your thinking about your **community,** to highlight that you need to think about both of these when making your plan. The content in the green square deals with **project execution**, the resources you need to build your product 28 | 29 | ![](https://lh5.googleusercontent.com/Ax42zcOiiuTTv9o5JgembXR7Z4VKVoeRQNND1RE8B6nNyKoMZCLT3OXZkiMoH4r6p5vrgXL3deO6ZuIuSHVoqSyPo7tKUF64xaPXz0Xkuifny4nKEpDb1_9JI6pm4iHakzauMfEg) 30 | 31 | Here’s more about the Open Canvas tool from its creator, Abby Cabunoc Mayes, Developer Engagement Manager at the Mozilla Foundation. 32 | 33 | {% include videowrapper.html 34 | url="https://www.filepicker.io/api/file/LZtI0qVRTDqy0stDOkxX" 35 | title="Open Canvas, Abby Cabunoc Mayes" %} 36 | 37 | Here’s a sample of an Open Canvas created by Abby for Mozilla Science Lab’s Paper Badger Open Project. 38 | 39 | ![](https://lh6.googleusercontent.com/Ia3HtZ6f0MRAcD2mDzhBVnow2DNNmUNbYMgulW3qPWJN1xdjOuMdLnhePaqAEHDy39ZFojXM2OtdI8uo3QcYaxvwTz3QM9al5YEBQtkwCKKVc6azrQ4b5DPWisPiXCVHEBt6lKnG) 40 | 41 | ### Minimum Viable Product (MVP) 42 | 43 | Open Canvas should help you identify needs and resources that are critical to create a Minimum Viable Product (MVP), or a first, simple version of your project that meets the key goals for the project. The concept of MVP comes from the start-up world, where resources are often scarce and timelines are tight, so creating a simple functional product or project quickly is a priority. While you may have ideas or plans for an extended, enhanced version of your project-- for example you may want to eventually expand from coding workshops for students in public schools to running summer coding camps, or you might have a brilliant idea for that fancy extra feature for your app-- it’s always best to build your Minimum Viable Product first. This way, you can test out the project and ensure the idea works before you spend lots of time and resources expanding it. If you find your project is too complex to fit into the Open Canvas model, it may be that you’re trying to do too much, and need to narrow your scope. 44 | 45 | ### {{ site.assignment }} Make an Open Canvas 46 | 47 | In this assignment you’ll use Open Canvas to organize the information you already know about your project, clarify and summarize project goals and define resource needs. 48 | 49 | 1. [Using the template](https://docs.google.com/presentation/d/1_eya6vVXpaZOpXFZsZNbVHboROI4IPWy-poCnYTNtnQ/edit#slide=id.p), fill out Open Canvas for your project/idea. Read the description of what goes in each field (aloud, if you’re working in a group). 50 | 2. For your project, write what you think goes in each field-- your problem, solution, etc. Take a minute or two on each. If working in a group, have everyone write their own answer to each field on a sticky note. 51 | 3. Share, revise, and add. If working in a group, review the answers and spend a few minutes coming to shared definitions of each. Add these to the template or sticky note collection, 52 | 4. If you don’t yet know some of this information-- that’s OK! You can leave user channels, contributor profiles and channels boxes blank for now if you don’t have that information. We’ll go over those items in later Sections (see Building Communities of Contributors, Open Communications). You should have information for the problem, solution, value proposition, key metrics, and user profiles boxes filled in. 53 | 54 | Now that you’ve got a more complete, detailed sense of your project down on paper, in the next module you’ll make a user-friendly version of this information, to welcome and orient potential contributors to the project. 55 | 56 | -------------------------------------------------------------------------------- /_articles/opening-your-project/start-your-project-roadmap.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Start Your Roadmap" 4 | module: "2.3" 5 | date: 2016-10-06 14:05:56 6 | time: "45 min" 7 | following: _articles/building-communities-of-contributors.md 8 | summary: "Outline the work ahead on this project in a document called a “Roadmap.”" 9 | prereq: "Have completed all previous sections and modules" 10 | format: "A writing and thinking assignment. It can be done alone, but you can invite a supporter or community member to help you plan!" 11 | materials: "Pen and paper, or a computer and word processing software" 12 | 13 | --- 14 | * TOC 15 | {:toc} 16 | 17 | 18 | ### Introducing Project Roadmaps 19 | 20 | When you're starting an open project (or restarting a project, or starting a new phase of a project), it's important to outline and plan for the work ahead and share that plan with any potential contributors. **We’ll do this using a text document we’ll call a “roadmap, ” Like a road map you’d use while traveling, this document will help to identify where you are now and how to reach your project’s end goal, as well as the course that you will need to take to get there.** Your roadmap summarizes your vision and includes a timeline for tasks. This a great tool for you-- it helps you schedule work and track goals-- but it’s key for anyone who might contribute to your project, so they know what’s currently happening on the project, and what’s next. 21 | 22 | As you make your Roadmap, you may realize there are dependencies among different tasks. For example, you might need to define the structure of your database before you decide on a strategy for searching it, or you might need to secure a venue for an event before you decide the number of sessions or speakers you'll invite. Creating a Roadmap helps you get a sense of not only all the steps that have to be done on a project are (there are always more than we anticipate), but also how to schedule tasks and plan work efficiently. 23 | 24 | [Check out this example Roadmap from the STEMM Role Models project.](https://github.com/KirstieJane/STEMMRoleModels/issues/1) 25 | 26 | ### Milestones 27 | 28 | The timeline of tasks is the probably most important part of the Roadmap so as a warm-up exercise, you’ll decide on **project milestones which are significant turning points or events that will move the project forward**. Review the different types of milestones outlined below, and decide which ones are most appropriate for the kind of work you’ll do on your project. 29 | 30 | * **Project Status Goals.** If you’re creating a software project, a milestone could be completing a specific feature or a release (see the section on Prototypes, below). 31 | * **Dates.** If you have deadlines or a set span of time to work on this project, use those dates as milestones. If you’re working in formal education, dates in the academic calendar can be natural milestones. 32 | * **Events.** If your project will be demoed or shown at an event or conference, or if your project involves planning an event, then you’d want to create milestones around that event, for preparation (such as sending invites, arrange for space, etc), running the actual event, and follow-up after the event. (more or events and convenings in section X. 33 | * **Timeframes.** If your project is a longer, ongoing effort and you don’t yet have any hard deadlines, you may want to create short, medium and long term milestones. 34 | * Short term - tasks you are working on now 35 | * Medium term - tasks that are coming up next 36 | * Long term - where your project is going, beyond the next few weeks or months 37 | 38 | ### GitHub Projects 39 | 40 | Another way to track your project's progress is use to use [GitHub's Projects](https://help.github.com/articles/tracking-the-progress-of-your-work-with-projects/). This feature allows you create [kanban-style boards](https://en.wikipedia.org/wiki/Kanban_(development)) to manage tasks, take Notes to quickly add tasks or reminders to your project which can be converted to Issues when you're ready. 41 | 42 | It's found here: 43 | 44 | ![](https://raw.githubusercontent.com/belkinsa/open-leadership-training-series/49da361324e1004244dc9c2820c212a40db2729e/img/githib-projects.png) 45 | 46 | Examples: 47 | 48 | * [Bootstrap Project](https://github.com/twbs/bootstrap/projects/2) 49 | 50 | ### Prototyping 51 | 52 | As you plan your project, you might want consider when you’ll create and test prototypes. **A prototype is an early, unpolished version of your project or a feature of your project, created specifically for testing purposes.** Prototyping is the act of testing a feature or solution by building or making a rough or mocked-up version of that feature. It’s important to note the difference between a prototype and an MVP (Minimum Viable Product). The MVP is a stripped down but functional version of your project that’s ready for use. The prototype is often incomplete, and not for real-world use, long term use or distribution. 53 | 54 | 55 | 56 | Protyping small, testable iterations of different features of your project is a great way to manage time and resources. It allows you to break down a larger project into a series of achievable tasks. **Testing helps ensure that a feature is successful before you move on to the next task, so you don’t spend time refining something that’s not viable.** Since prototypes are not designed for long term use, they come in all forms: you could make a prototype of a user interface, a workflow, or a game mechanic by drawing on sheets of paper. You might prototype in code and make a very simple, un-designed, partial version of an app to test some very basic functionality. You might sketch out a draft lesson plan and mock up some materials for a workshop. Often in a project you will make several prototypes, each modified according to feedback or lessons learned from the previous version. You may try several different prototypes represent different directions for the project. It’s OK if something you do doesn’t work out! These “failures” are actually learning experiences that will improve your final product. 57 | 58 | ### User Testing 59 | 60 | **No matter what form your prototype takes, it should be something users can react to, and their feedback should help answer questions or define a direction for further work.** When you’re ready to test with users, it’s great to have a that specific question in mind. For example, you might want to know if users can easily find the search function in your interface, if the instructions for a workshop activity or game you’ve devised are complete and make sense, or if a tagging function in your app is working properly. 61 | 62 | You don’t have to test your prototype with hundreds or even dozens of people, even talking just a to a handful of people is useful. It’s always best to test with people who are potential users, who’d might have an actual interest in using your project when it’s done. User testing sessions can be as simple as sitting down with someone who is not familiar with the project, providing them with the prototype, observing how they use it, and then asking a few questions and listening to their feedback. If your project is easily shared online, you might invite lots of people from your community to test, and ask them to fill out a feedback survey. User testing is great for both your project and your testers. Your users get a better product because they can give feedback on the design. And by showing your project to users early on, you generate buzz about your work and prime your testers to use the eventual, finished product. Some of your testers may be so excited about the project that they decide to become contributors! 63 | 64 | ### {{ site.assignment }} Make A Project Roadmap 65 | 66 | 1. Write your "Project Mission & Summary." Start with the project name along with a shorted version of your project description from the readme, or you can use your vision statement. Since this is key information that all contributors need to understand, it’s okay for some it to be repeated in different places, in different documents. 67 | 68 | 2. Pick 1-3 milestones. Depending on your project, milestones can vary: they may be related to software development goals, learning resources you’ll create, events or meetings you plan to hold, campaigns you’ll run. 69 | 70 | 3. List tasks to complete for each milestone. Write a short description of each task required to successfully complete project work on a milestone. Depending on your project, these might be items like: “Research existing Javascript learning resources for kids” or “Publicize the October Online Privacy Meet-up” or “Implement a new visualization scheme for the user-facing badges.” Be sure to time here to explain why you are doing this task. This will reinforce your vision for the project and help others see why each step is meaningful in the larger timeline. 71 | 72 | 4. Let people know how they can get involved. As mentioned in the readme section above, this is where you’ll link to contributor guidelines. 73 | 74 | 5. Post your Roadmap. You’ll want to put your roadmap online where your potential contributors can find it, and let people know it’s there. If you already have a project website or a repository on a web-based collaboration tool like GitHub, these are excellent places to post your Roadmap. If you don’t have an online presence yet, don’t worry! We’ll cover GitHub in the next section! 75 | 76 | 6. Update often! The direction of your project will change as the work evolves. Return to your roadmap frequently to update, add or change milestones, and track your progress! You may want to welcome supporters or key participants into any conversation about Roadmapping, as a way of increasing their participation and sense of ownership of the project. 77 | 78 | Now, armed with a great project description and a plan for what you’re going to do, you’re ready to consider the community of contributors that you hope to develop around your open project. 79 | -------------------------------------------------------------------------------- /_articles/opening-your-project/write-a-great-project-readme.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Writing a README.md" 4 | module: "2.2" 5 | date: 2016-10-06 14:05:56 6 | time: "20 min" 7 | following: _articles/opening-your-project/start-your-project-roadmap.md 8 | summary: "In this module, you’ll create a short text document called a “README” file, to welcome newcomers to your project." 9 | prereq: "Have completed the [Open Canvas](/open-leadership-training-series/articles/opening-your-project/develop-an-open-project-strategy-with-open-canvas/) exercise for your project" 10 | format: > 11 | * Read text and explore links 12 | 13 | * Do a writing/thinking exercise to create a README (best done with community members, if available) 14 | materials: "Pen and paper, or a computer with word processing software" 15 | 16 | --- 17 | * TOC 18 | {:toc} 19 | 20 | ### Introducing README files 21 | 22 | The README file (whose name by convention is written in all-caps, and represents a request to one and all--- “read me!”) is one of the first things that potential contributors will encounter when learning about your project. The aim of the README is to welcome, orient, and encourage newcomers to participate. This file will live on the web, as part of a collection of working documents on your project, called a “repository” (If your project isn’t online, don’t worry about that just yet, you’ll set that up in Module 5). 23 | 24 | When you open your project, you may have an audience in mind (for example, software developers, educators, scientists or activists)... but you may want to reach a much broader community! Many people outside of your target audience may be interested in your project. People from all walks of life and professions-- writers, designers, artists, journalists, parents, citizen scientists-- may have valuable contributions to offer. Clearly communicating information about your project will enable others to understand and participate. 25 | 26 | [Here’s a sample README file from the STEMM Role Models Project.](https://github.com/KirstieJane/STEMMRoleModels) This project and all related files are hosted on the collaboration platform GitHub (more about that in Sections 4 and 5), so you'll need to scroll down below the list of files to see the README text. 27 | [](https://github.com/KirstieJane/STEMMRoleModels) 28 | 29 | ### {{ site.assignment }} Write your README 30 | 31 | 1. Draft your README file. 32 | 33 | Use the information you gathered in the Open Canvas exercise as a starting point. Be sure to: 34 | 35 | * Say hello! Welcome people to the project. It’s great to introduce yourself here, so people know they’re dealing with a person or group of real people. Let potential contributors know you’re excited that they’re here to learn more 36 | * Write a project description: what you're doing, with who, for who, and why. Sound familiar? This is a version of your project vision. Expand your sentence as a full paragraph, adding any new details about aims and the problems you plan to solve that surfaced in the Open Canvas activity. Try to phrase this so it’s understandable and appealing to a wide variety of people, not just those in your field. 37 | * Explain what makes your project special, useful, exciting! You can use the ideas you generated for “Unique Value Proposition” in your Open Canvas here. 38 | * Show how to get started using or contributing to the project. If you’re just getting started, this could be as simple as asking people to attend a planning call or kick-off event, or sign up for an email newsletter about the project. If you’re not sure quite how to get users involved just yet, don’t worry! In the next module, you’ll devise some ways for newcomers to get involved, and create contributor guidelines. Once you’ve done the next module, and you can come back to this README and add a link to contributor guidelines to this section. 39 | * State what resources are most needed. If you have a need for a special kind of help, expertise, or a resource like event space, be sure to mention that here. 40 | 41 | 2. Test your README for Jargon 42 | 43 | When you’re working in any field, whether it’s software engineering or K-12 education, you’ll learn and use jargon -- terms that have a special meaning to your field but likely won’t make sense to anyone who isn’t part of that field. **Relying too heavily on jargon can not only confuse newcomers, but it can also obscure detail and prevent even those in the know from coming to a shared understanding of terms.** 44 | 45 | As an experiment, copy and paste your project description (what you're doing, for who, and why, as described in the second bullet point above) and drop it into the [Up-Goer 5 text editor](http://splasho.com/upgoer5/). This text editor limits you to only the “ten hundred” most common words in the English language (so-called because “thousand” isn’t one of those common words). See if you can rewrite the description using only allowed words-- it’s often harder than it looks. For reference, [here is an example of a rocket ship diagram communicated in common language.](http://xkcd.com/1133/) This specialized text editor is a great way to identify technical language or any other wording that may confuse newcomers. It’s also a good way for you to clarify your understanding of the terms you use. **In your final text, you don't need to restrict yourself to only the most common words, as in the previous step--if you do, your project description may become overly simplified and limited.** But you should use what you've learned in step 2 to keep your README as understandable and jargon-free as possible. 46 | 47 | 3. Re-write your README 48 | 49 | Re-write your entire README in clear language and define all terms. If you use jargon, be sure to define those words as clearly as you can, as part of the README text. 50 | 51 | In the next module, you’ll create a Roadmap for your project, a way for you and any potential contributors to keep track of project work that’s upcoming and underway. 52 | -------------------------------------------------------------------------------- /_articles/readme.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "README" 4 | following: _articles/introduction-to-open-leadership.md 5 | --- 6 | 7 | ### Intro to the Open Leadership Series (Series README) 8 | 9 | This Open Leadership Training Series is designed to teach you best practices in “working open” -- a way of working in which: 10 | 11 | * **a community of people collaborate to make or build something amazing,** 12 | * **and any product or knowledge that the community of collaborators creates is shared widely and freely with the public on the world wide web.** 13 | 14 | This training is designed for those starting up or currently leading open projects-- project leads, partners, or small groups of co-leaders responsible for project success and growth. 15 | 16 | This training was developed by the non-profit Mozilla Foundation, with help from members of the broader Mozilla Community. You may recognize the name Mozilla-- we’re a group of people, organized as a non-profit, public charity-- that makes the Firefox web browser and champions a free and open web for all. Mozilla’s Firefox is an open source project, which means the source code is freely, publicly available and anyone who would like to can help develop the project. To create this training, we drew on our many years of experience leading open projects. 17 | 18 | The training consists of nine sections, each containing a set of modules on a topic related to working open. In each module, you’ll learn by reading, watching short videos created by Mozilla staff and community members, and completing hands-on assignments. The assignments build on each other, so this training works best if you do the modules in order. The nine sections are: 19 | 20 | 1. [Introduction to Open Leadership]({{ site.baseurl }}/articles/introduction-to-open-leadership) 21 | 2. [Opening Your Project]({{ site.baseurl }}/articles/opening-your-project) 22 | 3. [Building Communities of Contributors]({{ site.baseurl }}/articles/building-communities-of-contributors) 23 | 4. [Get Your Project Online -- Getting Started with GitHub]({{ site.baseurl }}/articles/get-your-project-online) 24 | 5. [GitHub for Collaboration]({{ site.baseurl }}/articles/github-for-collaboration) 25 | 6. [Open Communications]({{ site.baseurl }}/articles/open-communications) 26 | 7. [Running Awesome Community Events]({{ site.baseurl }}/articles/running-awesome-community-events) 27 | 8. [Open Project Maintenance]({{ site.baseurl }}/articles/open-project-maintenance) 28 | 9. [Open Leadership Outro and Next Steps]({{ site.baseurl }}/articles/open-leadership-outro-and-next-steps) 29 | 30 | #### Before you start the training series, you must have: 31 | 32 | 1. a project, or a vision or idea of something you want to create, 33 | 2. an audience or community in mind; the group of people who will work together to build this project 34 | 3. access to the world wide web 35 | 36 | Having a project in mind or underway is key, because you’ll work through the assignments in each module using your own content, knowledge, and ideas, related to your project. **This is a one-size-fits-all resource-- it doesn’t matter if your project aims to teach kids to code in Cleveland or build mobile apps with taxi drivers in Bangladesh**. And it’s okay if your project is just getting up and running, or if you haven’t even started yet. This training is also useful if you have an open project that’s gotten derailed or is struggling to gain momentum or attract contributors. If you don’t have a community of contributors (those people eager to pitch in and help) or if you only have a handful of contributors, don’t worry! The “Building Communities of Contributors” section of this training is all about helping you find, connect with, and keep contributors on your project. 37 | 38 | **Completion of the assignments in this series is very important!** The work in each assignment represents real, significant work on your project, from project planning to developing good workflows to convening events and communicating effectively with contributors. It’s important to do the modules in order, because the assignments build on each other-- for example, you’ll want to complete the module on open communications before you jump into a module about running an event, because the open communications module will help you set up the tools and infrastructure to get the word out about your event. We’ve provided a time estimate of how long it should take to complete each module, including assignments. **This training series is designed to grow along with your project-- from project set-up through maintenance**. While you might complete the reading/learning part of this training over the course of a few days, some of the assignments-- such as convening a community event-- may take much longer to complete. 39 | 40 | **Upon completion of this training series, you’ll have the basic knowledge and initial technical skills to lead your own open project, or to get an existing open project back on track by improving your open practice**. If all this sounds good to you, and you’re ready with your project or project idea, let’s jump in and start with the first section, Intro to Open Leadership. 41 | -------------------------------------------------------------------------------- /_articles/running-awesome-community-events.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Running Awesome Events" 4 | module: "7" 5 | date: 2016-10-06 14:05:56 6 | contents: 7 | - _articles/running-awesome-community-events/designing-an-open-event.md 8 | - _articles/running-awesome-community-events/event-planning-and-facilitation.md 9 | - _articles/running-awesome-community-events/event-follow-up.md 10 | - _articles/running-awesome-community-events/documenting-and-reporting.md 11 | following: _articles/running-awesome-community-events/designing-an-open-event.md 12 | --- 13 | 14 | **Before you start this section, you'll need to have an established online project and community communication channels you can use to bring contributors together for a face-to-face (F2F) event such as a work sprint or hack jam.** 15 | 16 | In the section, you'll learn how to design your event for accessibility, inclusivity, and openness. You'll also learn how to facilitate the learning and logistics at your event. Finally, you'll develop plans for following up with participants after your event and for documenting and reporting what you accomplished there. -------------------------------------------------------------------------------- /_articles/running-awesome-community-events/documenting-and-reporting.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Documenting & Reporting" 4 | module: "7.4" 5 | date: 2016-10-06 14:05:56 6 | time: "60 mins" 7 | following: _articles/open-project-maintenance.md 8 | summary: "Plan to capture and share the community-building, learning, and work that goes on at face-to-face events supporting your project." 9 | prereq: "Plans for a face-to-face event you can use to think through documenting and reporting its outcomes" 10 | format: "Preparation and planning for documentation around your event" 11 | materials: "Documentation tools and an open place (like a blog) to share your reports" 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | ### Planning Your Documentation and Reporting 17 | 18 | To help yourself and your community benefit and learn from everything that goes on at a face-to-face (F2F) event, it's important to capture key parts of the event and report on the work done there. 19 | 20 | {% include videowrapper.html 21 | url="https://www.filepicker.io/api/file/hwjxTPRAQCuYJOtuX7GT" 22 | title="Documenting and Reporting, Caro Alvarez" %} 23 | 24 | Part of working open is making sure that everyone who wants to contribute to your project or comment on it can do so. By showing others what happens at your events, you help people who can't attend stay involved the work done there. 25 | 26 | If you can find a contributor willing to help, it's great to delegate documentation and reporting responsibilities while you facilitate an event. You should have a plan worked out with that contributor ahead of time to make sure you collect the kind of information and media you want to share afterwards. 27 | 28 | * Who will record what happens at the event? 29 | * Which parts of the event are essential to capture? 30 | * What technologies make the most sense for reporting to your community? 31 | 32 | Ahead of your event, decide on who will collect and share the stories and artifacts you’re looking for. Think about what kinds of notes and recordings they should take throughout the training. To report to the widest and most diverse audience possible after your event, it’s a good idea to use several different kinds of media for gathering information and reporting. 33 | 34 | * You can take typed or written notes, or even photograph or sketch events, for a recap blog post or newsletter article. 35 | * You can capture photos and videos of hands-on, participatory events to show how work was done at the event. 36 | * You can record brief interviews to embed in your report or to edit into a podcast about the event. 37 | * You can share a hashtag or social media channel ahead of the event and post it throughout your venue to encourage backchannel communication and chatting between onsite and remote attendees. Then, after the event, you can collect and share those conversations with a service like [Storify](https://storify.com/). 38 | 39 | Keep participants’ privacy choices in mind as you record or take photos at events. Make sure attendees know how to opt out of being photographed or otherwise recorded and include those steps in your code of conduct for the event. Many events offer different colored name-tags or wristbands, and the different colors represent different privacy choices. 40 | 41 | For example, a youth attendee might have a blue lanyard indicating you need to get parental permission before photographing them. Attendees who do not want to be photographed at all might have an orange lanyard instead. 42 | 43 | Finally, as you capture individual and group contributions to share, be sure to ask your contributors how they would like their work attributed in your report. 44 | 45 | Tips for event documentation and reporting: 46 | 47 | * **Before the event:** Create a plan for documenting what goes on at your face-to-face event. Then assemble the people and stuff you need to record what happens at the event. 48 | 49 | * **During the event:** Take notes and collect data! Keep an eye out for stories, projects, or other data points to share. Document those things. You shouldn’t try to hold everything in your head until after the event. Also you don’t want to have to rely on your memory. 50 | 51 | * **After the event:** Share what happened at your event with onsite and remote participants through a blog post, community call, newsletter, or other open platform. 52 | 53 | ### Examples of Event Reporting 54 | 55 | Great event reports 56 | 57 | * Contain clear calls to action to get involved with the project. 58 | * Respect the privacy of attendees. 59 | * Clearly articulate the goals and outcomes of covered events. 60 | 61 | Here's an example of event reporting from digital literacy work in Kenya. 62 | 63 | ![](https://mozilla-foundation-research.s3.amazonaws.com/2016/Mar/24667076335_c749429c96_k-1456856592036.jpg) 64 | 65 | [What we learned at the DSO community bootcamp](https://mozilla-foundation-research.herokuapp.com/what-we-learned-with-the-dso-community-bootcamp/) 66 | 67 | Here's another example of an event report from a web literacy training for educators in the United States. 68 | 69 | ![](https://iteachtheweb.files.wordpress.com/2015/11/4.jpg?w=500&h=&crop=1) 70 | 71 | [Pilot Experience by Mozilla Learning Network](https://iteachtheweb.wordpress.com/2015/11/23/nwp/) 72 | 73 | Notice how each report explains the purpose of each event and summarizes it with images, text, and other media. 74 | 75 | The Mozilla Clubs network also offers [this tool for event reporting](http://mozilla.github.io/clubs-events). 76 | 77 | Think through your documentation and reporting plan and make sure you collaborate on it with your delegate beforehand. Work through these questions, but also add anything specific you want to track that's not covered in the list. 78 | 79 | * How can you summarize the event for people who cannot attend? 80 | * How can you surface and share the essential work done there that shapes your project going forward? 81 | * How can you use your event report as an invitation to contribute to the next phase of your project? 82 | 83 | Your reports are also a great way to share the story of your project with a wider audience online. Resources like this [solutions journalism toolkit from the Pulitzer Center](http://www.solutionsjournalism.org/wp-content/uploads/2014/11/Pulitzer-toolkit-FINAL-2-pg-spread.pdf) can help you ask and answer questions that surface the importance and impact of your community’s work for others. 84 | 85 | 86 | ### {{ site.assignment }} Draft a Documentation Checklist on GitHub 87 | (20 minutes) 88 | 89 | Add an issue to your project or event-planning folder and outline your plan for recording your event. Be sure to indicate who will do what and include items or steps that remind you to account for attendees’ privacy choices and attribution preferences. Invite your entire community to offer suggestions about what’s most important to capture during the convening. 90 | 91 | For example, drawing from [Leslie Hawthorn’s](https://hawthornlandings.org/about-2/) [“How To: Writing an Excellent Post-Event Wrap Up Report,”](https://hawthornlandings.org/2013/02/15/how-to-writing-an-excellent-post-event-wrap-up-report/) you might assign yourself or others to gather 92 | 93 | * High quality photos from around the event. [Assignee’s name] 94 | * High quality audio or video interviews and snippets from around the event. [Assignee’s name] 95 | * Any session audio or video your record. [Assignee’s name] 96 | * Social media updates from the event, including relevant usernames and hashtags. [Assignee’s name] 97 | * Key graphics from speakers presentations. [Assignee’s name]. 98 | * Blog posts that others write after a session or after the event. [Assignee’s name] 99 | 100 | As a checklist in GitHub, your list might look more like this:![](https://lh6.googleusercontent.com/_gnri0298nOZBe_Y3I0VyaNy7pm848Bb3T0Fk7JRXtIr-dUJzbQNeRQ2zhNvpGGcfTGt4B29ZMeX09cS1ssiyeQqJQAOaAMQ4ZnNTQxf-ZGuWiorn-4NzYFarFsWI7eVJXif3_xy) 101 | 102 | ### {{ site.assignment }} Document Your Event 103 | (Event time) 104 | 105 | Whether you document the event or delegate documentation to a volunteer, make sure to complete each step in your plan and capture the essential parts of the gathering. 106 | 107 | ### {{ site.assignment }} Write up Your Report and Share 108 | (20-30 minutes) 109 | 110 | After your event, gather together all of your documentation and shape it into one report or several. You might: 111 | 112 | * Write-up a recap blog post and also send that copy out in your next project newsletter. 113 | * Edit and post a video or podcast as standalone reports or as multimedia pieces to embed in a blog post or newsletter. 114 | * Schedule a community call with a few guests who attended the event and a few who did not to talk about what happened. 115 | 116 | [Remember](https://docs.google.com/document/d/1dgOxD5V_Z0oWjOSwIIa4v3MNgfd_ejSa2q-rr4dvvbg/edit) that community calls are regularly scheduled phone calls, webcasts, or hangouts that any community member can listen to, watch, and otherwise participate in live. Generally each call follows an agenda shared ahead of time that includes times for call organizers and project contributors to share updates, as well as time for less involved participants to ask questions about what’s been going on in the project. The agenda is typically published as a shared document so call organizers and participants can take notes during the call. 117 | 118 | Share your report - or reports - as widely as possible in your project community and use it as a call to action for next steps in the your project. Invite your community members to share their own recaps, questions, and suggestions for next steps, as well. -------------------------------------------------------------------------------- /_articles/running-awesome-community-events/event-follow-up.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Event Follow-up" 4 | module: "7.3" 5 | date: 2016-10-06 14:05:56 6 | time: "60 mins" 7 | following: _articles/running-awesome-community-events/documenting-and-reporting.md 8 | summary: "Survey your attendees to improve offline events and sustain online contributions to your project." 9 | prereq: "Plans for convening and facilitating a face-to-face event in support of your project" 10 | format: "Design a survey around your event to help plan next steps for your project" 11 | materials: An internet-connected computer, an online survey tool, access to your GitHub project repo 12 | --- 13 | * TOC 14 | {:toc} 15 | 16 | 17 | ### Organizing for Action After an Event 18 | 19 | When you organize attendees as part of an event or after it ends, you help contributors and community members find ways to remain engaged with the project and continue its work. 20 | 21 | Organizing people to contribute to your project happens before, during, and after the event, but it’s especially important to take what you learn from events and other interactions with contributors to improve the ways you work together. Organizing is equal parts project-management, relationship-management, and delegation. Organizing in the open lets you and your community come to consensus on who should do what according to their capacities, interests, and skills. By paying attention to your community members as an organizer, you can observe their strengths and craft invitations for them to use those talents in "best fit" ways to help the project. 22 | 23 | Observing contributors at in-person, or face-to-face (F2F), events is a great way to learn how they self-organize, learn, and relate to others. It can also give you a sense of their prefered workflows, lines of communication, and ways to be recognized for their work. The more you learn about how your community functions, the better able you'll be to organize people for action through your project. 24 | 25 | Heading out of your event, here are questions you can use as a checklist for organizing contributors and next steps. 26 | 27 | **Logistical** 28 | 29 | * How will you track work coming out of the event? 30 | * How will you gather feedback on the event itself? 31 | * How can you help attendees stay in touch to continue their face-to-face collaboration online? 32 | * How can you make the work of the event accessible to people who did not attend? 33 | 34 | **Interpersonal** 35 | 36 | * How will you recognize contributions made at the event? 37 | * How will make sure that you collect feedback in an accessible and inclusive way? 38 | * How will you accommodate participants' privacy decisions in collecting survey data? 39 | 40 | ### Survey Examples 41 | 42 | Your post-event survey should have three main goals: 43 | 44 | 1. Find out what people learned or did not learn. 45 | 2. Discover ways to improve future events. 46 | 3. Determine next steps for your project. 47 | 48 | You can find sample surveys below. 49 | 50 | Feel free to design and hack on your questions offline before picking an online platform for delivering your survey. You want to find a polling or survey platform that lets respondents make their own choices about how much information to give you in addition to their answers. It's better to err on the side of privacy and security than to require too much personal information. Just be sure to include an email address or other communications channel somewhere in the survey so people who want to make specific requests - like to manage part of the project - have a way to contact you directly. 51 | 52 | Also in your survey, be clear about things like whether or not people can see one another's responses or whether or not they can see to whom else you sent the survey. Your community needs to know, in an open way, who sees what so that individuals can make their own decisions about privacy and participation. 53 | 54 | Finally, set a deadline for responses so you can move ahead in planning or organizing next steps of your project. It's a good idea to schedule a reminder email or two before that deadline, as well. 55 | 56 | Here’s part of [a survey shared to participants](https://docs.google.com/a/mozillafoundation.org/forms/d/11Ptvzq5k91iYZjQdDGqGAS8U67WLORKTU8IF4BVpUyo/viewform?edit_requested=true) at the end of a web literacy training for the National Afterschool Alliance. You can visit the survey online and make a copy to remix it. 57 | 58 | 59 | 60 | Notice that it mixes and matches question types. As you develop your questions and survey, think about which questions are answerable with multiple-choice or a scale. Make the survey as short and easy as possible to complete to encourage people to finish it. Ask just a few, essential, open ended questions with text boxes so recipients aren’t overwhelmed by the survey. 61 | 62 | Here’s [another example](http://joeyklee.github.io/friendly-github-intro/#survey), from a GitHub training, that mixes and matches scales with text boxes for comments on each answer. This is another survey you can copy in Google Drive and remix for your event. 63 | 64 | 65 | 66 | 67 | ### {{ site.assignment }} Create Your Survey and Plan for Delivery and Review 68 | (45 minutes) 69 | 70 | After you have the chance to debrief on your event and see participants’ survey responses, make a checklist of next steps as a GitHub issue others can comment on in the open. List the tasks that people have suggested or self-selected and cc or @ contributors alongside the particular pieces of work that interest them. Assign yourself as the organizer for the ticket, encourage everyone involved to comment on work being done or work that's complete, keep the checklist up-to-date, and close the issue when all its goals are met. 71 | 72 | Create separate GitHub issues for especially complex or multi-step follow-up tasks, as well as for tasks that you want to delegate to community members. Assign yourself as an organizer for "unclaimed" work, but assign volunteer contributors as organizers for work delegated to them. Help those volunteer organizers manage the issues by asking for updates through comments and asking people at work on the issue to share their progress and to keep the checklist up to date. 73 | 74 | However, if you wind up with 50 issues and only 5 or 6 contributors working on them at any given time, you and your team might feel overwhelmed by the work ahead. As project lead, take time to prioritize issues and help contributors find manageable tasks they can complete. Help them feel good about the work and its progress while you work through the best way to manage the total number of issues active at once and how to solve the trickiest ones together. 75 | 76 | Encourage organizers to close these issues once their tasks have been completed. 77 | 78 | Of course, you don’t need to spin up a huge checklist with a million sub-issues ticketed for small events or discrete tasks. In this case, coming up with a checklist like this might be just the thing to keep event follow-up manageable and encourage volunteers to take on discrete tasks they can quickly complete for the community. 79 | 80 |
81 |   *   [ ] Draft survey.
82 |   *   [ ] Get feedback on survey - ask which questions are
83 |           unnecessary and if any are missing.
84 |   *   [ ] Revise survey.
85 |   *   [ ] Send survey to mailing list from the event.
86 |   *   [ ] Tally results.
87 |   *   [ ] Double check results to remove any private information.
88 |   *   [ ] Report aggregate results on a GH issue in this repo.
89 |   *   Close the loop: cite your results and use them when you
90 |       plan your next event.
91 | 
-------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: Open Leadership Training Series 2 | subtitle: 3 | email: abby@mozillafoundation.org 4 | twitter: https://twitter.com/MozOpenLeaders 5 | chat: https://chat.mozillafoundation.org/mozilla/channels/mozfest-open-projects 6 | description: > # this means to ignore newlines until "baseurl:" 7 | Does your MozFest session involve hands-on, project based learning? This 8 | training is for anyone running an open project at MozFest. This can be 9 | software, curriculum, or anything you can build together with a group. 10 | baseurl: "/open-leadership-training-series" # the subpath of your site, e.g. /blog 11 | url: "https://mozilla.github.io" # the base hostname & protocol for your site 12 | github: 13 | repo: "mozilla/open-leadership-training-series" 14 | branch: "gh-pages" 15 | 16 | 17 | collections: 18 | articles: 19 | output: true 20 | permalink: /:path/ 21 | 22 | # Build settings 23 | markdown: kramdown 24 | 25 | redcarpet: 26 | extensions: [ 27 | 'no_intra_emphasis', 28 | 'fenced_code_blocks', 29 | 'autolink', 30 | 'strikethrough', 31 | 'superscript', 32 | 'with_toc_data', 33 | 'tables', 34 | 'hardwrap' 35 | ] 36 | 37 | # variables 38 | video: "" 39 | assignment: "Assignment: " -------------------------------------------------------------------------------- /_includes/contents.html: -------------------------------------------------------------------------------- 1 | {% if include.item %} 2 | {% assign item = include.item %} 3 | {% else %} 4 | {% assign item = site.pages | where: "path", "contents.html" | first %} 5 | {% endif %} 6 | 7 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/navigation.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /_includes/videowrapper.html: -------------------------------------------------------------------------------- 1 | #### {{ site.video }} {{ include.title }} 2 | 3 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {{ site.title }}{% if page.title %} : {{ page.title }}{% endif %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 |
23 | {% assign post_count = site.posts|size %} 24 | 27 |
28 | {{ content }} 29 |
30 |
31 | 32 |
33 | {% include footer.html %} 34 |
35 |
36 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 |

Open Leadership Training Series

6 |

Best Practices Working Open

7 |
8 | 9 |
10 | {{ content }} 11 | 12 | Get started   13 | 14 |
15 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 | 12 |
13 |
14 | {% if page.summary %} 15 |
16 |
17 | {{ page.summary }} 18 |
19 |
20 | {% endif %} 21 |
22 | {% if page.time %} {% endif %} 23 | Suggest changes 24 |
25 |
26 | {% if page.format or page.prereq or page.materials %} 27 |
28 |
29 | {% if page.format %} 30 |
Format
31 | {{ page.format | markdownify }} 32 | {% endif %} 33 |
34 |
35 | {% if page.prereq %} 36 |
Prerequisites
37 | {{ page.prereq | markdownify }} 38 | {% endif %} 39 |
40 |
41 | {% if page.materials %} 42 |
Materials
43 | {{ page.materials | markdownify }} 44 | {% endif %} 45 |
46 |
47 | {% endif %} 48 |
49 | {{ content }} 50 | 51 | {% if page.contents %} 52 |

In This Section

53 | {% for path in page.contents %} 54 | {% assign subpage = site.articles | where: "path", path | first %} 55 |

56 | {% if subpage.module %}{{ subpage.module }}.{% endif %} 57 | {{ subpage.title }} 58 | {% if subpage.time %} 59 | ({{ subpage.time }}) 60 | {% endif %} 61 |

62 | {% endfor %} 63 | {% endif %} 64 | 65 | {% if page.following %} 66 | {% assign next = site.articles | where: "path", page.following | first %} 67 | 68 | next: 69 | {{ next.title }}   70 | 71 | 72 |
73 | {% endif %} 74 | 75 | 76 |

77 | 78 | Help us improve content and 79 | suggest changes to this page. 80 |

81 |
82 | -------------------------------------------------------------------------------- /contents.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | contents: 4 | - _articles/readme.md 5 | - _articles/introduction-to-open-leadership.md 6 | - _articles/opening-your-project.md 7 | - _articles/building-communities-of-contributors.md 8 | - _articles/get-your-project-online.md 9 | - _articles/github-for-collaboration.md 10 | - _articles/open-communications.md 11 | - _articles/running-awesome-community-events.md 12 | - _articles/open-project-maintenance.md 13 | - _articles/open-leadership-outro-and-next-steps.md 14 | - _articles/glossary.md 15 | --- 16 | 17 | {% include contents.html %} 18 | -------------------------------------------------------------------------------- /css/syntax.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #888888 } /* Comment */ 4 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 5 | .highlight .k { color: #008800; font-weight: bold } /* Keyword */ 6 | .highlight .cm { color: #888888 } /* Comment.Multiline */ 7 | .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ 8 | .highlight .c1 { color: #888888 } /* Comment.Single */ 9 | .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ 10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 11 | .highlight .ge { font-style: italic } /* Generic.Emph */ 12 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 13 | .highlight .gh { color: #333333 } /* Generic.Heading */ 14 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 15 | .highlight .go { color: #888888 } /* Generic.Output */ 16 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 17 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 18 | .highlight .gu { color: #666666 } /* Generic.Subheading */ 19 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 20 | .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ 21 | .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ 22 | .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ 23 | .highlight .kp { color: #008800 } /* Keyword.Pseudo */ 24 | .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ 25 | .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ 26 | .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ 27 | .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ 28 | .highlight .na { color: #336699 } /* Name.Attribute */ 29 | .highlight .nb { color: #003388 } /* Name.Builtin */ 30 | .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ 31 | .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ 32 | .highlight .nd { color: #555555 } /* Name.Decorator */ 33 | .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ 34 | .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ 35 | .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ 36 | .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ 37 | .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ 38 | .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ 39 | .highlight .nv { color: #336699 } /* Name.Variable */ 40 | .highlight .ow { color: #008800 } /* Operator.Word */ 41 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 42 | .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ 43 | .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ 44 | .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ 45 | .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ 46 | .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ 47 | .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ 48 | .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ 49 | .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ 50 | .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ 51 | .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ 52 | .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ 53 | .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ 54 | .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ 55 | .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ 56 | .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ 57 | .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ 58 | .highlight .vc { color: #336699 } /* Name.Variable.Class */ 59 | .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ 60 | .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ 61 | .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ 62 | -------------------------------------------------------------------------------- /img/cc-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /img/commit-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/commit-message.png -------------------------------------------------------------------------------- /img/create-issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/create-issue.png -------------------------------------------------------------------------------- /img/create-milestone.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/create-milestone.gif -------------------------------------------------------------------------------- /img/create-pull-req-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/create-pull-req-1.png -------------------------------------------------------------------------------- /img/create-pull-req-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/create-pull-req-2.png -------------------------------------------------------------------------------- /img/create-pull-req-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/create-pull-req-3.png -------------------------------------------------------------------------------- /img/edit-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/edit-button.png -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/favicon.png -------------------------------------------------------------------------------- /img/footer-icon-conduct.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /img/footer-icon-email.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /img/footer-icon-github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /img/footer-icon-help.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /img/footer-icon-irc.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /img/footer-icon-terms.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /img/footer-icon-twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /img/githib-projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/githib-projects.png -------------------------------------------------------------------------------- /img/github-markdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/github-markdown.png -------------------------------------------------------------------------------- /img/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/hero.png -------------------------------------------------------------------------------- /img/mozilla-wordmark-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 11 | 13 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /img/new-repository-description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/new-repository-description.png -------------------------------------------------------------------------------- /img/new-repository-license-and-readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/new-repository-license-and-readme.png -------------------------------------------------------------------------------- /img/new-repository-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/new-repository-name.png -------------------------------------------------------------------------------- /img/new-repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/new-repository.png -------------------------------------------------------------------------------- /img/preview-changes-readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/preview-changes-readme.png -------------------------------------------------------------------------------- /img/sign-up-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpdang/open-leadership-training-series/c9a058d730c648e78774be34b3f1417984e7e8f9/img/sign-up-github.png -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | --- 4 | 5 | This Open Leadership Training Series teaches you best practices in “working open” -- a way of working where: 6 | 7 | * **_everyone_ is invited to collaborate on something amazing,** 8 | * **and any new product or knowledge is shared widely and freely.** 9 | 10 | This is for anyone starting up or leading open projects-- project leads, collaborators, or small groups of co-leaders responsible for project success and growth. 11 | 12 | 13 | 14 | 15 | --------------------------------------------------------------------------------