a practical guide to open sourcing proprietary technology

30
1 © 2013 SAMSUNG Electronics Co. Open Source Group – Silicon Valley Guy Martin Senior Strategist – Open Source Group Samsung Research America – Silicon Valley [email protected] A Practical Guide to Open Sourcing Proprietary Source Code

Upload: samsung-open-source-group

Post on 13-May-2015

155 views

Category:

Technology


0 download

DESCRIPTION

Guy Martin from Samsung OSG presents on practical ways to open source formerly proprietary technology.

TRANSCRIPT

Page 1: A Practical Guide to Open Sourcing Proprietary Technology

1 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Guy MartinSenior Strategist – Open Source Group

Samsung Research America – Silicon Valley

[email protected]

A Practical Guide to Open Sourcing Proprietary Source Code

Page 2: A Practical Guide to Open Sourcing Proprietary Technology

2 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Content

High level process

Preparations- Business- Legal- Technical- Marketing

Project governance

Project infrastructure

Code review

Launch

Page 3: A Practical Guide to Open Sourcing Proprietary Technology

3 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

High Level Process Overview

Internal Preparations

Legal Preparations

Technical Preparations

Business Preparations

Marketing Preparations

Define project governance

Final code review

Launch and maintain

Open Source for the Right Reasons

Set up project infrastructure

Page 4: A Practical Guide to Open Sourcing Proprietary Technology

4 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Preparations: Process Walk-through

Page 5: A Practical Guide to Open Sourcing Proprietary Technology

5 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Business Preparations

Determine the overall strategy- Defend the “Why are we doing this?” question- Explain the business case/value proposition

Find a corporate champion for the

project - Ensure there is funding for resources (developers)- Ensure there is funding for open source project

infrastructure

Page 6: A Practical Guide to Open Sourcing Proprietary Technology

6 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Legal Preparations

• Legal due diligence:∙ Patent scrub to identify IP areas in the source code∙ License/copyright

- Decide on the license to release under- Provide license information to embed in source code- Provide standard copyright notice to embed in source code

∙ Decide on a contributor agreement [if starting a new project]∙ Decide on trademark use, requirements, and process∙ Run a source code scanning tool on the internal code

- Ensure clean bill of materials- Identify all source code originating from outside your company

∙ Other items as necessary

Page 7: A Practical Guide to Open Sourcing Proprietary Technology

7 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

License Selection Considerations

• Use a mainstream OSI-approved license

