/open-source-archetypes

A field guide to open source project archetypes

Primary LanguageTeXOtherNOASSERTION

Open source is a broad term that encompasses many different types of projects. There is a wide range of open source approaches, and sometimes it helps to think through how your open source approach matches your goals, resources, and environment. In many places we look, we see "open source" used as a catch-all term to refer to very different projects that share only the fact that their source code is distributed under an open source license. We don't have a common vocabulary to discuss open source in ways that take account of important differences.

This report is a first step in addressing that problem. OTS prepared it for Mozilla in the first half of 2018. The report catalogs a number of open source archetypes we observe around the community. OTS and Mozilla have found these archetypes to be a useful resource when crafting strategy, weighing tradeoffs, and committing support to open source endeavors.

We hope it is useful to you as you design open source initiatives, weigh tradeoffs in strategy, and pick metrics to track success. The archetypes we list are useful comparison points for anybody trying to maximize the benefits of their open source investment.

Caveat Lector

This report is version 1, and it is surely incomplete. The borders between the archetypes are fuzzy, and we shouldn't expect real-world projects to all neatly line up with these categories. It is not a taxonomy. Many projects fit multiple archetypes at once, and we had heated discussions on how to characterize some projects. Good projects tend to change archetypes over their lifecycle.

All of this is to say that we regard this document as a good start with more work to be done.

Contributing

This report is version 1. We have collected notes for an update, and welcome input, suggestions, editing, and textual contribution. We know you're going to read this and have views worth adding to the conversation. Please share them with us. Together with you, we will do the ongong work of refining archetypes and filling gaps.

There are two main ways to contribute to the text in this report. First, there are the usual mechanisms available through GitHub. Please file issues, issue pull requests, and review patches. All the same distributed collaboration mechanisms we use to build software can be used to edit a text document. The second way to contribute is to send us feedback and suggestions via email to archetypes@opentechstrategies.com. That email will influence our thinking but won't make it into the public discussion unless it results in us filing a ticket or making a change to the document on GitHub.

Beyond that, this raw material would be more useful in the form of analytical tools. That's on our roadmap, and we intend to provide more guidance on how product managers and decision-makers can use the archetypes to provide useful hints on licensing, collaboration models, resource allocation and more.

Building and Dependencies

Building the doc requires both pdflatex and latexmk.

Other than those LaTeX binary dependencies, running make should handle the OTS-specific LaTeX source dependencies properly.

This report is a LaTeX document. It uses on a LaTeX class that you can get from https://github.com/OpenTechStrategies/ots-doctools. If you don't already have that installed, and running make fails to magically install it for you, you can add it as a submodule to this git install with git submodule add https://github.com/OpenTechStrategies/ots-doctools. If this is the only OTS document you're ever going to work on, that's probably your quickest, easiest path to satisfying this dependency.

Linux and OS X should generally do the right thing with these materials. We have not yet documented how to set this up on Windows because we haven't tried to do that setup. If you're on Windows, please let us know how it goes and how we can improve these materials.

No matter your operating system, please let us know if you have difficulty with this. We are eager for feedback on this process so we can improve it.

License, Copyright, Publication, and Maintenance

This document was originally authored by Karl Fogel, James Vasile, and Cecilia Donnelly of Open Tech Strategies as a work-for-hire under contract to Mozilla Corporation. It is Copyright 2018 Mozilla Foundation and Open Tech Strategies and licensed to you under CC-BY-SA. To provide attribution, please link to this repository.

Open Tech Strategies performs ongoing maintenance of this document and repository, with the support and participation of Mozilla. Mozilla reviewed the 1.0 draft, but does not exercise editorial control over this repository.

Mozilla publishes a graphically enhanced PDF version of this document for public distribution (see Patrick Finch's post announcing it). This LaTeX is the source for that PDF's content, and is the master text for purposes of ongoing maintenance. When version 2 comes out, it will likely be similarly graphically enhanced, but in the meantime anyone can build intermediate working PDFs from this repository.