056.3 Lesson 1
Certificate: |
Open Source Essentials |
---|---|
Version: |
1.0 |
Topic: |
056 Collaboration and Communication |
Objective: |
056.3 Communication and Collaboration Tools |
Lesson: |
1 of 1 |
Introduction
Many open source projects have active participants worldwide. Collaboration mostly happens in “virtual space,” and the people involved are often distributed across countries, continents, and timezones. Furthermore, they usually speak different native languages. This means you can be located anywhere in the world to make a contribution to an open source project, no matter your country or language!
While this diversity makes contributing to an open source project extremely rewarding, as you can widen your scope and learn a lot, at the same time it can make communication and coordination quite challenging. Efficient and effective communication is key to the success and sustainability of any open source project. To ensure good communication, open source projects have created structures and use a variety of tools that help to make contributions easy and the cooperation more effective.
Another challenge is that open source projects, often driven mostly by volunteers, face some fluctuation in participation. People’s lives and hobbies change, and some might lose interest or just run out of time. You might contribute to an open source project for years, but when you change your job, get married, or start raising kids, you might not have enough time anymore to volunteer.
Therefore, in addition to providing efficient means of communication via proper tooling, open source projects need to ensure the preservation and sharing of knowledge to avoid “reinventing the wheel.” Information preservation also helps contributors learn from the past mistakes of other contributors and avoid making the same errors.
This lesson presents common tools for cooperating in an open source project and introduces you to ways of communicating in an international community. You’ll discover that there’s an easy way for everyone to make their first contribution!
As an example of communications and information sharing, we will look at the LibreOffice. LibreOffice is an open source office productivity suite that is available in more than one hundred languages. Its end users range from the casual home user to large governments and corporations. Likewise, there’s a wide range of contributors — not only developers, but also localizers, documentation authors, marketing people, quality assurance engineers, infrastructure administrators, graphics and UX designers, and many, many more.
In other words: For LibreOffice, as for many other open source projects, you can bring in your skill and talent in the area you are comfortable with. You don’t necessarily need to be a technically trained person or a developer — you can bring in your creativity and artistic talent or your language skills as well. The project has also launched a website that shows the various areas of contributions: https://whatcanidoforlibreoffice.org. So LibreOffice will nicely illustrate many aspects of community work.
Ways to Communicate
Before looking into the details of communication tools, it is important to understand how communication works in general, as these considerations inform the choices of tools.
Open source projects enjoy two different major ways to communicate. With synchronous communication, people communicate at the same time. Examples include of course direct conversations, but also video conferences or phone calls. With asynchronous communication, people communicate at different times. Examples are email and SMS, but also a postal letter or a telefax.
This distinction is not always easy to make, however. As one example, a messenger application on a mobile phone like WhatsApp, Telegram, Signal, or Element technically is an asynchronous way to communicate. If, however, both conversation partners are online at the very same time and reply instantly, they enter a direct conversation.
This example shows that a part of communication also depends on how people use their tools and what expectations they have. Each task might require a different set of communication tools. The following sections will explain these ideas in detail.
Synchronous Communication
Synchronous communication is a very effective but also very demanding way to communicate. It brings people together at the same time in the same physical or virtual space.
A direct meeting is ideal for talking things through interactively instead of sending long email messages that come with the risk of misunderstandings. Imagine you want to learn more about an open source project and get to know the people from the community. Email messages and websites can help make an introduction and have a lower barrier to entry, but a truly meaningful first impression is made when you can actually talk to someone in person — it’s these direct interactions that usually fascinate people about an open source project and make them want to contribute.
Apart from getting to know each other, synchronous meetings are also great to talk things through interactively, e.g. in case of conflicts or problems, or when you have to share a negative message.
The downside is that international projects face a challenge that technology can’t overcome: timezones. If you have contributors on different continents, it will be very hard to find suitable meeting slots that work for everyone. Someone in Australia might just be waking up when someone in Europe is close to calling it a day. As an additional challenge, some people can work only at night or weekends, while others prefer office hours during business days.
Additionally, English is not a language everyone speaks fluently, and there are no widely accessible live translation tools available yet, which brings an additional barrier.
Even so, video conferences are one of the most frequent tools of communication in open source projects. The LibreOffice project, which serves as an example for this lesson, has regular online meetings for its community, e.g. for developers, marketing, infrastructure, quality assurance, user experience, and design.
Asynchronous Communication
Asynchronous communication lets you participate in the discussion at a time and speed that is convenient for you. The most known example is probably an email message: You can reply to a message whenever you prefer, whether it’s the next minute, the next day, or the next hour.
For asynchronous communication, the content usually is in writing, which additionally opens up the possibility of machine translation. This helps you to read and understand messages written in a language different from your native language, and you can even translate back your reply.
Additionally, content that is already written down makes it much easier to retain knowledge and produce documentation. Imagine you want to write a support document about how to use a specific feature of a software. If you explain it to a user over the phone, it will be much harder to turn your speech into a proper documentation page than when you explain the procedure in written text.
Internal Versus External Communication
Last but not least, communication also depends on the intended recipients, i.e. whether it is internal or external. You will write an internal, technical note to the system administrators differently from how you write a press release that gets sent to hundreds of journalists. Keep in mind, however, that due to the nature of an open source project, communication that might not be explicitly intended for a public audience will nevertheless be publicly visible, for example in mailing list archives (in the case of LibreOffice, it’s https://listarchives.documentfoundation.org/).
Tools for Communication
With these different general aspects of communication in mind, you will learn in the following sections about several tools for communication that are commonly used in an open source project.
Email, Mailing Lists, and Newsletters
One of the first tools you will encounter when you participate in an open source project is the “classic” email. Many projects run mailing lists, which are essentially distribution lists for email: With one email message, you can reach hundreds or even thousands of subscribers who are interested in particular topics.
Mailing lists are among the oldest known tools in any open source project and are used for coordination internal to the project as well for interacting with users. If you have a question about the software, or want to report an error in the program, chances are high that there is a mailing list that allows you to do that. The LibreOffice community, for example, offers a variety of international and local mailing lists for various topics (https://www.libreoffice.org/get-help/mailing-lists/), ranging from user support to developer discussions and infrastructure coordination (LibreOffice mailing lists web page).
Every message sent is usually also stored in a public mailing list archive for future reference. Once sent out, a message cannot be easily deleted. A common phrase goes, “The internet never forgets.” Therefore it is advisable to be careful what you write, because you probably can’t take it back. For example, some people have their private address or phone number in the signature, or send confidential documents as attachments, which you should carefully avoid.
One disadvantage of mailing lists is that managing them in your mail program is not always straightforward. You will want to create so-called filters based on specific elements of the message, e.g. a prefix in the subject line. The subtleties of managing large quantities of email can be a barrier for unexperienced users — especially if your message is a one-off. Therefore, more and more projects migrate to discussions forums, about which you will soon learn.
A special form of mailing list is a newsletter. If you want to stay up to date about the latest project developments and get informed about new software releases, you can subscribe to the newsletter and get an email message when something important happens.
Discussion Forums
Apart from the overhead of managing mailing lists in your email client, another downside of email is that more and more people, especially the younger generation, is not so much into email communication anymore. For this and other reasons, more and more open source projects move their communication to discussion forums. The general idea is very comparable to email: Each forum has various categories with specific topics to engage in discussion, so-called threads. Similar to email, on a forum you can get in touch with the open source project and coordinate activities, make suggestions for the direction of the project, and report errors as an end user.
Everything posted to a forum is usually visible to the general public, just as in a mailing list; but unlike there, depending on the forum’s configuration, contents can also be edited or deleted later. The usability of forums is, especially for inexperienced users, often better than mailing lists. The LibreOffice project began converting several of its mailing lists to forums (https://community.documentfoundation.org/) and has since seen an increase in participation in the discussion.
Instant Messages and Chat Platforms
Another way to get in touch with an open source community is through instant messages and chat platforms. With the rise of popular tools like WhatsApp, Telegram, Signal, and Matrix, nearly everyone has already installed one of these popular applications on their devices, which makes the entry barrier much lower. Instant messages are also much more popular with the younger generation than email or forums. It therefore comes as no surprise that many open source projects these days adopt them.
Participants in chats type messages that are sent to all other participants, similar to email. Depending on the chat platform, a message can be enriched with formatting, graphics, and attachments.
Structurally, message apps are organized similar to a forum or email. Several groups or channels are available, so you can join discussions on topics you are interested in. Messages can usually be edited or deleted, and often there are also announcement-only channels that have a function similar to email newsletters.
One drawback of instant messenger apps is that people usually install them on their phones, so they receive notifications of every message sent. This quickly can turn into information overflow or “alert fatigue.” With proper configuration, however, these notifications can be kept under control.
Another downside is that many messenger apps are proprietary and in the hands of one vendor. This makes preserving knowledge for the long term more complicated, if data is not freely accessible.
Stand-Alone, Federated, and Centralized Communications
Open source projects work in the open, based on open standards and open tools. Therefore it is critical to understand how the various tools are designed with regard to interoperability. The options can be split into three main categories.
A stand-alone platform runs in an isolated manner for one community. Examples are forums or wikis, which are usually not connected with instances of other projects.
Decentralized or federated systems run individually for each community, but can connect to each other. One example is email, because a local email server can send email to any other email server in the world. Other examples include Nextcloud and ownCloud, which can “federate” file shares with other servers, and the Element messenger service, with which you can communicate with users of other servers. The same principles apply to the Mastodon social network.
Both stand-alone and distributed platforms have one huge advantage: The open source project stays in full control over all content and functionality. All the knowledge stored in such a system remains the property of the open source community and is not subject to third parties.
A centralized system, on the other hand, is run by one provider and does not interact with third parties. Classical examples are social networks like Facebook or Instagram, or messenger apps like WhatsApp or Telegram. All content is stored on the external provider’s servers and is subject to their terms and conditions.
If you are active in an open source community, you likely get in touch using all three of these options. Centralized systems are great for reaching out to people, as they often are popular and have a large user base. For actual work in the project, however, a federated or stand-alone system under the control of the community is best.
Tools for Collaboration
The distinction between tools for communication and tools for collaboration is not always straightforward. For the purpose of this lesson, the main goal of communication tools is to enable general communication between diverse participants, whereas the main goal of collaboration tools is to help people work together.
Proper collaboration tools allow file storage, real-time collaboration on documents, tracking of document versions and changes between software releases, and much more. While email or forums can serve as general-purpose storage, specialized tools make knowledge more easily accessible and collaboration much more effective.
In other words, these are specialized tools for specific tasks. If you want to contribute to an open source project, you will encounter them very soon.
Wikis
One of the oldest and most popular tools for collaboration is a wiki. Made famous especially by Wikipedia, a wiki allows users to work together on a website that is compiled of several documents or “articles.” They can be grouped in various categories, filtered by language, and contain formatting, spreadsheets, and images.
Wikis are often used as a knowledge base where everybody can contribute. If you want to contribute content to an open source project, participating in their wiki is one of the most straightforward ways. You can take existing content and translate it into your native language, edit and update existing articles, or create new content. In the wiki of the LibreOffice project (https://wiki.documentfoundation.org), you can find marketing material, board meeting minutes, installation instructions, and conference planning, all in a variety of languages (LibreOffice Wiki).
Many open source projects also host their documentation and their program’s integrated help system in a wiki. Additionally, old versions of a page — called revisions — are archived for future reference.
Although wikis can also store project files, there are better tools for this purpose, as you will learn in this lesson.
Bug and Issue Trackers
Another frequently used tool in an open source project are bug trackers, also called issue trackers. If you discover a problem in the software, or want to suggest a new feature, you might think of just sending an email message about it. With a dedicated tool like a bug tracker, however, you can provide all required information and steps to reproduce a problem in a structured way, which makes it easier for developers to reproduce the issue. Such a structured report is called a bug report.
In addition, the information is not lost and the project doesn’t forget about the issue; it can assign it to the right person and see how many bugs are being processed or fixed.
The LibreOffice project provides a bug tracker that is open for everyone to contribute (https://bugs.documentfoundation.org).
Helpdesks and Ticketing Systems
A very similar tool is a helpdesk or ticketing system. Its focus is less on reporting software problems, but rather to help users with all kind of issues and requests, such as for the project’s website.
The classic helpdesk is a customer service hotline. A customer calls and reports a problem, which is turned into a ticket. The workflow of a helpdesk system usually revolves around priorities, escalation levels, and response time.
Not all open source communities provide such a system, but many commercial companies do. For the LibreOffice project, for instance, there is a ticketing system for infrastructure to report problems with servers and web services.
Content Management System (CMS)
Another important tool for collaboration is a content management system (CMS). As the name suggests, it helps to manage the content, most notably for websites. If you want to contribute to the content or the design of a project’s website, making yourself familiar with their CMS is the way to go.
CMS systems, similar to wikis, help to structure content in categories and languages. They often provide a WYSIWYG (“what you see is what you get”) editor and embed everything in a proper template: Titles, headings, page layout, and menu entries are done automatically, so you can focus fully on the content. Additionally, in case of a page redesign, the content will not disappear, but will be adapted to the new template.
Document Management System (DMS)
A document management system is not to be confused with a content management system. While a CMS is designed to show content in a predefined template, like for presenting a website, a DMS is used for the management of documents such as contracts, invoices, receipts, email messages, and all other sorts of correspondence.
Another difference is that a CMS is often used for public presentation, while a DMS is mostly used to manage internal documents that are not intended for the general public.
As a contributor to an open source project, you are less likely to encounter the document management system, as that is often reserved for specific roles such aas accounting or legal.
Source Code Management (SCM)
If you are a developer in an open source project, one of the key tools you will soon run into is the source code management platform. Comparable to a wiki for documentation authors, SCMs are used by software developers to work together on the code.
Historical SCMs include CVS and Subversion, but nowadays Git is mostly used including by the LibreOffice community (https://git.libreoffice.org/). These tools are available on the command line, but there are also graphical interfaces available to make interaction easier, especially for beginners.
Source code management platforms track different versions of each file, handle changes and edits to the code, record who made which change, and ideally give a full history of the software’s development.
Developers can “check out” a specific state of the software, locally work on it, e.g. by fixing a bug or implementing a new feature, and then request that this change be added to the main development line of the software by means of a so-called merge request, also known as a pull request. Accepting the merge or pull request “merges” the changes done by one author with the main code.
There are centralized platforms (GitHub and GitLab) that integrate SCM with wikis, issue tracking, and other collaborative tools.
Source code management platforms are not strictly limited to program code. As one example, this very lesson was worked on collaboratively in a Git repository!
Documentation
Key to the success of every open source project is proper documentation, ideally in several languages. The LibreOffice project provides up-to-date books, guidelines, and reference cards (https://documentation.libreoffice.org) for its software, as well as individual help pages on specific functions (https://help.libreoffice.org).
In general, there are different kinds of documentation, which we’ll discuss in the following sections.
User Documentation
Best known is the documentation for end users, which explains how to use the software. If you don’t know about a feature or function in the program, the documentation — which can range from individual help pages to a complete book — is your first point of reference.
The documentation website, where the use of the software is explained, is often one of the most frequented websites next to the product website, which presents an overview of the software and its community.
Administrator Documentation
For use in larger environments, like deployments in a company, administrator documentation provides all relevant information for deploying the software on a larger scale. This includes connecting to user databases and file storage, centralized configuration management, and handling updates.
Developer and Architecture Documentation
Another category of documentation targets developers and is called developer documentation or architecture documentation. If you are a developer and want to contribute to the code of a program, this documentation tells you about the software architecture, the coding standards, and the tools and workflows used to work on the software.
The LibreOffice project has published a developers guide in its wiki to help interested developers join the community (https://wiki.documentfoundation.org/Documentation/DevGuide).
Guided Exercises
-
Why do open source projects in particular have to take care of proper tools for communication and collaboration?
-
Name one example each for synchronous and asynchronous communication.
-
What is a disadvantage of messenger apps and how can this be avoided?
-
Name two functions of a wiki.
-
What is the difference between a bug tracker and a helpdesk system?
-
What is the difference between a content management and a document management system?
-
What is the advantage of stand-alone or federated systems over centralized systems?
Explorational Exercises
-
What is one of the main differences between a local sports club and an international open source project?
-
Why can contributing to an open source project be particularly rewarding?
-
Which bug tracking software does the Ubuntu project use?
-
What is the name of the website for the Linux kernel mailing lists?
Summary
In this lesson, you’ve learned about a variety of tools used for communicating and collaborating in an open source project. You’ve heard the difference between synchronous and asynchronous communication and between decentralized, centralized, and stand-alone tools. You also learned why specific tools can be helpful for specific tasks to make contributing to an open source project fun and rewarding.
Answers to Guided Exercises
-
Why do open source projects in particular have to take care of proper tools for communication and collaboration?
On one hand, working together in a worldwide distributed group has its set of challenges, which proper tools can help to address. On the other hand, volunteers might not stay indefinitely, so retaining and sharing knowledge is another important aspect in the use of communication and collaboration tools. Making contributions easy helps the sustainability of a project.
-
Name one example each for synchronous and asynchronous communication.
Synchronous communication could be a direct conversation, a phone call, or a video conference. Examples of asynchronous communication include email, SMS, postal letters, and faxes.
-
What is a disadvantage of messenger apps and how can this be avoided?
When installed on the phone, you might receive many notifications, one for each new message. Proper configuration can help avoid this. Another disadvantage is that many messenger apps are run by proprietary vendors.
-
Name two functions of a wiki.
Collaborative editing and translation of articles.
-
What is the difference between a bug tracker and a helpdesk system?
A bug tracker is a specialized software tool to report bugs or request features in software. A helpdesk system focuses on supporting inquiries and managing all kind of issues and requests, e.g. on the website.
-
What is the difference between a content management and a document management system?
A CMS is used for presenting content in a specific way or template, mostly publicly. A DMS is used to store existing correspondence, mostly internally.
-
What is the advantage of stand-alone or federated systems over centralized systems?
A centralized system is under the control of one external provider. All content is stored on the external provider’s servers and subject to their terms and conditions.
Answers to Explorational Exercises
-
What is one of the main differences between a local sports club and an international open source project?
Open source projects are not bound to a specific language or location. Contributors can live on different countries and continents, have different native languages and even live in different timezones. Most of the activity carried out in an open source project happens virtually, not in person.
-
Why can contributing to an open source project be particularly rewarding?
Many open source projects have a diverse group of people. By collaborating with them, you can learn from them, discover new things, and widen your scope.
-
Which bug tracking software does the Ubuntu project use?
Launchpad
-
What is the name of the website for the Linux kernel mailing lists?
https://lkml.org/