Introduction
“FOSS fosters education. For the persons contributing to it, and for the persons consuming it. The threshold for a user of Foss to become a contributor is extremely low – if we consider the different forms of contribution possible. Given the right language, it isn’t hard for a domain expert to become a contributing developer.”
– Phillip Tellis, on Why Foss in Education makes sense
There are many reasons to connect with others in a F/OSS community. You many need a feature that’s missing, or only partially fills your need. You may find problems in software you enjoy using and want to report the issues to developers. You may want to pay it forward by contributing your time and talents to help others leverage F/OSS you have found useful. In this lesson, we’ll look at how you can make a contribution with or without programming skills, and how to connect with those who are already involved.
The lesson addresses these topics:
- The Educator in the Bazaar
- Connecting and Contributing in F/OSS Communities
Advanced Organizer
During the lesson, look for answers to the following questions (again, consider copying and pasting these questions into your notes to reference while you read and review content) –
- What characterizes a “bazaar” style of software development?
- What is “Linus’s Law”, and what does it mean?
- How can a non-programmer contribute to a F/OSS project?
- Are all F/OSS communities governed the same way?
- What are the primary communication channels for F/OSS communities, and do they differ from mainstream social networking channels?
- What other names might a project’s bug tracker be called?
- Why wouldn’t Facebook chat or Google chat work as well as IRC for real-time chat service?
- Why do wikis tend to amplify failings in their original material?
- In efficient online communications, why is a degree of terseness an accepted norm?
- How can you reach other LibreOffice users in real time to ask questions?
Walk-through
1. Review Software is Social: Why its not all about programming (PDF)
Scott Wilson, of University of Oxford and OSS Watch, discusses how software development is a social process, and provides a few insights into how you can get involved.
2. Read Roles in Open Source Projects (HTML)
This piece summarizes the various roles required by F/OSS projects, and underscores that software development is only one of them. As you review these roles, evaluate which of them you might be able to fill if you were to find a project that motivated you to get involved. Note that prior students in this course have chosen to do translation work, design templates, update documentation, provide marketing and design training for various projects.
3. Watch Getting Started in Open Source (Youtube, 34:07)
Scott Wilson and Mark Johnson of OSS Watch discuss how to engage with Open Source Software projects.
4. Read A Guide to Participating in an Open Source Software Community (HTML)
Community is about communication with real people, though community members may never meet face-to-face. This guide provides some great advice on engaging with project communities. A first foray into a F/OSS project “can be both difficult and scary. However, most quickly realise that it is well worth the effort.”
5. Read The Cathedral & the Bazaar (PDF) pp. 2-24 and 27-33.
This famous essay by Eric Raymond describes his observations of two very different models of software development. Raymond chronicles his “lessons learned” as he deliberately undertakes an open, distributed software project in the style of Linus Torvalds, originator of Linux. As you learn about the Bazaar style and these “lessons learned”, ask yourself where a user who is a professional educator fits in. One of Raymond’s core observations is that users are actually developers’ partners – that means you.
6. Read Technical Infrastructure; Ch. 3 Producing Open Source Software (Book on PDF, ePub, HTML)
Note that you only need to read the overview of the following tools, which should help you understand the larger view of how communication flows in a project. Read the details if any of these tools that strike your interest. This book is written for people who are setting up a F/OSS project, so expect that perspective in the writing.
- What a Project Needs, p. 30
- Mailing Lists, p. 31
- Version Control, p. 39
- Bug Tracker, pp. 48-49
- IRC / Real-Time Chat Systems, p. 52
- RSS Feeds, p. 54
- Wikis, pp. 54-55
7. Read Communications; Ch. 6 Producing Open Source Software (Book on PDF, ePub, HTML)
- You Are What You Write
- Avoiding Common Pitfalls
- Handling Difficult People
Fogel offers some great insights into online interactions, including that the ability to “write clearly is perhaps the most important skill once can have in an open source environment”. His emphasis on the ability to “empathize with one’s audience” makes me feel that instructional designers are perfect for F/OSS projects. Isn’t audience analysis and the skillset to align communications to that audience the essence of instructional design? Fogel has great advice on structure, tone, and more. If you choose to get involved with a F/OSS project, and I hope you will, reference this wisdom.
Activity
/I-R-C/ n. [Internet Relay Chat] – IRC provides a way of communicating in real time with people from all over the world. It consists of various separate networks (or “nets”) of IRC servers, machines that allow users to connect to IRC. IRC is very similar to text messaging, but designed around communicating with large groups of users instead of one on one. (irchelp.org)
- Read: The IRC Prelude (HTML) and
- Read: Getting Help on IRC
Using the above references, install an IRC client of your choice, recommendations are made in The IRC Prelude. Connect to the Freenode network – you’ll need to choose a “nick” (identity/name). Join a channel and listen in for 20 minutes – join the discussion if you wish. Your IRC client should be able to list and/or search the channels on Freenode. #libreoffice or #ubuntu are interesting places to lurk.
Next, select a partner from class. Open a new IRC channel and hold a short conversation on anything you wish from class. (note that “/join #my_new_channel” creates a new channel, assuming the channel name is not already in use).
Assignments
Work on your software reviews for Schoolforge, or on your final project.