From Teaching Open Source
The Professors' Open Source Summer Experience (POSSE) curriculum consists of several parts:
- POSSE Basics, a two-day in-person cultural immersion workshop introducing basic open source communication and collaboration skills. Required. (19 hours - 3 hours of advance preparation and 16 hours for the actual workshop.)
- 5 Core Modules covering fundamental tools and processes shared by almost every mature open source project. Required. (3 hours each - 1 hour in-class and 2 hours out-of-class work - for a total of 15 hours.)
- Elective modules on specialty topics ranging from licensing to writing to grading and more. Minimum of 2 required. (3 hours each - 1 hour in-class and 2 hours out-of-class work - for a total of 6 hours.)
The total time commitment for POSSE is therefore estimated to be 40 hours. Participants may choose to spend more time on assignments, attend Teaching Open Source events, etc. but this is purely optional.
Typically, professors attend a POSSE Basics workshop and then complete the remaining modules during the course of the next school year, spreading their 40 hours over a period of 9-12 months. Core and elective modules are taught on a rotating basis online every two weeks.
Alternatively, academic, corporate, and community groups may host a custom POSSE, including a one-week POSSE Intensive program for those who wish to complete POSSE Basics and the 5 core modules in a full week of in-person training.
- 1 POSSE 001 - POSSE basics
- 2 Core modules
- 2.1 POSSE 002 - The first 15 minutes: how to approach a new project
- 2.2 POSSE 003 - Release early, release often: feature and release processes
- 2.3 POSSE 004 - Upstreaming: Version control and the commit cycle
- 2.4 POSSE 005 - Trackers and tickets
- 2.5 POSSE 006 - How to be lazily productive: marketing, recruitment, blogging, and building momentum
- 3 Elective modules
- 3.1 POSSE 011 - Remixability: Licensing and IP
- 3.2 POSSE 012 - Deploying with your local community: QA, support, and town-gown relations
- 3.3 POSSE 013 - Getting your code used: packaging and distribution
- 3.4 POSSE 014 - Distributed team dynamics: timezones, language, culture, and running excellent meetings
- 3.5 POSSE 015 - Documentation: working within and with technical writing teams
- 3.6 POSSE 016 - Design and graphics: working within and with interface/design teams
- 3.7 POSSE 017 - Infrastructure: working within and with project sysadmin teams
- 3.8 POSSE 018 - Back to school: assignments, grading, and other classroom strategies
- 3.9 POSSE 019 - Attending events
- 4 2010-2011 Schedule
- 5 Host a custom POSSE
POSSE 001 - POSSE basics
This is a two-day intensive focused on "the open source way" paradigm shifts and basic communication skills necessary to participate in the core modules. Think of it as your first guided tour of a foreign country - we'll lead you on a deep dive into one selected open source community in order to illustrate aspects common to most mature open source projects.
Some things participants do in the Basics workshop:
- Making their first live contribution to an existing open source community.
- Meeting open source community members from a variety of projects, both online and in person, to find a community liason for their classes.
- Analyzing several open source cultural maxims that are often counterintuitive to faculty, and contrasting them to the corresponding academic paradigm to get a better sense of how the two cultures differ. For instance, "release early, release often" and "default to open" are not necessarily the academic norms...
- Hearing and sharing stories of successful student involvement in open source, and the considerations particular to academia - semester schedules, grading, student motivation, etc.
- Becoming "productively lost," a mindset important for successful open source participation.
- Learn basic communication and collaboration tools - IRC, mailing lists, wiki, and collaborative text editing.
All core modules must be completed. Modules are delivered online with flexible scheduling, with one module being offered every 2 weeks. The schedule for Summer 2011, Fall 2011, and Spring 2012 are still being set.
POSSE 002 - The first 15 minutes: how to approach a new project
The class will select any open source project the instructors are unfamiliar with, whereupon the instructors will do an on-the-spot walkthrough of how they'd get started as a new contributor to that community. Then participants will take their turn.
POSSE 003 - Release early, release often: feature and release processes
What is a release cycle, how is it useful, and how do I make it do work for me? We'll take an existing feature proposal from an open source community and improve it, then discuss how this feature will become reality and how you can bring your own ideas through the same process.
POSSE 004 - Upstreaming: Version control and the commit cycle
We will cover the checkout-build-modify-commit cycle using the popular git version control system. Participants will learn how to use git (no prior experience with version control is required) to submit a simple patch to a live open source repository.
POSSE 005 - Trackers and tickets
How do open source communities keep track of what needs to be done and who is doing what without top-down oversight? How can new contributors find bite-sized projects to work on? We will show you how to use ticket trackers as a way to interact with upstream developers, taking you through the lifecycle of a ticket. Tickets are also not necessarily well categorized or clearly written, so we'll introduce strategies successful contributors use to deal with and buffer that ambiguity.
POSSE 006 - How to be lazily productive: marketing, recruitment, blogging, and building momentum
A successful open source project will be able to continue even after the original contributors have moved on. How do you make your contributions and run your projects in a way that maximizes the chance that other people can and will pick up on them? We will show you the art of making other people as excited about doing your work as you are.
At least two elective modules must be completed. Modules are delivered online with flexible scheduling, with one module being offered every 2 weeks. The schedule for Summer 2011, Fall 2011, and Spring 2012 are still being set.
POSSE 011 - Remixability: Licensing and IP
What open source licenses are available, how do you choose one, and what university IP restrictions might you need to keep in mind when starting to work with projects that require open licensing?
POSSE 012 - Deploying with your local community: QA, support, and town-gown relations
How to be an interface between an open source project and a local client. Ideal for schools that already have a local social service requirement that involves students consulting with nearby organizations to implement a technical solution to one of their problems.
POSSE 013 - Getting your code used: packaging and distribution
What is a package management system, and how can you make it dramatically easier for others to find and use your code? How does code get into the lists of "official" software for various large-scale open source projects such as Fedora, Ubuntu, Mozilla (Firefox plugins), etc?
POSSE 014 - Distributed team dynamics: timezones, language, culture, and running excellent meetings
You've never met your team in person, none of them speak the same language natively, and any meeting time you choose is at 3am in the time zone of a crucial contributor. These things are actually advantages - we'll show you why.
POSSE 015 - Documentation: working within and with technical writing teams
User manuals, guidebooks, man pages, installation guides, and more. This course is for people interested in contributing to technical writing within an open source project, as well as for non-designers who want to learn how to take advantage of writing talent for their projects. We will also cover translation workflows.
POSSE 016 - Design and graphics: working within and with interface/design teams
Based on Mo Duffy's design curriculum for middle school students, we will survey basic open source graphic tools and talk about how look, feel, and branding get designed "the open source way." This course is for people interested in contributing to the design team of an open source project, as well as for non-designers who want to learn how to take advantage of design talent for their projects.
POSSE 017 - Infrastructure: working within and with project sysadmin teams
Did you know that you can get free server space, computing power, bandwidth, mailing lists, and more from the infrastructure teams of open source projects you contribute to? We'll show you what resources are available and how to access them. For those who are interested in contributing as a sysadmin, we'll get you started with your project's infrastructure team - or show you how to start one.
POSSE 018 - Back to school: assignments, grading, and other classroom strategies
Learning how to contribute to an open source community is all well and good, but how do you make this experience fit into a classroom context? We'll cover assignment development (including sharing existing homework assignments from professors who are already teaching open source participation to their students), classroom management and grading, student motivation, expectation-setting and course evaluations, how to sync semester and release cycles, and field questions about how guiding your students through a world that's impossible to predict actually works in practice.
POSSE 019 - Attending events
Open source events sometimes look very different from the academic conferences you may be used to. Learn how to get the most out of the next open source event you attend. We'll cover what a typical hackathon and unconference experience looks like, and compile a list of specific recommendations for engaging with other attendees based on the event-attending goals of participants and upcoming events they may be going to. We'll also discuss hosting an open source event on your own campus, and what it takes to pull one together; it's often less work than you think.
- Aug 29: Trackers and tickets (The Alpha will just have come out.)
- Sep 05: Special guest: Fedora QA team test day (Beta change / Feature completion deadline is Sep 06.)
- Sep 12: Release early, release often: feature and release processes
- Sep 19: The first 15 minutes: how to approach a new project (Beta release is Sep 20.)
- Sep 26: Upstreaming: version control and the commit cycle
- Oct 03: Distributed team dynamics: timezones, language, culture, and running excellent meetings
- Oct 10: How to be lazily productive: marketing, recruitment, blogging, and building momentum (Final change deadline is today, FIE is Oct 12-15.)
- Oct 17: Special guest: Design Team
- Oct 24: Remixability: Licensing and IP (Final release date is initially set to Oct 25.)
- Oct 31: Getting your code used: packaging and distribution
- Nov 07: Special guest: Marketing team (Realistically, final release will be Nov 08.)
- Nov 14: (Planning and development for F17 begins.)
- Nov 21: THANKSGIVING - NO CLASSES
- Nov 28: Attending events
- Dec 05: Special guest: Infrastructure team
- Dec 12: Deploying with your local community: QA, support, and town-gown relations
- Dec 19: Special guest: FUDCon organizers
(Feature submission deadline for F17 is likely to be Jan 25, giving courses that run for both semesters some time to think about whether they want to write proposals over break.)
- Feb 06: Release early, release often: feature and release processes (Feature freeze happens around this date.)
- Feb 13: The first 15 minutes: how to approach a new project
- Feb 20: How to be lazily productive: marketing, recruitment, blogging, and building momentum
- Feb 27: Trackers and tickets (SIGCSE is Feb 29 - Mar 03)
- Mar 05: Remixability: licensing and IP (SPRING BREAK. Alpha release happens around this date.)
- Mar 12: Guest speaker: Infrastructure team (SPRING BREAK)
- Mar 19: Guest speaker: Documentation team (SPRING BREAK)
- Mar 26: Distributed team dynamics: timezones, language, culture, and running excellent meetings (Feature-completeness happens around this date)
- Apr 02: Upstreaming: Version control and the commit cycle
- Apr 09: Attending events (Beta release happens around this date.)
- Apr 16: Getting your code used: packaging and distribution
- Apr 23: Guest speaker: Marketing team (Final change deadline happens around this date.)
- Apr 30: Deploying with your local community: QA, support, and town-gown relations
(Final release is likely to be end-of-May, giving us an opportunity to get media out to schools as an end-of-year congratulations.)
Host a custom POSSE
If your school, company, conference, or community group is interested in having a custom POSSE at your location, we offer the following:
- POSSE Basics is available as a 2-day in-person workshop only.
- The Core Modules and Elective Modules are available as 4-hour in-person workshops or 1-hour online classes with remote follow-up. Custom Elective Modules may also be designed on request to fit specific topics of interest.
- The POSSE Intensive format is available for those who wish to complete POSSE Basics and the 5 core modules in a full week of in-person training.
We can customize programs to specific open source projects, educational areas of interest (writing, design, hardware, etc), and more. If you are interested in a custom POSSE, contact email@example.com for more details.
You can see the list of groups working on public custom POSSE groups at Custom POSSEs open to the public.