(http://opensource.org)

• Some factors to consider in choosing a license:- Do you want to relinquish control over how your code is

used/distributed?- Do you want to allow your code into non open-source programs?- If somebody uses your code in their program and sells it, do you

want some of that money?- Do you want to ensure all future derivatives distribute source

code?- Do you want your code to be usable in both open source and

proprietary products?- If it’s a library, should non-open source code be allowed to link to

it?

Page 8: A Practical Guide to Open Sourcing Proprietary Technology

8 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Technical Preparations

• Clean up the code−Ensure coding style is consistent−Remove internal comments, references to other internal code, etc.−Remove any code not part of open sourcing plan−Remove dependencies on non-public components

• Add license and copyright notices‒ Add license notice in source code files‒ Add license text as a file in the root directory‒ Update copyright notices in source code files

• Prepare the code for new external users‒ Provide documentation and use case examples‒ Ensure it compiles and builds on target platforms‒ Fully document all APIs

Page 9: A Practical Guide to Open Sourcing Proprietary Technology

9 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Marketing Preparations

Design project logo, color

scheme, website, collateral,

etc.

Formalize branding guidelines

(compliance program?)

Register social media accounts

for the project

Register domain names

Other items as needed

Page 10: A Practical Guide to Open Sourcing Proprietary Technology

10 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Define Project Gover-nance

Page 11: A Practical Guide to Open Sourcing Proprietary Technology

11 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Governance

• What is governance?- The structure around a project that enables decisions on:

∙ Participation guidelines and requirements∙ Architectural changes∙ Nominating maintainers∙ Final arbiter on disputes∙ Suspension of participants

- Often similar to a board of directors∙ Typically represents mix of project contributors

Image Credit: VisionMobile: CC-BY-SA

Page 12: A Practical Guide to Open Sourcing Proprietary Technology

12 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Governance Decisions

All projects should define and communicate, at minimum:- Processes for submitting code, patches, feature ideas, etc.- Process for technical conflict resolution- Release management process

A multi-company project may need more formal governance- Decide on how governance is structured, who can participate, for how

long, etc.

Example roles of a steering group- Secure funding for the project infrastructure- Steer the project to advance its market and technical success- Conflict resolution- Project level decisions- Sets the direction, tone, and vision of the project- Approve project roadmap prepared by a technical leadership group

Page 13: A Practical Guide to Open Sourcing Proprietary Technology

13 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Recommendations for Formal Governance

Governing body should represent

participating entities

Democratic system

Clear decision-making process

Clear path to resolve disputes

Flexibility to adapt to changing project needs

Clear means to add new or replace members

Page 14: A Practical Guide to Open Sourcing Proprietary Technology

14 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Maintainer

A formal position of leadership within the project

Responsibilities include- Setting the criteria for accepted / rejected code- Reviewing submitted code / accept and reject based on pre-

defined rules- Tracking dependency issues- Notifying developers of code changes that may affect their

packages- Managing source code security issues- Working closely with team developing the source code- Working closely with QA team testing the source code- Dealing with reported bugs in a timely manner- Preparing binaries – packages of the source code

Page 15: A Practical Guide to Open Sourcing Proprietary Technology

15 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Setup Project Infra-structure

Page 16: A Practical Guide to Open Sourcing Proprietary Technology

16 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Setup Project Infrastructure

• Essential components- Web site- Source code repository

system- Mailing lists- IRC- Bug and feature tracking

Nice to have- Wiki

∙ User contributed documentation∙ How-tos∙ Works-for-me platform testing

results∙ Team collaboration

- Milestone and release tracking

- Forums∙ Support requests, community

discussion, and bar talk

- Branding∙ Logo, style guide, graphics,

official colors or fonts

- Automated build and test system

Page 17: A Practical Guide to Open Sourcing Proprietary Technology

17 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Infrastructure Examples: Front Page

What the project does

Where tofind the code

Who isinvolved

Page 18: A Practical Guide to Open Sourcing Proprietary Technology

18 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Infrastructure Examples: For Developers

Page 19: A Practical Guide to Open Sourcing Proprietary Technology

19 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Infrastructure Examples: Get Involved

Page 20: A Practical Guide to Open Sourcing Proprietary Technology

20 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Infrastructure Examples: Processes

Page 21: A Practical Guide to Open Sourcing Proprietary Technology

21 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Infrastructure Examples: Processes

Page 22: A Practical Guide to Open Sourcing Proprietary Technology

22 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Infrastructure Examples: Sign-off-by

Page 23: A Practical Guide to Open Sourcing Proprietary Technology

23 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Final Code Review Before Release

Page 24: A Practical Guide to Open Sourcing Proprietary Technology

24 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Final Code Review

Ensures all requirements identified by business, legal,

technical, and marketing reviews are completely met

Examples:- License, attribution, and copyright texts are all complete and in place- Source code scanner reports clean bill of materials- Every line of code is licensed appropriately for release- Comments are sanitized of casual or unrelated language- Source code does not inadvertently reveal internal projects- Source code is sufficiently complete that it will build- Source code builds using publicly available tools- File and function names reflect the project’s name, if it has changed- MAINTAINERS file is up to date, if used

Page 25: A Practical Guide to Open Sourcing Proprietary Technology

25 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Project Launch

Page 26: A Practical Guide to Open Sourcing Proprietary Technology

26 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Is This Your First?

Train your employees and managers- Open source development methods and processes- Working with the open source community - Your company's open source policies and compliance rules- Integrating open source software within your software

development model

Follow open source practices internally- Context switching between development practices is difficult

Encourage community thinking- Welcome help in crafting a more general solution- Leave partisan feelings at the door, you will be working alongside

competitors

Page 27: A Practical Guide to Open Sourcing Proprietary Technology

27 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Prior To Launch

Build critical mass before launching- Provide preview to customers and partners so they can begin to

work with the code- Lobby for launch-day participants among your existing business

partners

Ensure that all project infrastructure is running,

secure, and scalable

Ensure internal developers join and continually

monitor IRC channel, mailing lists, etc.

Upload the code

Page 28: A Practical Guide to Open Sourcing Proprietary Technology

28 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Be a Good Open Source Citizen

Have conversations and make decisions in the open- Builds goodwill, but also reduces overhead in documenting decisions- Streamlines onboarding process for new participants- Archives ensure continuity if participants change

Listen to the community- They know what they are doing, particularly on integration and testing- Encourage generalized implementations that extend what you need,

particularly if someone else volunteers

Allocate resources as if you will be the only company doing

the work- Set goals, and make sure they have resources to get accomplished- This builds momentum until the leveraged development model takes

effect

Page 29: A Practical Guide to Open Sourcing Proprietary Technology

29 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

After The Launch

Work on building a developer community- Is it easy to find and join as an outsider?- Does the community have the documentation they need, and a means to

update it?- Is the process for accepting community code working?

Continue to follow open source development model &

practices

Remain visible

Be a good open source citizen

Remember: Leadership != Management in Com-munities

Page 30: A Practical Guide to Open Sourcing Proprietary Technology

Thank you.

30 © 2013 SAMSUNG Electronics Co.Open Source Group – Silicon Valley

Guy MartinSenior Strategist - Open Source Group

Samsung Research America – Silicon Valley

[email protected]