Git Product home page Git Product logo

outbound-oss's Introduction

Outbound Open Source - Guide

What is this repo about? - TL;DR

Contributing to or starting own open source projects (also called outbound open source) can support your open source strategy. If you did only consume open source software so far, outbound open source can be the next step of your open source journey.

This guide contains comprehensive information about how to start contributions to open source projects. It mentions the most important topics that you should take care of and describes different contributions models and procedures, that can be implemented in companies of any size. Finally, you learn how spare-time contributions can be handled.

Starting open source projects is another part of the guide. It describes the typical lifecycle of such projects and explains why starting such projects can make sense for your company. Legal aspects such as IP and licensing are covered, as well as administrative and technical topics such as repository management and recommendable tools. Finally, the guide goes into project promotion, community management and touches on project analytics and open source metrics.

What is the scope of this guide?

Please note that the initial contributors from this guide come from corporate environments. Due to this limited scope, this guide cannot properly be applied for noncorporate entities. We welcome contributors from non-corporate sectors and other areas to expand the scope of the guide in a future via community contributions.

How can people contribute to this repo?

Please read our contributing guides to learn more.

How is this repo structured?

Please see the table of contents for an overview and links to the detailed sections.

Acknowledgements

Thanks to all the participants in this study who generously spent time working on this guide and shared their expertise in outbound open source:

  • Michael Picht: @misappi
  • Cornelius Schumacher: @cornelius
  • Oliver Fendt: @oliverfendt
  • Ana Jiménez: @anajsana
  • Josep Prat: @jlprat
  • Justin Abrahms: @justinabrahms

If you would like to contribute and be acknowledged, please read our contributing guides

Licence

The content of this repository licensed under CC BY-SA 4.0.

outbound-oss's People

Contributors

anajsana avatar cornelius avatar justaugustus avatar justinabrahms avatar misappi avatar oliverfendt avatar stephenkilbaneadi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

outbound-oss's Issues

Guidance for OSPOs how to convince the developers about the necessity of governance

Today the idea came up when discussing the "Why do we need this?" section might already be known to the target group of this guide. But what would be helpful would be a guide on how to convince the developers and raise their awareness.
E.g. collection about good practices what helped and what could be good "developer facing" material.

Clarify that decision responsibility may reach beyond development unit

The guide states that the responsibility for deciding whether or not to contibnutye rests with the unit which funds the development (and own the corresponding products) [1]. I generally agree with that, but I think it would be useful for the guide to expand a bit on this and add a note that other stakeholders can/should be involved as well to ensure a higher level perspective on:

  • company wide strategy: alignment across business areas to avoid that different units engage in contradicting actions. This is not exclusively an open source issue per se, but can be part of usual business and product strategy work - however - in the open contradicting action become more more apparent and potentially harmful.

  • If patents and licensing is important (this differs very much across industries), then the IPR folks are stakeholders as well.

Later parts of the guide touch upon this, but it might be helpful to briefly reference this issue here as well.

This issue is based on a review of this PR todogroup/todogroup.org#336

[1] https://github.com/todogroup/outbound-oss/blob/main/content/02-contributions-to-existing-projects.md#responsibility-decision-rests-with-unit

Restructure repo

I suggest to restructure the repo a little bit. To have a clearer structure, there should be a new folder "src" or "content" that contains the content files. The new structure would be like so:

...
img/
  |- ...
tools/
  |- ...
src
  |- toc.md
  |- Introduction.md
  |- Contributions-to-existing-projects.md
  |- starting-oss-projects.md
  |- references.md
LICENSE
README.md
CONTRIBUTING.md
...

With that it's easier (also for new contributors) to figure out where the relevant content files are located.
What do you think about that?

Spare time contributions

We need to describe whether there is something to do if an employee wants to contribute to an OSS project during his spare time.

CLA handling in an organization

We need to describe a good practice how to handle CLAs which are required by OSS projects an employee wants to contribute to.

Section Abbreviations

Shall we add a section with the used Abbreviations, the references chapter might be a good place

Add changes from todogroup.org

Requested changes from the todogroup.org repo must be added to this repo.

Also the abbreviations (#61 ) and the personal pronouns (#62) should be done in this repo first.

Community management

How to manage the community for a new open source project. Reference existing material.

describe a procedure to decide on whether or not to launch an own open source project

Sometimes employees want to launch an open source project but are not yet sure whether this is a good idea and whether, depending on the overall objective which shall be achieved, a community can be created.

We should descibe a procedure which will lead to a more informed decision whether or not an open source project shall be launched

Issue to track progress on TODO Guide PDF design | LF request

I've opened a request for the LF Marketing/Design team to start working on the pdf design and landing page on LF website. A draft should be ready by Aug 12 and the final version by Sep 5 👍

This issue is to keep contributors to this guide in the loop of important updates from the design team 🙂

Align on abbreviations

Which abbreviation do we use?

For example, I saw that that sometimes the abbreviation "OSS" is used. To we want to use it or rather use "open source" / "open source software"?

Align on personal pronouns

For example, do we use "he" or "he/she" when talking about a developer? Are there any rules from the Linux Foundation or TODO Group?

Maturity models

There are a couple of maturity models around which nicely describe the different stages of engagement in outbound open source software. I plan to write a section about it and suggest to put it into the introduction as outlined in the content structure proposal.

Explain the reasoning behind the major release model

The guide describes the Major to major release release model contribution model. It would be great if the text could more explicitly explain the motivation for using releases as decision points for approvals. These decision points are typically not closely related to the actual properties checked, such as IP policy, CLA/DCO contents, i.e., those things do not typically change across releases.

So, is this idea behind tying re-approval to releases primarily to have some form of regular check build into the process, but not so much to ensure that changes of licenses etc. get caught in time?

This issue is based on a review of PR todogroup/todogroup.org#336

Tooling

Describe tooling which is necessary and helpful to manage open source project. High-level.

Move repos/orgs to a different owner

Different scenarios:

  • Company -> employee
  • Employee -> company
  • Company -> foundation (Q: is an IP transfer really needed in all cases?)
  • GH org -> other GH org (incl. whether and how to consolidate GH orgs)
  • ...

And when they can make sense.

This could include an IP transfer.

Not required for 1.0 of our guide. This can be added later.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.