<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Open Tech Strategies | Blog - James Vasile</title><link href="https://blog.opentechstrategies.com/" rel="alternate"></link><link href="https://blog.opentechstrategies.com/feeds/james-vasile.author.atom.xml" rel="self"></link><id>https://blog.opentechstrategies.com/</id><updated>2023-05-19T00:00:00-04:00</updated><subtitle>Maximum return from your open source investments.</subtitle><entry><title>Open Sourcing Checklist</title><link href="https://blog.opentechstrategies.com/2023/05/open-sourcing-checklist/" rel="alternate"></link><published>2023-05-19T00:00:00-04:00</published><updated>2023-05-19T00:00:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2023-05-19:/2023/05/open-sourcing-checklist/</id><summary type="html">&lt;p&gt;Taking an existing, non-open codebase into the open is one of those tasks that seems relatively simple --- apply open source license and publish the code.  In practice, however, there is some hidden complexity along the way, and many projects start out with the best of intentions but fail to complete …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Taking an existing, non-open codebase into the open is one of those tasks that seems relatively simple --- apply open source license and publish the code.  In practice, however, there is some hidden complexity along the way, and many projects start out with the best of intentions but fail to complete the process.&lt;/p&gt;
&lt;p&gt;This, of course, is why we always advise people to &lt;a href="/2018/09/be-open-from-day-one/"&gt;be open from day one&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/jamesvasile/status/1410241468833406986"&gt;
&lt;img alt="&amp;quot;Write a horror story for your industry using just four words.&amp;quot;  &amp;quot;We'll open source it later&amp;quot;  Text is from a Twitter screenshot at https://twitter.com/jamesvasile/status/1410241468833406986" src="/uploads/2023/05/we will open source it later.png"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This document is a checklist of steps you might take before you finally publish your work under open source license.  Most steps are optional, but all of them have value.  Think of them as best practices, not mandatory requirements.  Consider each step and whether it applies to your project.  Then narrow the checklist to the steps you will take.  Feel free to do these in any order that makes sense to you.  Good luck, and please ping us at info AT opentechstrategies.com if we can help.&lt;/p&gt;
&lt;p&gt;This document is not an exhaustive list of concerns you should consider when
open sourcing.  It doesn't go into the reasons why you are considering open
source (and we have found that going open without a clear goal in mind usually
fails to achieve any goals at all).  It doesn't include building a community or
a sustainability model (open source is not, in and of itself, a business model).
All of those are considerations of a much bigger picture than this checklist
contemplates.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Get internal buy-in.&lt;/strong&gt;  Taking code into the open can be a big deal.  It
can disturb existing strategies or revenue streams.  Often, publishing code is
the right answer overall, but might impose tradeoffs that impact some
stakeholders more than others.  Some of those stakeholders might become net
losers.  Make sure you start the process of obtaining the necessary buy-in
from internal stakeholders early.  Secure support all the way up the org-chart
if you can.  This is the step that at first seems doable or even easy but
ultimately blocks so many projects from ever going open.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Get legal buy-in.&lt;/strong&gt; Let your counsel know you're moving in this direction.
Make sure you know what their requirements are to sign off on publishing under
an open source license.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Ensure regulatory compliance.&lt;/strong&gt;  Check to make sure you're square with
export control regulations regarding encryption.  If you're just using
commonly-used open source encryption libraries, you are probably fine.
Depending on what your software does, other regulatory rules might apply.  Find
out and get in compliance.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Check your copyrights.&lt;/strong&gt;  Ensure you have the needed permissions to
release your project under open license.  These permissions could come from
licenses or copyright ownership. Do not assume you have the rights. Go look. Do
an audit.  If necessary, read up on works for hire and federal ownership of
copyright.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Consider your patent portfolio.&lt;/strong&gt;  FOSS licenses sometimes include patent permissions, whether explicitly stated or implicitly granted.  If you or your contributors hold patents, you should evaluate the impact of open licensing on your patent rights.  You might decide your patents are best used to nurture your open source strategy.  Alternatively, you might want to take steps to protect your patents.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Pick an outbound license.&lt;/strong&gt;  Usually this will be BSD, Apache, or some flavor of GPL, but there is a wide range of &lt;a href="https://opensource.org/licenses/"&gt;FOSS licenses&lt;/a&gt; out there for you to choose from.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Consider an inbound license.&lt;/strong&gt;  Sometimes these licenses are called
"contributor license agreements".  By default, a project usually takes code
under an inbound license that is equal to their outbound license.  If that
outbound license gives the project all the rights it needs for the foreseeable
future, that's good enough. If it doesn't, you might consider a contributor
license agreement.  Project Harmony has some &lt;a href="https://harmonyagreements.org/"&gt;sample
agreements&lt;/a&gt; that are old but worth reading (full
disclosure: James Vasile worked on that project).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Ensure license compatibility with dependencies.&lt;/strong&gt;  Two pieces of software are license compatible when they can be combined into one work and released together without violating the licenses of either of the original pieces of software.  The combined work is then treated as goverend by only one of those two licenses, usually the less permissive license.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Upload your code to an online repository.&lt;/strong&gt;  This will probably be a git
repository hosted on &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt;, &lt;a href="https://code.librehq.com"&gt;LibreHQ&lt;/a&gt;, or a
&lt;a href="https://gitlab.com"&gt;GitLab&lt;/a&gt; instance.  &lt;em&gt;Do not make it public it yet.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Add a README.md file.&lt;/strong&gt;  Place it in the root directory of your repository.  It should specify the name of the software and describe what it does in lay terms.  Include contact information, directions to your mailing list or Zulip/Slack /Discord instance, and your general level of willingness to accept public participation.  Provide basic instructions for installation or refer readers to online documentation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Test installation.&lt;/strong&gt;  Give repo access to a new user or developer who has never installed your software before.  Have them follow your instructions.  If they got a running installation, good.  If not, fix your instructions before you publish.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Fix your test suite.&lt;/strong&gt;  Ensure your tests pass.  Sideline (e.g. mark "expected fail") those that don't.  New users will often run tests to make sure their install worked.  If the tests fail, it will be difficult for them to know whether that is because the install failed or because that test stopped passing and nobody cared.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Add a LICENSE or COPYING file.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Add a CONTRIBUTING file.&lt;/strong&gt;  This file tells people how to contribute.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Prepare for public participation.&lt;/strong&gt;  Pay particular attention
to your planned cadence of replies to incoming interest.  Your approach to
inbound messages will, of course, depends on your community strategy, which is
beyond the scope of this checklist (see our &lt;a href="https://opentechstrategies.com/archetypes"&gt;Archetypes
Analysis&lt;/a&gt; and &lt;a href="https://producingoss.com/"&gt;Producing
OSS&lt;/a&gt; for starting points).  Document that approach in
your README or CONTRIBUTING file so people can form expectations about how
quickly you will respond to issues and PRs.  See&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Add issue templates.&lt;/strong&gt;  These can help guide public participation.  Give people some hints about &lt;em&gt;where&lt;/em&gt; discussion of issues happens.  Typically, public projects default to the issue tracker, but some prefer the project's mailing list or forum.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Examine ownership of your repository.&lt;/strong&gt;  Make sure multiple people have authority and actual ability to administer the repository.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Squash history.&lt;/strong&gt;  Does your repository contain sensitive information or secrets?  Has it ever?  When repositories are private, people tend to be less guarded about what they check in to the repo.  Problematic content includes secrets and PII but also might include commit messages containing profanity or even defamatory content.  It is not practical for most projects to examine all their history, so many delete, edit, or squash history before going public.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Remove secrets.&lt;/strong&gt; Ensure there are no API keys or passwords or other
sensitive information in the remaining codebase.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[ ] Publish documentation.&lt;/strong&gt;  Centralize it into an accessible location under open source or creative commons license.  Documentation should be open to change requests.  Track down the design and usage documentation that may currently reside in various internal places and make them public.  Collect the implicit learnings of your team, and write them down so people without your experience can productively approach the software.&lt;/p&gt;
&lt;p&gt;Remember, this checklist is a general list of tasks, some of which might not
apply to you.  Adapt it to your specific needs and legal requirements.  Work
with your lawyer and your open source advisor to reduce this to the list that
works for you and your product.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Karl Fogel, Frank Duncan, and Jesse Bickel for reading early drafts of
this checklist.&lt;/em&gt;&lt;/p&gt;</content><category term="Posts"></category></entry><entry><title>Moving Repositories Between Project Hosting Platforms</title><link href="https://blog.opentechstrategies.com/2023/01/moving-repositories-between-project-hosting-platforms/" rel="alternate"></link><published>2023-01-10T21:52:00-05:00</published><updated>2023-01-10T21:52:00-05:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2023-01-10:/2023/01/moving-repositories-between-project-hosting-platforms/</id><summary type="html">&lt;p&gt;No matter how tightly developers are committed to their
current project hosting provider (GitHub, GitLab, GNU Savannah, or
whatever), new ones will come along over time. The history of web
services is replete with turnover, and project hosting forges all
follow the inevitable trend. But the cost of migration is …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No matter how tightly developers are committed to their
current project hosting provider (GitHub, GitLab, GNU Savannah, or
whatever), new ones will come along over time. The history of web
services is replete with turnover, and project hosting forges all
follow the inevitable trend. But the cost of migration is
formidable: It's quite easy to setup a new project host like
GitLab, but how do you move the whole structure of your team’s
code, branches, comments, issues, and merge requests into their new
home?&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://softwareheritage.org"&gt;Software Heritage&lt;/a&gt;, a non-profit with the mission of archiving free software code, faced this daunting challenge when they decided to move from Phabricator to the more vibrant GitLab. For a while, a lot of free and open source projects had found Phabricator appealing, but the forge had been gradually declining and officially ceased development in 2021.&lt;/p&gt;
&lt;p&gt;At OTS, we developed an open source tool and framework to
support migrating to a new project hosting platform. We used it to
move all of Software Heritage's projects from Phabricator to
GitLab, but the framework is robust enough to support migrations
between almost any project hosts.&lt;/p&gt;
&lt;p&gt;The tool is called &lt;a class="reference external" href="https://code.librehq.com/ots/forgerie"&gt;Forgerie&lt;/a&gt;. Its goal is to automate the migration of projects from one hosting system to
another. Forgerie is extendable to any source and destination. It
translates input from a project hosting platform into a
richly-featured internal format, then exports from that format to the
destination platform.&lt;/p&gt;
&lt;div class="wp-image-616 figure"&gt;
&lt;img alt="Diagram showing repo moving with intermediate representation" src="/uploads/2023/01/Diagram-with-IR.png" /&gt;
&lt;/div&gt;
&lt;p&gt;This is the same method used by many tools that perform n-to-n migrations. For instance, the health care field contains many incompatible electronic record systems, so migration tools usually create an intermediate format to cut down on the number of necessary format conversions.&lt;/p&gt;
&lt;p&gt;OTS continues to work on Forgerie as part of its offering of
migration services to clients. If you would like to use Forgerie,
please grab it
from &lt;a class="reference external" href="https://code.librehq.com/ots/forgerie"&gt;Forgerie's GitLab page&lt;/a&gt; or &lt;a class="reference external" href="https://opentechstrategies.com/#contact"&gt;contact us&lt;/a&gt; if you would like help with a migration.&lt;/p&gt;
&lt;p&gt;The rest of this post offers some technical background on
Forgerie. It should be of interest to anybody solving similar
project hosting problems or, more generally, to anybody working on
moving structured data into a new data store. Many migration
projects fall into the traditional category of Extract, Transform,
Load (ETL), but the richness of data stores today stretches the
category into new realms.&lt;/p&gt;
&lt;div class="section" id="forgerie"&gt;
&lt;h2&gt;Forgerie&lt;/h2&gt;
&lt;p&gt;The Forgerie code was initiated by OTS developer Frank Duncan and
released under the GNU Affero General Public License v3.0. This post
delves into the project goals along
with suggestions for the future of this project. We'll look at the
difficulties posed by this major migration project and how we
handled them. This story may offer lessons and tips to people
dealing with all kinds of data migration.&lt;/p&gt;
&lt;p&gt;If you have used a project hosting system, you might well be imagining
the massive requirements for even such a limited
project. Code in a forge exists in many branches, each created by
multiple commits and enhanced by merges. Numerous issues (change
requests) have been posted by different users, along with comments
that refer to the issues by number. Commit messages also link and refer to the
numbers of issues and branches.&lt;/p&gt;
&lt;div class="wp-image-607 figure"&gt;
&lt;img alt="Diagram showing repo moving without intermediate representation" src="/uploads/2023/01/Diagram-without-IR.png" style="width: 676px; height: 692px;" /&gt;
&lt;/div&gt;
&lt;div class="section" id="the-need-for-a-general-project-hosting-migration-tool"&gt;
&lt;h3&gt;The need for a general project hosting migration tool&lt;/h3&gt;
&lt;p&gt;Tools for importing projects exist for various project hosting
platforms, but they are limited. GitLab does a pretty good job
importing a repository from GitHub, and GitHub from GitLab, and both
allow the uploading of a private repository. Later in this article
we’ll examine one particular limitation of all these import tools:
handling multiple contributors.&lt;/p&gt;
&lt;p&gt;To automate the migration from Phabricator to GitLab, Software
Heritage contracted with Open Tech Strategies (OTS), a free and open
source software consulting firm. Preliminary research turned up a few
tools claiming to perform the migration, but none of them did a
complete job. And each migration tool works only with one particular
forge as input and another as destination. OTS decided to design its
new tool as a general converter that could be adapted to any source
and target repositories.&lt;/p&gt;
&lt;p&gt;Migration thus requires the automated tool to reproduce, on the
target forge, all the projects, branches, commits, merge requests,
merges issues, comments, and users recorded in the source
repository. If possible, contributors should be associated with their
contributions.&lt;/p&gt;
&lt;p&gt;OTS chose to create Forgerie in Common Lisp, which seems like an
odd choice in the 2020s. But Common Lisp is well-maintained and
robust. Its big advantage for the Forgerie project was that Lisp makes
database-to-dictionary conversions easy. Because Phabricator stores
data in a relational database, database-to-dictionary conversions were
the central task in automating the migration.&lt;/p&gt;
&lt;p&gt;The Forgerie project has three subdirectories: a set of core files used
by all migrations, egress files for Phabricator, and ingress files for
GitLab. This design leaves room for future developers to extend the
project by adding more ingress and egress options. In order to go from Phabricator to GitHub, for instance, a
maintainer can reuse the existing core and Phabricator
directories.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="impedance-mismatches-create-challenges"&gt;
&lt;h3&gt;Impedance mismatches create challenges&lt;/h3&gt;
&lt;p&gt;All forges offer basic version control features, along with
communication and management tools such as issues. But each forge is
also unique. In this case, Duncan had to decide how best toaccommodate
features that differ or are missing in the target GitLab platform.&lt;/p&gt;
&lt;p&gt;The biggest challenge Duncan faced is that GitLab maps projects to
repositories on a one-to-one basis, whereas Phabricator treats a
project as a higher-order concept.
A project in Phabricator can
contain multiple repositories, and a repository can be part of many
projects. Phabricator also supports multiple version control tools
(Git, Mercurial, etc.). Making Forgerie flexible enough to smooth over these types of differences in data structure was a key goal.&lt;/p&gt;
&lt;p&gt;The different approaches to projects introduced several
complications. First, Duncan had to make sure that each message and
ticket pointed to the right GitLab project.&lt;/p&gt;
&lt;p&gt;Merge requests were the hardest elements to migrate, because in
Phabricator a changeset can span multiple repositories. The
requirement that Duncan had to implement was to preserve the sequence
of events in the original forge strictly, so that issue 43 in the old
forge remains issue 43 in the new forge. That way, any email message
or comment referring to the issue still refers to the right one.&lt;/p&gt;
&lt;p&gt;Lots of details had to be tidied up. For instance, Phabricator has
its own markup language to add rich text to comments and issues. This
language had to be converted to Markdown to store the comments in
GitLab.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="the-question-of-multiple-contributors"&gt;
&lt;h3&gt;The question of multiple contributors&lt;/h3&gt;
&lt;p&gt;When there are many people to credit for their contributions, the
import tool has a tough nut to crack. Awarding credit properly is
crucial because many contributors rest their reputations on the record
provided by their contributions. Statistics about the number of
commits they made, the “stars” they got, etc. undergird their
strategies for employment and promotions. Losing that information
would also hurt the project by making it hard to trace changes back to
the responsible person.&lt;/p&gt;
&lt;p&gt;On the other hand, security concerns preclude allowing someone to import
material and attribute it to somebody else.&lt;/p&gt;
&lt;p&gt;GitLab solves this problem if the input repository is set up
right: The person doing the import needs master or admin access and
has to map contributors from the input repository to the destination
respository. If access rights don't allow the import to add material
to a contributor's repository, GitLab's import can accurately
attribute issues to the contributor, but not commits.&lt;/p&gt;
&lt;p&gt;Forgerie goes farther in preserving the provenance of contributors:
It keeps track of Phabricator users and creates a user in GitLab for
each user recorded in the Phabricator repository. The Software
Heritage project did not present difficulties because no contributor
had an account in GitLab. To be precise, the email address that
identified each Phabrictor contributor didn’t already exist for any
GitLab contributor. If GitLab had an account with the same email
address as an account being imported, the system would have issued an
error and prevented Forgerie from importing the contributor’s
commits.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="a-few-implementation-details"&gt;
&lt;h3&gt;A few implementation details&lt;/h3&gt;
&lt;p&gt;Forgerie carries out a migration by creating a log of everything
that happened in the source repository, and replaying the log in the
target forge. Phabricator uses a classic LAMP stack, storing all
repository information into a MySQL database. Forgerie queries this
database to retrieve each item in order, then invokes the GitLab API
to create the item there.&lt;/p&gt;
&lt;p&gt;The GitLab API is relatively slow for those particular types of
request, requiring one or two seconds for each request, and
repositories can contain tens of thousands of items when you count all
the merges, comments, etc. So you can expect a migration to take 24
hours or more.&lt;/p&gt;
&lt;p&gt;Long runs call for checkpoints and restarts. When Duncan designed
the simple version of Forgerie for him to run just once, he figured he
could just restart the run if it failed. Later he realized that
restarting after 23 hours became unacceptable.&lt;/p&gt;
&lt;p&gt;The log solves this problem through a kind of simple
transaction. You can conceive of the migration as moving through three
stages (Figure 1). In the first stage, items are in the old platform
but not the log. In the second stage, Forgerie adds the items to the
log. In the third stage, items are safely loaded into the destination
platform and can be removed from the log. Should the job fail, the
user can restart it from the beginning of the log.&lt;/p&gt;
&lt;div class="wp-image-602 figure"&gt;
&lt;img alt="Figure 1: Logging items as they move from source to destination platform." src="/uploads/2023/01/Diagram-with-Logs.png" /&gt;
&lt;p class="caption"&gt;Figure 1: Logging items as they move from source to destination platform.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;A classic issue with transactions arises with a log: Suppose an
item has just entered the target forge but Forgerie did not have a
chance to remove the item from the log before a failure. The item
exists in both the target repository and the log, so when Forgerie
starts up again, the item will be added a second time to
the repository. Forgerie developers do not have to worry about
this happening because the insertions are idempotent. The second
insertion overwrites the first with no corruption of
information.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="assessing-the-forgerie-project"&gt;
&lt;h3&gt;Assessing the Forgerie project&lt;/h3&gt;
&lt;p&gt;The Forgerie code base is surprisingly small–a total of 2,726 lines, divided as follows:&lt;/p&gt;
&lt;div class="aligncenter docutils container"&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Core (shared) code: 350 lines&lt;/li&gt;
&lt;li&gt;Phabricator-specific code: 1,233 lines&lt;/li&gt;
&lt;li&gt;GitLab-specific code: 1,143 lines&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;No platform lives forever. Amazing as the capabilities of GitHub and
GitLab are—and they continue to evolve—there will come a time when developers decide they have to pick up and move their code to some glorious new way of working. Forgerie tries to make migration as painless as possible.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a class="reference external" href="https://praxagora.com/"&gt;Andy Oram&lt;/a&gt; for assistance drafting this post, to Jim McGowan for making the diagrams, and to Antoine R. Dumont of Software Heritage for contributing &lt;a class="reference external" href="https://code.librehq.com/ots/forgerie/-/merge_requests/1"&gt;technical improvements&lt;/a&gt; to the Forgerie project.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="Posts"></category><category term="phab2lab"></category></entry><entry><title>Need help migrating off Phabricator?</title><link href="https://blog.opentechstrategies.com/2022/02/need-help-migrating-off-phabricator/" rel="alternate"></link><published>2022-02-17T14:09:00-05:00</published><updated>2022-02-17T14:09:00-05:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2022-02-17:/2022/02/need-help-migrating-off-phabricator/</id><summary type="html">&lt;p&gt;Open Tech Strategies can help you migrate off of Phabricator now that it has reached &lt;a class="reference external" href="https://github.com/phacility/phabricator"&gt;end-of-life&lt;/a&gt;. We developed &lt;a class="reference external" href="https://code.librehq.com/ots/forgerie"&gt;Forgerie&lt;/a&gt;, an open source tool that aids in migration between code forges. Forgerie extracts data from your Phabricator instance and injects it into a GitLab instance. It can also help move repositories …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Open Tech Strategies can help you migrate off of Phabricator now that it has reached &lt;a class="reference external" href="https://github.com/phacility/phabricator"&gt;end-of-life&lt;/a&gt;. We developed &lt;a class="reference external" href="https://code.librehq.com/ots/forgerie"&gt;Forgerie&lt;/a&gt;, an open source tool that aids in migration between code forges. Forgerie extracts data from your Phabricator instance and injects it into a GitLab instance. It can also help move repositories to a GitHub account.&lt;/p&gt;
&lt;p&gt;Using Forgerie is a process. It requires setting parameters, running the tool, examining the results, tweaking the parameters, and re-running until the result meets your needs. Our team can help you with this process. We can move you to your own GitLab instance, host an instance for you, or get you migrated to &lt;a class="reference external" href="gitlab.com"&gt;GitLab.com&lt;/a&gt; or &lt;a class="reference external" href="https://github.com"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We'd love to help you transition from Phabricator. Drop us a line
at &lt;a class="reference external" href="mailto:info&amp;#64;opentechstrategies.com"&gt;info AT opentechstrategies.com&lt;/a&gt; and we'll get you
safely to your new home.&lt;/p&gt;
</content><category term="Services"></category><category term="phab2lab"></category></entry><entry><title>Open Source Readiness Models</title><link href="https://blog.opentechstrategies.com/2020/09/open-source-readiness-models/" rel="alternate"></link><published>2020-09-17T19:54:00-04:00</published><updated>2020-09-17T19:54:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2020-09-17:/2020/09/open-source-readiness-models/</id><summary type="html">&lt;p&gt;&lt;em&gt;(This is the seventh post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Open source is a powerful tool that offers great benefits to organizations that make, maintain, or deploy software. Most teams know they need open source capabilities. The hard part is finding a focus around adding skills. In most …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;(This is the seventh post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Open source is a powerful tool that offers great benefits to organizations that make, maintain, or deploy software. Most teams know they need open source capabilities. The hard part is finding a focus around adding skills. In most cases, the most important consideration is building capability to know how and when to use FOSS strategies.&lt;/p&gt;
&lt;p&gt;FOSS is all about execution. Reaping the benefits of open source investment requires nailing a series of difficult steps ranging from designing an initial strategy to building an appropriate community to leveraging the resulting dynamics for strategic advantage. Many organizations are not prepared to travel that path and reap those rewards at scale. At OTS, we talk about that level of capability as organizational readiness, and we describe the journey to mastery as one of gaining capability.&lt;/p&gt;
&lt;p&gt;To do that, we might locate a team in a readiness model. This clarifies where they are and also suggests next steps and likely results. Often, organizations use these models to identify areas for potential growth. We find the models are most useful for firms early in their open source journey, and this post focuses on those early stages.&lt;/p&gt;
&lt;p&gt;There are several readiness models. OTS has for many years described climbing the readiness ladder (in &lt;a class="reference external" href="https://opentechstrategies.com/home#resources"&gt;various publications&lt;/a&gt;). Microsoft's Jeff McAffer sees common patterns in an &lt;a class="reference external" href="https://mcaffer.com/2019/02/Open-source-engagement"&gt;engagement model&lt;/a&gt;. GitHub also sketched &lt;a class="reference external" href="https://github.com/github/maturity-model"&gt;maturity model&lt;/a&gt; as the start of a discussion on readiness. Similarly, Wikipedia &lt;a class="reference external" href="https://en.wikipedia.org/wiki/OpenSource_Maturity_Model"&gt;reproduces an interesting model from Qalipso&lt;/a&gt;. There are a number of such models, and it is often worth considering more than one when examining an organization. Of the published models, we like McAffer's in particular because it includes strategic components, accounts for realistic failure modes, and understands that open source readiness will be unevenly distributed in large organizations.&lt;/p&gt;
&lt;p&gt;On many teams, initial open source capabilities might be nascent. Most team members have not had significant (or perhaps even any) experience using open source strategies to create value. The team works in an environment where FOSS investment is rare, and many do not see much reason to change that. That lack of knowledge might translate in some quarters into hostility toward FOSS. People will say ``It can never work here'' even as open source slowly seeps into more and more of the technology around them.&lt;/p&gt;
&lt;p&gt;At this stage, FOSS strategies can be difficult to execute. Internal political risks might be high. Policies might explicitly forbid engaging FOSS. Staff doesn't know how to begin to work with external open source teams. Many people will lack even a basic understanding of what it means to do open source work. Efforts to work in an open source mode are likely to fail in ways that reinforce the belief that open source is not worth further consideration.&lt;/p&gt;
&lt;p&gt;Many factors might move an organization from hostility toward tolerating open source, but movement usually comes from external pressure, changing environments, and staff turnover. Conditions around the organization begin to change, and the costs and risks of refusing to engage start to rise.&lt;/p&gt;
&lt;p&gt;Those costs might include the pain of maintaining internal forks of external open source projects (or, more precisely, the pain of &lt;em&gt;not&lt;/em&gt; maintaining all those forks). Similarly, the benefits of making minor open source investments start to become clear, even if only from watching others make those investments and reap the benefits while your organization loses ground.&lt;/p&gt;
&lt;p&gt;However organizations begin to come around, tolerating open source is all about experimentation. Firms usually don't think of it in those terms. They are making small concessions to necessity. They are seizing unique, one-off advantages. Most don't think of those small projects as the future direction of the company. They should consider the possibility, though. Sometimes, explicitly labeling such experiments as learning exercises and skill-building allows an organization to maximize the value of their experimental investment. It prioritizes reflective analysis and learning. It gives permission to fail. Those can be useful to companies seeking adaptability. When considering McAffer's model, we might relabel his &amp;quot;tolerance&amp;quot; phase as &amp;quot;experimentation&amp;quot;.&lt;/p&gt;
&lt;p&gt;Experiments come in many forms, but the most common first experiment is using some outside open source code and engaging the open source project. That might involve filing bug reports, offering a contribution, or merely participating in project mailing lists and forums. These are all relatively low-risk ways to begin connecting an organization to outside FOSS projects.&lt;/p&gt;
&lt;p&gt;The experimentation phase is usually a skill-building and knowledge-gaining phase because it exercises the skills that cause an organization to shift from merely tolerating open source to trying to harness it. Having those skills provides the vision that starts to shift attitudes.&lt;/p&gt;
&lt;p&gt;The problem that arises as companies start to embrace FOSS is that they lack the infrastructure to succeed at it across the entire organization. They are missing policies, auditing, skills, culture, and experience. This is a pivotal, risky moment. A large number of teams will still be in the denial phase. Efforts to move internal culture toward FOSS will be perceived by some as a pointless shift toward the latest buzzword. Those experimental skills will be unevenly distributed internally. Many new open source projects will fail, and this will convince some that FOSS is a failure. Some might even sabotage FOSS projects.&lt;/p&gt;
&lt;p&gt;McAffer sees this phase as one of hype, and perhaps that's because it's also when an organization embraces open source without quite being ready to execute. Firms in this phase tend to engage FOSS in shallow, unsophisticated ways simply because they don't yet have the experience to make better strategic use of open source opportunities. The way to move past this stage is not to reduce the hype (though that might help) but rather to increase readiness.&lt;/p&gt;
&lt;p&gt;Managers at this stage -- especially middle managers -- need guidance on using FOSS as a strategic component and on managing teams with more external deliverables. Developers need technical infrastructure, easy-to-follow licensing policies, and permission to engage externally. Perhaps more importantly, they need to develop new habits of working in the open and sharing even early, rough versions of their work. Beyond just technical teams, Human Resources needs hiring and compensation guidance as both skills and performance evaluation criteria shift. Providing all of those pieces is the process of gaining proficiency. Adding skills, process, and policy is how that happens, and it requires management approval and resources. Companies that don't provide this support from fairly high in the org chart tend to plateau at this level of readiness.&lt;/p&gt;
&lt;p&gt;All of the above describes a path from the very beginning toward eventual mastery of open source. We think of readiness in terms of skills and capabilities, but the truth is that doing open source well is primarily a cultural shift. Organizations using open source fluently quickly find that the open approach becomes their default process. That culture shift will be the topic of a future post. For now, though, where is your organization on the path toward readiness? What are the steps you can take to help prepare for an increasingly open source tech landscape?&lt;/p&gt;
</content><category term="Open Source At Large"></category></entry><entry><title>Keep Your Friends Close</title><link href="https://blog.opentechstrategies.com/2019/11/influencing-open-source-projects/" rel="alternate"></link><published>2019-11-21T18:07:00-05:00</published><updated>2019-11-21T18:07:00-05:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2019-11-21:/2019/11/influencing-open-source-projects/</id><summary type="html">&lt;p&gt;&lt;em&gt;(This is the sixth post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the insider secrets of free and open source software (FOSS) is that most of the rules a project uses on a day-to-day basis are not found in the software’s license. There are contribution guidelines, which …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;(This is the sixth post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the insider secrets of free and open source software (FOSS) is that most of the rules a project uses on a day-to-day basis are not found in the software’s license. There are contribution guidelines, which are enforced by the project only taking contributions that meet them. There are codes of conduct, which are a condition of community participation. There are endorsements, official membership, a voice in setting the project roadmap, and all kinds of other benefits that attach to varying types of community participation. In each case, entirely external to the license, there are official rules and unwritten norms that govern how participants gain the benefits of joining the civic life of a project.&lt;/p&gt;
&lt;p&gt;If you were to make an &lt;a class="reference external" href="/2019/06/ecosystem-mapping/"&gt;ecosystem map&lt;/a&gt; of an open source project, you might place the project in the middle of the page and then depict scale of involvement as distance from that center. The closer to the center a participant sits, the more influence the project has on them; the further from the center, the less sway the project has.&lt;/p&gt;
&lt;p&gt;At the center is the project itself: its core developers and the people who have made commitments that affect the project’s outputs and actions. A project has a lot of visibility into how these participants act because tight, highly-connected cooperation is beneficial for everyone, and so participants are motivated to act in ways that avoid damaging that cooperation. This mechanism is so natural that most projects do not often think of it as something they could expand intentionally. But sometimes projects do exactly that: they figure out ways to deliberately widen their sphere of influence.&lt;/p&gt;
&lt;p&gt;For example, &lt;a class="reference external" href="https://www.joomla.org"&gt;Joomla&lt;/a&gt;, maintains a &lt;a class="reference external" href="https://extensions.joomla.org"&gt;directory of third party extensions&lt;/a&gt;. It is the way most users discover Joomla extensions. For many businesses based on providing Joomla extensions, absence from that directory is akin to not existing at all. When the Joomla project decided to tighten license compliance among its extension developer community, they didn’t ask their lawyer to run around issuing threats. They simply explained that any project that wanted to appear in that directory must abide by community rules, &lt;a class="reference external" href="including%20complying%20with%20the%20license"&gt;https://docs.joomla.org/Extensions_and_GPL&lt;/a&gt;. Extension developers came into line.&lt;/p&gt;
&lt;p&gt;A similar example can be seen in the &lt;a class="reference external" href="https://www.archesproject.org/code-of-conduct/#2"&gt;Guidelines for Commercial Entities&lt;/a&gt; at the Arches Project. A glance over the guidelines will show the kinds of real-world problems they were developed to address. Only those who agree to the guidelines are listed in the official directory of &lt;a class="reference external" href="https://www.archesproject.org/service-providers/"&gt;Arches service providers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course, being in some kind of project-endorsed directory is just one type of gateway. Another is participation in the project at all, that is, the ability to take part in project discussions, to vote (when there are decisions made by vote), and to have one’s contributions evaluated and accepted by the project with full attribution. Getting contributions accepted into the core project on a regular basis is important for those whose businesses depend on the project. If they can’t get their bugfixes and new features accepted upstream, then they may be forced to maintain their own divergent version (the term of art is “vendor branch”) indefinitely — a situation whose technical and organizational costs only get worse over time.&lt;/p&gt;
&lt;p&gt;The right techniques will differ from project to project, because they must be based on the particular project’s history (as in the examples above). But the general reason these techniques work is that the non-code parts of a project are valuable in their own right. Those parts are not covered by the code’s license, but rather by the project’s norms and rules. Crucially, these parts cannot be replicated: unlike the code, you can’t make a copy of a community, or of a developer’s attention, or of an endorsement’s value. Equally crucially, none of them can be demanded by bad actors. The benefits of participation flow naturally to community members in good standing and it is equally natural to deny them to people and firms that refuse to align themselves with the community ethos. Creating structures that allow projects to control access to community benefits is a powerful way to enforce norms.&lt;/p&gt;
&lt;p&gt;Using community participation as the mechanism for promulgating norms has its limits. Some participants stay far enough from the center of the project that they are effectively immune to community inducements. (Fortunately, projects have other mechanisms available to influence them, and we will cover some of those in a future post.) But in most cases, organizations that have a core reliance on the code will find multiple reasons to stay in good standing with the community, and this means the project has a chance to influence how those organizations behave. Spotting these leverage points takes experience as well as an understanding of project &lt;a class="reference external" href="/2019/05/open-source-goal-setting/"&gt;goals&lt;/a&gt; and &lt;a class="reference external" href="https://opentechstrategies.com/archetypes"&gt;positioning&lt;/a&gt;. Projects that want to wield influence over their ecosystem — whether for strategic or ethical ends — should actively look for ways to provide value backed by network effects, until the case for participation is overwhelming.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Microsoft for sponsoring the&lt;/em&gt;&lt;a class="reference external" href="https://blog.opentechstrategies.com/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt;&lt;em&gt;blog series.&lt;/em&gt;&lt;/p&gt;
</content><category term="Open Source At Large"></category><category term="governance"></category></entry><entry><title>Spot The Pattern: Commoditization</title><link href="https://blog.opentechstrategies.com/2019/10/commoditization/" rel="alternate"></link><published>2019-10-02T15:28:00-04:00</published><updated>2019-10-02T15:28:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2019-10-02:/2019/10/commoditization/</id><summary type="html">&lt;p&gt;&lt;em&gt;(This is the fifth post in our&lt;/em&gt; &lt;a class="reference external" href="https://blog.opentechstrategies.com/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Last week, I spoke with the CEO of a company that makes a proprietary, category-leading workflow product. He asked me &amp;quot;what should we open source and when?&amp;quot;&lt;/p&gt;
&lt;p&gt;This is one of the most common questions we get. There …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;(This is the fifth post in our&lt;/em&gt; &lt;a class="reference external" href="https://blog.opentechstrategies.com/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Last week, I spoke with the CEO of a company that makes a proprietary, category-leading workflow product. He asked me &amp;quot;what should we open source and when?&amp;quot;&lt;/p&gt;
&lt;p&gt;This is one of the most common questions we get. There is no easy, standard answer to this question, but I usually start by looking for features of the ecosystem that either are or could be &lt;strong&gt;commoditized&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A commodity is something that is the same no matter who makes it. Gasoline is a commodity. Customers don't really care where they buy gas. They want it cheap and reliable, but the gas itself should be the same stuff regardless of which oil company refines it and pumps it into your car.&lt;/p&gt;
&lt;p&gt;In practice, of course, gas from different companies is not identical. Some places enhance it with detergents, mix it with ethanol, or add stabilizers.&amp;nbsp; But for the most part, consumers ignore these small differences.&amp;nbsp; You put it in your car and it works.&amp;nbsp; People pick gas stations based on price and convenience.&lt;/p&gt;
&lt;p&gt;It's hard to charge a premium for a commoditized good. People are not willing to pay extra for a product if they can get the equivalent for less elsewhere. As a result, gas stations compete on price.&amp;nbsp; This squeezes margins, and so in the end they make their money on the convenience store, just like movie theaters do with popcorn.&lt;/p&gt;
&lt;p&gt;Open source software businesses are often in the same position. There's a core offering that is, to put it bluntly, boring. Anybody could offer this boring core without innovating. You cannot be in the market without matching the core's offerings, and customers want standard interfaces these days, so there's not much opportunity to differentiate on the basic core offering.&lt;/p&gt;
&lt;p&gt;Database servers follow this model. From a business perspective, storing rows of data is not interesting. Everybody can do it, and nobody really does it much better than anybody else. There are performance improvements at the margins, and we can build interesting services on top of storing information, but basic data storage and retrieval is just facilities maintenance, not the thing your customers choose you for.&lt;/p&gt;
&lt;p&gt;Of course, not all data storage is basic. You can store things faster or in ways that make access easier. You can stack data vertically instead of horizontally. You can keep all the data in memory, duplicate it across multiple servers, or sync with client-side storage. These are features that can set one product apart from another. You might be able to charge a premium for them. None of them, though, is actually the boring, basic task of putting data on a disk and making sure you can find it later.&lt;/p&gt;
&lt;p&gt;For a business that manages data but can't find competitive advantage on storing it, the database is a cost. It's not worth spending a lot of money to develop or acquire a database that improves on the standard set of features because there's just not much improvement to be had. Best to source those features as cheaply as possible.&lt;/p&gt;
&lt;p&gt;Of course, the same logic applies to everybody else in your industry. We're all trying to get the boring stuff done as cheaply as possible. This is where open source cooperation comes in. We can't compete on those features, so there's no point being competitive about it. We use open source to get together and collaborate with all the other folks who want rock-solid databases. Open source lets us do this even if we're in competition on a range of other fronts.&lt;/p&gt;
&lt;p&gt;We see this pattern a lot in free and open source software. Product categories go open source, then contract, then perhaps expand when somebody figures out the next frontier of differentiation. Most recently, we've seen this effect around web rendering engines. Every browser's goal is to depict HTML in standard ways. Aside from being at Google's mercy, there's little reason for most companies to make their own rendering engine when there's a pretty good one that is open for the taking.&lt;/p&gt;
&lt;p&gt;Spotting this pattern early is a crucial step in knowing&amp;nbsp;&lt;em&gt;what&lt;/em&gt; to open source and &lt;em&gt;when&lt;/em&gt;.&amp;nbsp; You can lead or let somebody else lead -- either might be strategically useful, but spotting the pattern lets you choose which position to take.&lt;/p&gt;
&lt;p&gt;Sometimes it makes sense to open source what you have mainly as a signal to others that an area is becoming commoditized and so they should open source their stuff too.&amp;nbsp; That is, you don't necessarily have to be aiming for a dominant position in a new open source area -- in fact, you often don't have to decide that in advance.&amp;nbsp; Instead, you open source because an area is &lt;em&gt;about&lt;/em&gt; to become commoditized, and the earlier you shift your investments, the better positioned you will be get the type of influence that serves your needs in the inevitable post-commoditization universe.&amp;nbsp; (For more about the various forms that influence can take, see &lt;a class="reference external" href="https://opentechstrategies.com/files/pub/MZ+OTS_OS_Archetypes_report_ext_scr.pdf"&gt;Open Source Archetypes&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Once you start looking for the commoditization pattern, you see it all over the open source world. It is a common tool for understanding the strategic position of all kinds of products. In addition to the basic pattern, there are two more big concepts around commoditization worth considering: the cyclical nature of commoditization and the factors that allow resisting that cycle. We'll cover those in future posts.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Microsoft for sponsoring the&lt;/em&gt; &lt;a class="reference external" href="https://blog.opentechstrategies.com/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;blog series.&lt;/em&gt;&lt;/p&gt;
</content><category term="Open Source At Large"></category></entry><entry><title>Ecosystem Mapping</title><link href="https://blog.opentechstrategies.com/2019/06/ecosystem-mapping/" rel="alternate"></link><published>2019-06-24T19:39:00-04:00</published><updated>2019-06-24T19:39:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2019-06-24:/2019/06/ecosystem-mapping/</id><summary type="html">&lt;p&gt;&lt;em&gt;(This is the fourth post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;All the power of open source comes from throwing in with your neighbors, even the neighbors you don't like very much. For most projects, the main reason to get involved in open source is to create productive relations …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;(This is the fourth post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;All the power of open source comes from throwing in with your neighbors, even the neighbors you don't like very much. For most projects, the main reason to get involved in open source is to create productive relations with as many participants as possible, including rivals. Doing this well requires understanding who is in your ecosystem and how they relate to each other.&lt;/p&gt;
&lt;p&gt;Whenever a team comes together to plan their open source strategy, they need a way to gather that understanding. They want to pool their knowledge and get everybody working from the same set of facts. The best tool we've found for this is ecosystem mapping.&lt;/p&gt;
&lt;p&gt;There are many ways to visualize groups of stakeholders. We generally recommend starting with who and going from there to what. You can capture users, contributors, service and support providers, partners, funders, investors, deployers, integrators, and competing or adjacent efforts. Grab anything important to the questions directly in front of you, and don't worry about being complete.&lt;/p&gt;
&lt;p&gt;Ecosystem maps are lightweight. They should be messy, quick, and replaced often. The best way to make one is to hand-draw it on a large piece of paper or on a whiteboard, ideally as a group exercise. Snap a pic for future reference, but don't bother taking the time to redraw them neatly. In a fast-moving project, the terrain these maps describe will shift often. And the reasons why you might draw a map will change even faster. It is not unusual to make several different maps of the same ecosystem in an afternoon.&lt;/p&gt;
&lt;p&gt;Here is a simplified version of an ecosystem map drawn by the &lt;a class="reference external" href="https://archesproject.org"&gt;Arches Project&lt;/a&gt;. (We reproduced it in &lt;a class="reference external" href="http://dia-installer.de"&gt;Dia&lt;/a&gt; for this article, but normally we wouldn't bother to digitize a map, beyond photographing the whiteboard or paper it was drawn on.)&lt;/p&gt;
&lt;div class="aligncenter docutils container"&gt;
&lt;div class="wp-image-364 figure"&gt;
&lt;img alt="A sample ecosystem map" src="https://blog.opentechstrategies.com/wp-content/uploads/2019/06/example-ecosystem-map.png" style="width: 447px; height: 320px;" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Notice how the diagram is primarily designed to highlight geography but also uses color and shape to distinguish between different types of participants.&lt;/p&gt;
&lt;p&gt;The day the team drew this map, we wanted to understand where the project was succeeding geographically and how to support participants spreading the project into new communities. We suspected that having a set of committed users and service providers doing custom deploys were both important, so we mapped it to kick off a group discussion. As we talked through planning, we referred to the map, adjusted it at times and later even drew another map with a new focus. The diagram was a guide for conversation and let everybody agree on parameters quickly.&lt;/p&gt;
&lt;p&gt;This is a map drawn of the &lt;a class="reference external" href="https://torproject.org"&gt;Tor Project&lt;/a&gt; by Dlshad Othman:&lt;/p&gt;
&lt;div class="aligncenter docutils container"&gt;
&lt;div class="wp-image-363 figure"&gt;
&lt;img alt="A sample ecosystem map from the tor project, by Dlshad Othman" src="https://blog.opentechstrategies.com/wp-content/uploads/2019/06/tor-ecosystem-map.jpg" style="width: 454px; height: 331px;" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This map is more centered on interactions with the Tor Project. It doesn't mention geography at all, and it uses enclosing shapes to group types of participants in a venn-diagram. It shows roles and relationships with a heavy focus on the project itself.&lt;/p&gt;
&lt;p&gt;There is no one right way to draw an ecosystem map. There are, however, some signs that your map is not set up to capture relationship complexity:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;It is shaped like a star, with all your connections coming back to one central entity.&lt;/li&gt;
&lt;li&gt;It is more of a cloud than a map. If the map doesn't depict relationships between entities, it's not doing its job.&lt;/li&gt;
&lt;li&gt;It tries to answer too many questions at once.&amp;nbsp; Maps are usually single-use snapshots designed to highlight one aspect of your ecosystem.&amp;nbsp; As two-dimensional representations made quickly with a limited palette of colors and symbols, these maps can show complex relationships, but not easily accommodate high-cardinality data views.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That said, do whatever works for your purpose! Experiment with different techniques, and draw maps that highlight different types of information. If you make a map using some of these techniques, let us know in the comments. We’d love to see pictures of maps that might turn into future examples as we continue to help people apply this approach to crafting open source strategy.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Microsoft for sponsoring the&lt;/em&gt; &lt;a class="reference external" href="https://blog.opentechstrategies.com/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;blog series, and also to Dlshad Othman and the Arches Project for kindly letting us use their maps as examples.&lt;/em&gt;&lt;/p&gt;
</content><category term="Open Source At Large"></category></entry><entry><title>Open Source Goal Setting</title><link href="https://blog.opentechstrategies.com/2019/05/open-source-goal-setting/" rel="alternate"></link><published>2019-05-29T03:41:00-04:00</published><updated>2019-05-29T03:41:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2019-05-29:/2019/05/open-source-goal-setting/</id><summary type="html">&lt;p&gt;&lt;em&gt;(This is the third post in
our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Open source is a strategic tool, not an end in itself. It is the&lt;/div&gt;
&lt;div class="line"&gt;stone in your stone soup. You don't eat it&amp;nbsp;—&amp;nbsp;it's&lt;/div&gt;
&lt;div class="line"&gt;just the invitation.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;You reach for open source to create effects that will support …&lt;/div&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;(This is the third post in
our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Open source is a strategic tool, not an end in itself. It is the&lt;/div&gt;
&lt;div class="line"&gt;stone in your stone soup. You don't eat it&amp;nbsp;—&amp;nbsp;it's&lt;/div&gt;
&lt;div class="line"&gt;just the invitation.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;You reach for open source to create effects that will support your&lt;/div&gt;
&lt;div class="line"&gt;broader strategy. We've talked to dozens of clients about why they&lt;/div&gt;
&lt;div class="line"&gt;invest in open source, and the reasons tend to be fundamental and&lt;/div&gt;
&lt;div class="line"&gt;long-term: to achieve a cultural change in their technical&lt;/div&gt;
&lt;div class="line"&gt;organization, to influence a market's direction, to recast&lt;/div&gt;
&lt;div class="line"&gt;relationships with partners, etc. Direct revenue is rarely the main&lt;/div&gt;
&lt;div class="line"&gt;goal of open source investment, even for for-profit businesses.&lt;/div&gt;
&lt;div class="line"&gt;Rather, open source is used to create an environment in which&lt;/div&gt;
&lt;div class="line"&gt;revenue-generating activities can thrive.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Below is a checklist, or rather a provocation list. It's meant to&lt;/div&gt;
&lt;div class="line"&gt;help you answer the question &lt;em&gt;&amp;quot;What effects do we most want from
our open source investment?&amp;quot;&lt;/em&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Treat this list as a menu, not a buffet. Pick three items and make them your high priority targets. Focus on effects that connect best to your strategy, and, ultimately, to your organization's mission. You need to know where you want to go before you can chart a course to get there. We've broken the goals into three categories, but you can mix and match across or within categories as you please.&lt;/p&gt;
&lt;div class="section" id="development-and-collaboration"&gt;
&lt;h2&gt;Development and Collaboration&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;em&gt;Expand or amplify developer base&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Gain market insight&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Gain or maintain insight in a particular technical domain&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Influence a technical domain&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Create a framework for partner collaboration&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Lead a standardization effort&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Disrupt an incumbent, hold off insurgents&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="external-positioning"&gt;
&lt;h2&gt;External Positioning&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;em&gt;Ease customer fears of vendor lock-in&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Deepen engagement with users, create more paths for engagement&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Transparency for customers and partners&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Establish a basis for product reputation&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Organizational branding and credibility&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Product branding and credibility&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="internal-or-structural-change"&gt;
&lt;h2&gt;Internal or Structural Change&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;em&gt;Improve internal collaboration (cross-individual or cross-departmental)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Create opportunities for internal mobility&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Expand or reshape hiring pool, expedite recruiting&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Improve morale and retention&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Create flow-paths for bottom-up innovation&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Improve and maintain open source capabilities (technical and social)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Again, we emphasize the importance of picking just a few.&lt;/div&gt;
&lt;div class="line"&gt;Winnowing down to just the most important goals is usually&lt;/div&gt;
&lt;div class="line"&gt;illuminating, because it forces your organization to articulate what&lt;/div&gt;
&lt;div class="line"&gt;it's really after. Every item on the menu might look inviting, and&lt;/div&gt;
&lt;div class="line"&gt;any of them can be pursued opportunistically, but a strategy that&lt;/div&gt;
&lt;div class="line"&gt;tries to chase all these goals at once will go nowhere.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;If you have goals for open source investment that don't appear on&lt;/div&gt;
&lt;div class="line"&gt;this list, we'd love to hear them. The list was built up over years&lt;/div&gt;
&lt;div class="line"&gt;of experience, and we generally find that we can map from it to the&lt;/div&gt;
&lt;div class="line"&gt;specifics of a particular client's or project's&lt;/div&gt;
&lt;div class="line"&gt;needs&amp;nbsp;—&amp;nbsp;most open source dreams appear somewhere on&lt;/div&gt;
&lt;div class="line"&gt;this list. But that doesn't mean we can't be surprised, and we're&lt;/div&gt;
&lt;div class="line"&gt;always happy when we are.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Thanks to Microsoft for sponsoring the&lt;/em&gt;&lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt;&lt;em&gt;blog series.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="Open Source At Large"></category></entry><entry><title>What Is Open Source Strategy?</title><link href="https://blog.opentechstrategies.com/2019/05/what-is-open-source-strategy/" rel="alternate"></link><published>2019-05-15T09:00:00-04:00</published><updated>2019-05-15T09:00:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2019-05-15:/2019/05/what-is-open-source-strategy/</id><summary type="html">&lt;p&gt;&lt;em&gt;(This is the second post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There is a lot of documentation out there on how to do open source well at the project level. Historically, many projects have been started by developers, often on their own initiative, and the first non-technical questions they …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;(This is the second post in our&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;series.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There is a lot of documentation out there on how to do open source well at the project level. Historically, many projects have been started by developers, often on their own initiative, and the first non-technical questions they faced tended to be about project coordination (like &amp;quot;What collaboration tools shall we use?&amp;quot; or &amp;quot;What will our code review practices be?&amp;quot;) and about community management (like &amp;quot;How do we decide who has commit access?&amp;quot; and &amp;quot;How do we integrate newcomers smoothly?&amp;quot;). Because developers hate to solve the same problems over and over, there is a wealth of detailed and varied material addressing those sorts of questions (we've even &lt;a class="reference external" href="https://producingoss.com/"&gt;written some ourselves&lt;/a&gt;, but it's just a drop in the bucket of what's available). Taken together, this literature thoroughly answers the question &amp;quot;How do we execute the best tactics for developing open source software?&amp;quot;&lt;/p&gt;
&lt;p&gt;But there isn't yet a lot of material on open source &lt;em&gt;strategic thinking&lt;/em&gt;. Indeed, it's traditionally so under-discussed that often when we talk about it people think that we're talking about the nuts-and-bolts of how to run projects, rather than the broader question of how an organization uses open source to further its mission.&lt;/p&gt;
&lt;p&gt;This blog series is about open source strategic thinking, so the first thing we want to do is define what that is. It overlaps with tactics, of course. For example, the tactical question &amp;quot;How do we integrate newcomers smoothly?&amp;quot; unfolds to become the strategic question &amp;quot;What are the long-term returns we want from engaging with others, who are those others, and what kinds of investments should we make in order to achieve those returns?&amp;quot;&lt;/p&gt;
&lt;p&gt;Let's run with that example for a moment. It's deceptively easy, with one's overworked-developer hat on, to think that the answer is obvious: &amp;quot;Oh, we want to bring in others because then they'll contribute code and bugfixes and documentation to the project, thus lowering the costs of development for everyone else.&amp;quot; But with one's strategic-thinker hat on, the question starts to look more complex&amp;nbsp;—&amp;nbsp;its many possible, non-mutually-exclusive answers each affect the shape of the investment.&lt;/p&gt;
&lt;p&gt;If one of the ways the open source project serves your goals is by providing a channel for closer technical cooperation with customers and potential customers, then perhaps your investment in engaging participants should emphasize fast response times in discussion and deliberate probes to uncover usage scenarios. On the other hand, if the point is to disrupt a competitor's proprietary product in the marketplace, then it might make more sense to invest heavily in ease of deployment, including fast processing of the relevant bug fixes and documentation contributions. One thing is certain: you cannot make every investment at once. All human endeavors are resource-constrained, and software projects are certainly no exception. One does not have a choice about prioritizing; one merely has a choice about whether to do it purposefully&amp;nbsp;—&amp;nbsp;strategically&amp;nbsp;—&amp;nbsp;or accidentally.&lt;/p&gt;
&lt;p&gt;Please do not place too much weight on that one example, in any case. While investment in new participants is an important component of open source strategy, it is not the only component. If we were to make a high-level list of possible strategic concerns, it might look like this:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;How open source supports your mission or goal.&lt;/li&gt;
&lt;li&gt;How it affects your relationship with competitors and their products.&lt;/li&gt;
&lt;li&gt;How it affects your relationship with customers.&lt;/li&gt;
&lt;li&gt;How it affects the internal structure of your organization.&lt;/li&gt;
&lt;li&gt;How open source allows you to draw in partners; how it affects where those partners come from; how it defines your relationship with those partners and their relationships with each other. (Project governance is a subset of this, but typically is not the most important subset.)&lt;/li&gt;
&lt;li&gt;What types of investments you need to make to shape the above relationships in ways that serve your goals.&lt;/li&gt;
&lt;li&gt;How you sustain your open source efforts over time. (A project's sustainability model(s) is not the same as any one of its participants' business models. An open source project that aims to create a diverse ecosystem of lightly-involved support vendors will have a very different sustainability model from a project that supplies a key piece of infrastructure needed by a few large corporations.)&lt;/li&gt;
&lt;li&gt;What you can do as an open source actor that your proprietary competitors cannot.&lt;/li&gt;
&lt;li&gt;What collaborative or market opportunities does being open source enable?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These concepts are not just for executives and managers, by the way. Developers benefit from strategic awareness, and of course can help support a strategy most effectively if they know about it. Our target audience for these posts is developers who want to think strategically, as much as it is managers and organization leaders.&lt;/p&gt;
&lt;p&gt;In order to do strategic planning around products and projects, we have found a common set of base information and exercises to be useful: explicit goal-setting; mapping the ecosystem that surrounds the project; identifying business models (before identifying sustainability models); understanding the cyclical way in which open source commoditizes product categories and what that implies for the particular product and category in question; how an open source project relates to the procurement and deployment habits of its intended audience; and making choices in the inevitable trade-off between control and reach.&lt;/p&gt;
&lt;p&gt;We will discuss each of these in future posts in this series. The point of this post is simply to say that strategy is a thing, and that it is separate from community management, collaboration tools, and everything else that makes things run at the project level. To use open source to meet your goals, it is necessary to structure your open source engagement in ways that align with those goals — and this is fundamentally a strategic question that won't be easily answered from within the confines of day-to-day technical development.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Microsoft for sponsoring the&lt;/em&gt; &lt;a class="reference external" href="/category/open-source-at-large/"&gt;Open Source At Large&lt;/a&gt; &lt;em&gt;blog series, and thanks to&lt;/em&gt;&lt;a class="reference external" href="https://twitter.com/joshuagay"&gt;Josh Gay&lt;/a&gt;&lt;em&gt;for sending us copyedits on this post.&lt;/em&gt;&lt;/p&gt;
</content><category term="Open Source At Large"></category><category term="strategy"></category></entry><entry><title>Field Guide To Open Source Project Archetypes</title><link href="https://blog.opentechstrategies.com/2018/05/field-guide-to-open-source-project-archetypes/" rel="alternate"></link><published>2018-05-15T15:53:00-04:00</published><updated>2018-05-15T15:53:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2018-05-15:/2018/05/field-guide-to-open-source-project-archetypes/</id><summary type="html">&lt;p&gt;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 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;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 every project. We don't have a common vocabulary to discuss open source in ways that take account of important differences.&lt;/p&gt;
&lt;p&gt;OTS prepared a field guide to open source project archetypes with Mozilla that is a first step in addressing that problem. 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. Today, we share the results of this work with the community.&lt;/p&gt;
&lt;p&gt;[embed]https://youtu.be/Lo61OOi8_4Y[/embed]&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;You can &lt;a class="reference external" href="https://drive.google.com/file/d/1woaZ0wjQMbLQhyfB8ZOYveh8cW-jlDPG/view"&gt;download the report here&lt;/a&gt;. Mozilla &lt;a class="reference external" href="https://medium.com/mozilla-open-innovation/whats-your-open-source-strategy-here-are-10-answers-383221b3f9d3"&gt;blogged about it&lt;/a&gt;. We also put &lt;a class="reference external" href="https://github.com/OpenTechStrategies/open-source-archetypes"&gt;the source text on GitHub&lt;/a&gt; and are inviting contributions to future versions. Finally, please drop us a line at archetypes AT opentechstrategies.com if you have comments.&lt;/p&gt;
</content><category term="Archetypes"></category><category term="archetypes"></category><category term="publications"></category></entry><entry><title>Decentralization: Worth The Wait</title><link href="https://blog.opentechstrategies.com/2017/09/decentralization-worth-the-wait/" rel="alternate"></link><published>2017-09-12T00:42:00-04:00</published><updated>2017-09-12T00:42:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2017-09-12:/2017/09/decentralization-worth-the-wait/</id><summary type="html">&lt;p&gt;Ethan Zuckerman has &lt;a class="reference external" href="https://www.wired.com/story/decentralized-social-networks-sound-great-too-bad-theyll-never-work/"&gt;a piece in Wired&lt;/a&gt; that says building decentralization tools is a sucker's bet. He and his coauthors, Chelsea Barabas and Neha Narula, mention the FreedomBox, which I helped lead, as an example of how difficult this stuff is. They point to a list of things that make …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ethan Zuckerman has &lt;a class="reference external" href="https://www.wired.com/story/decentralized-social-networks-sound-great-too-bad-theyll-never-work/"&gt;a piece in Wired&lt;/a&gt; that says building decentralization tools is a sucker's bet. He and his coauthors, Chelsea Barabas and Neha Narula, mention the FreedomBox, which I helped lead, as an example of how difficult this stuff is. They point to a list of things that make decentralized efforts prone to failure and conclude:&lt;/p&gt;
&lt;blockquote&gt;
Our research—a combination of technical and historical analysis, and dozens of interviews with open web advocates—indicates that there is no straightforward technical solution to the problem of platform monopolies. Moreover, it’s not clear we can solve the nuanced issues of centralization by pushing for &amp;quot;re-decentralization&amp;quot; of publishing online. The reality is that most people do not want to run their own web servers or social network nodes. They want to engage with the web through friendlier platforms, and these platforms will be constrained by the same forces that drive consolidation today.&lt;/blockquote&gt;
&lt;p&gt;They point to a &amp;quot;better strategy&amp;quot; of policies aimed at &amp;quot;data portability, interoperability, and alternatives to advertising-based funding models&amp;quot;.&lt;/p&gt;
&lt;p&gt;I'm no longer with FreedomBox, and none of what they write is wrong (I was one of the open web advocates they interviewed), but I wanted to chime in because there's more to decentralization than seeking a &amp;quot;straightforward technical solution&amp;quot; and building a better social networking app. It's true that we haven't realized the grand vision of Diaspora and FreedomBox. They're right that we need enlightened policy. We need the centralized platform monopolies to behave better. Those steps, though, won't ever give people control over the means of communication. Without that control, we'll always be at the mercy of Facebook or whatever comes next.&lt;/p&gt;
&lt;p&gt;Redecentralizing the web is hard. FreedomBox and other projects I've worked with found that delivering exciting, secure, privacy-respecting apps required starting from scratch. Every piece of centralized tech depends on a bunch of other pieces that also tend toward the efficiency of centralization. Most of it is invisible to end users but it's centralized pieces all the way down. We wanted to build a beautiful fountain but were missing basic plumbing. If you want to fundamentally change the relationships between the visible parts, you can't just skim the surface. You have to dive deep and you need to invent all the decentralized building blocks that make up a complete web service.&lt;/p&gt;
&lt;p&gt;It's a little like switching cars from gas to electricity. You can't just aim sunbeams at your fuel tank. You have to change every moving part in the vehicle, rethink gas stations, reinvent batteries, redesign a chunk of the electric grid, adopt new regulations, grow a new supply chain, and maybe fundamentally change the average person's relationship to their car.&lt;/p&gt;
&lt;p&gt;The internal combustion car and all the pieces of our world that relate to it benefited from billions of dollars of investment and a century of development. We're not going to shift everybody to electric cars overnight. With all the might of the car companies, it will still take decades of small changes, each one ambitious on its own. Likewise, we're not going to dislodge the Internet monopolies overnight with weekend coders and money begged on Kickstarter.&lt;/p&gt;
&lt;p&gt;What we're going to do instead is start at the bottom and build &lt;a class="reference external" href="https://ipfs.io"&gt;some&lt;/a&gt; boring &lt;a class="reference external" href="https://briarproject.org"&gt;infrastructure&lt;/a&gt; that makes other decentralized things possible. That piece will make &lt;a class="reference external" href="http://ongakuryoho.com"&gt;new decentralized work&lt;/a&gt; possible. Those efforts will also be boring to everybody except privacy geeks. But we'll keep building and refining. Eventually we'll have a towering stack of pieces, each providing some crucial bit of decentralized functionality. They'll add up to something that, finally, some end users want.&lt;/p&gt;
&lt;p&gt;And when that thing is built, nobody will notice. Unless you care what's under the hood, it will be boring, like a Prius. People who use it will like that it works well and respects their privacy, but they will understand decentralization about as well as they get battery chemistry or regenerative braking.&lt;/p&gt;
&lt;p&gt;That is what we're building towards. All of Zuckerman's points about this being a monumental task are true. We should pursue the policies he identifies. But we should firmly reject any suggestion that we stop building just because it's hard and will take a while.&lt;/p&gt;
</content><category term="Posts"></category><category term="decentralization"></category></entry><entry><title>"Open source mistakes for enterprise newcomers" on O'Reilly Radar</title><link href="https://blog.opentechstrategies.com/2017/05/mistakes-for-enterprise-newcomers/" rel="alternate"></link><published>2017-05-10T20:40:00-04:00</published><updated>2017-05-10T20:40:00-04:00</updated><author><name>James Vasile</name></author><id>tag:blog.opentechstrategies.com,2017-05-10:/2017/05/mistakes-for-enterprise-newcomers/</id><summary type="html">&lt;p&gt;OTS partners James Vasile and Karl Fogel recently wrote &lt;a class="reference external" href="https://www.oreilly.com/ideas/open-source-mistakes-for-enterprise-newcomers"&gt;a post for O'Reilly Radar&lt;/a&gt; about common mistakes that companies make when they start to get involved in open source.&amp;nbsp; They write:&lt;/p&gt;
&lt;blockquote&gt;
Open source reinvents relationships and business dynamics, turning customers and even competitors into collaborators. Firms embrace it to encourage …&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;OTS partners James Vasile and Karl Fogel recently wrote &lt;a class="reference external" href="https://www.oreilly.com/ideas/open-source-mistakes-for-enterprise-newcomers"&gt;a post for O'Reilly Radar&lt;/a&gt; about common mistakes that companies make when they start to get involved in open source.&amp;nbsp; They write:&lt;/p&gt;
&lt;blockquote&gt;
Open source reinvents relationships and business dynamics, turning customers and even competitors into collaborators. Firms embrace it to encourage those dynamics, when the benefits of participating outweigh the gains from going it alone with proprietary code. But open source isn't an outcome in itself. It is an approach for finding where different firms’ interests intersect and helping them cooperate there — but it is the path, not the place. To enjoy its full benefits, one must visibly walk that path.&lt;/blockquote&gt;
&lt;p&gt;Thanks to Andy Oram and Adam Flaherty for their expert editing and advice.&amp;nbsp; You can &lt;a class="reference external" href="https://www.oreilly.com/ideas/open-source-mistakes-for-enterprise-newcomers"&gt;read the full article on O'Reilly&lt;/a&gt;.&lt;/p&gt;
</content><category term="Posts"></category><category term="publications"></category></entry></feed>