SlideShare una empresa de Scribd logo
1 de 30
A Practical Guide to Open
Sourcing Proprietary Source Code

Guy Martin
Senior Strategist – Open Source Group
Samsung Research America – Silicon Valley
guy.martin@samsung.com

Open Source Group – Silicon Valley

1

© 2013 SAMSUNG Electronics Co.
Content
High level process
Preparations
-

Business
Legal
Technical
Marketing

Project governance
Project infrastructure
Code review
Launch
Open Source Group – Silicon Valley

2

© 2013 SAMSUNG Electronics Co.
High Level Process Overview
Open Source for
the Right Reasons

Internal Preparations

Legal Preparations
Technical Preparations
Business Preparations

Marketing Preparations

Define project
governance
Set up project
infrastructure
Final code review
Launch and
maintain

Open Source Group – Silicon Valley

3

© 2013 SAMSUNG Electronics Co.
Preparations: Process Walkthrough

Open Source Group – Silicon Valley

4

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

5

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

6

© 2013 SAMSUNG Electronics Co.
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?

Open Source Group – Silicon Valley

7

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

8

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

9

© 2013 SAMSUNG Electronics Co.
Define Project Governance

Open Source Group – Silicon Valley

10

© 2013 SAMSUNG Electronics Co.
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
Open Source Group – Silicon Valley

11

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

12

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

13

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

14

© 2013 SAMSUNG Electronics Co.
Setup Project Infrastructure

Open Source Group – Silicon Valley

15

© 2013 SAMSUNG Electronics Co.
Setup Project Infrastructure
• Essential components

-

• Nice to have
– Wiki

Web site
Source code repository system
Mailing lists
IRC
Bug and feature tracking

• 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

Open Source Group – Silicon Valley

16

© 2013 SAMSUNG Electronics Co.
Project Infrastructure Examples: Front Page
What the
project does

Who is
involved

Where to
find the code

Open Source Group – Silicon Valley

17

© 2013 SAMSUNG Electronics Co.
Project Infrastructure Examples: For Developers

Open Source Group – Silicon Valley

18

© 2013 SAMSUNG Electronics Co.
Project Infrastructure Examples: Get Involved

Open Source Group – Silicon Valley

19

© 2013 SAMSUNG Electronics Co.
Project Infrastructure Examples: Processes

Open Source Group – Silicon Valley

20

© 2013 SAMSUNG Electronics Co.
Project Infrastructure Examples: Processes

Open Source Group – Silicon Valley

21

© 2013 SAMSUNG Electronics Co.
Project Infrastructure Examples: Sign-off-by

Open Source Group – Silicon Valley

22

© 2013 SAMSUNG Electronics Co.
Final Code Review Before Release

Open Source Group – Silicon Valley

23

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

24

© 2013 SAMSUNG Electronics Co.
Project Launch

Open Source Group – Silicon Valley

25

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

26

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

27

© 2013 SAMSUNG Electronics Co.
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

Open Source Group – Silicon Valley

28

© 2013 SAMSUNG Electronics Co.
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 Communities

Open Source Group – Silicon Valley

29

© 2013 SAMSUNG Electronics Co.
Thank you.
Guy Martin
Senior Strategist - Open Source Group
Samsung Research America – Silicon Valley
guy.martin@samsung.com

Open Source Group – Silicon Valley

30

© 2013 SAMSUNG Electronics Co.

Más contenido relacionado

Similar a A Practical Guide to Open Sourcing Proprietary Technology

Samsung & The Path to Open Source Leadership
Samsung & The Path to Open Source LeadershipSamsung & The Path to Open Source Leadership
Samsung & The Path to Open Source LeadershipSamsung Open Source Group
 
Samsung and the Path to Open Source Leadership
Samsung and the Path to Open Source LeadershipSamsung and the Path to Open Source Leadership
Samsung and the Path to Open Source LeadershipRyo Jin
 
The Art and Science of Open Source Compliance
The Art and Science of Open Source ComplianceThe Art and Science of Open Source Compliance
The Art and Science of Open Source ComplianceSamsung Open Source Group
 
Developing OSS Leadership (LinuxCon NA - 2014)
Developing OSS Leadership (LinuxCon NA - 2014)Developing OSS Leadership (LinuxCon NA - 2014)
Developing OSS Leadership (LinuxCon NA - 2014)Samsung Open Source Group
 
OpenMAMA Governance
OpenMAMA GovernanceOpenMAMA Governance
OpenMAMA GovernanceOpenMAMA
 
OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...
OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...
OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...FINOS
 
Scaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseScaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseCollabNet
 
A blueprint for enterprise agility
A blueprint for enterprise agilityA blueprint for enterprise agility
A blueprint for enterprise agilityCollabNet
 
Federating Subversion and Git
Federating Subversion and GitFederating Subversion and Git
Federating Subversion and GitCollabNet
 
Why is Open Source Important to Samsung and What Are We Doing About It?
Why is Open Source Important to Samsung and What Are We Doing About It?Why is Open Source Important to Samsung and What Are We Doing About It?
Why is Open Source Important to Samsung and What Are We Doing About It?Samsung Open Source Group
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_custdennisn129
 
The Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumThe Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumOpen Interconnect Consortium
 
June 22nd 2016 - Foundation State of the Union - London Meetup @ Red Deer
June 22nd 2016 - Foundation State of the Union - London Meetup @ Red DeerJune 22nd 2016 - Foundation State of the Union - London Meetup @ Red Deer
June 22nd 2016 - Foundation State of the Union - London Meetup @ Red DeerSymphony Software Foundation
 
Open Source Software: What Are Your Obligations?
Open Source Software: What Are Your Obligations? Open Source Software: What Are Your Obligations?
Open Source Software: What Are Your Obligations? Source Code Control Limited
 
Building A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer CommunityBuilding A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer CommunityProgrammableWeb
 
The Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumThe Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumSamsung Open Source Group
 
Software management plans in research software
Software management plans in research softwareSoftware management plans in research software
Software management plans in research softwareShoaib Sufi
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisAaron Stannard
 

Similar a A Practical Guide to Open Sourcing Proprietary Technology (20)

Samsung & The Path to Open Source Leadership
Samsung & The Path to Open Source LeadershipSamsung & The Path to Open Source Leadership
Samsung & The Path to Open Source Leadership
 
Samsung and the Path to Open Source Leadership
Samsung and the Path to Open Source LeadershipSamsung and the Path to Open Source Leadership
Samsung and the Path to Open Source Leadership
 
Samsung and the path to open source leadership
Samsung and the path to open source leadershipSamsung and the path to open source leadership
Samsung and the path to open source leadership
 
The Art and Science of Open Source Compliance
The Art and Science of Open Source ComplianceThe Art and Science of Open Source Compliance
The Art and Science of Open Source Compliance
 
Developing OSS Leadership (LinuxCon NA - 2014)
Developing OSS Leadership (LinuxCon NA - 2014)Developing OSS Leadership (LinuxCon NA - 2014)
Developing OSS Leadership (LinuxCon NA - 2014)
 
OpenMAMA Governance
OpenMAMA GovernanceOpenMAMA Governance
OpenMAMA Governance
 
OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...
OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...
OSSF 2018 - Greg Olson of Open Source Sense - Building Mission- and Business-...
 
Scaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseScaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the Enterprise
 
A blueprint for enterprise agility
A blueprint for enterprise agilityA blueprint for enterprise agility
A blueprint for enterprise agility
 
Federating Subversion and Git
Federating Subversion and GitFederating Subversion and Git
Federating Subversion and Git
 
The Pre-Open Sourcing Sanity Check
The Pre-Open Sourcing Sanity CheckThe Pre-Open Sourcing Sanity Check
The Pre-Open Sourcing Sanity Check
 
Why is Open Source Important to Samsung and What Are We Doing About It?
Why is Open Source Important to Samsung and What Are We Doing About It?Why is Open Source Important to Samsung and What Are We Doing About It?
Why is Open Source Important to Samsung and What Are We Doing About It?
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
 
The Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumThe Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect Consortium
 
June 22nd 2016 - Foundation State of the Union - London Meetup @ Red Deer
June 22nd 2016 - Foundation State of the Union - London Meetup @ Red DeerJune 22nd 2016 - Foundation State of the Union - London Meetup @ Red Deer
June 22nd 2016 - Foundation State of the Union - London Meetup @ Red Deer
 
Open Source Software: What Are Your Obligations?
Open Source Software: What Are Your Obligations? Open Source Software: What Are Your Obligations?
Open Source Software: What Are Your Obligations?
 
Building A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer CommunityBuilding A Business-Facing Mobile Developer Community
Building A Business-Facing Mobile Developer Community
 
The Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumThe Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect Consortium
 
Software management plans in research software
Software management plans in research softwareSoftware management plans in research software
Software management plans in research software
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability Crisis
 

Más de Samsung Open Source Group

The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)Samsung Open Source Group
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBSamsung Open Source Group
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesSamsung Open Source Group
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondSamsung Open Source Group
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialSamsung Open Source Group
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategySamsung Open Source Group
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilitySamsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...Samsung Open Source Group
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivitySamsung Open Source Group
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxSamsung Open Source Group
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxSamsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsSamsung Open Source Group
 

Más de Samsung Open Source Group (20)

The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
Spawny: A New Approach to Logins
Spawny: A New Approach to LoginsSpawny: A New Approach to Logins
Spawny: A New Approach to Logins
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USB
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and Beyond
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
 
GENIVI + OCF Cooperation
GENIVI + OCF CooperationGENIVI + OCF Cooperation
GENIVI + OCF Cooperation
 
Framework for IoT Interoperability
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT Interoperability
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate Strategy
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
SOSCON 2016 JerryScript
SOSCON 2016 JerryScriptSOSCON 2016 JerryScript
SOSCON 2016 JerryScript
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
 

Último

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

A Practical Guide to Open Sourcing Proprietary Technology

  • 1. A Practical Guide to Open Sourcing Proprietary Source Code Guy Martin Senior Strategist – Open Source Group Samsung Research America – Silicon Valley guy.martin@samsung.com Open Source Group – Silicon Valley 1 © 2013 SAMSUNG Electronics Co.
  • 2. Content High level process Preparations - Business Legal Technical Marketing Project governance Project infrastructure Code review Launch Open Source Group – Silicon Valley 2 © 2013 SAMSUNG Electronics Co.
  • 3. High Level Process Overview Open Source for the Right Reasons Internal Preparations Legal Preparations Technical Preparations Business Preparations Marketing Preparations Define project governance Set up project infrastructure Final code review Launch and maintain Open Source Group – Silicon Valley 3 © 2013 SAMSUNG Electronics Co.
  • 4. Preparations: Process Walkthrough Open Source Group – Silicon Valley 4 © 2013 SAMSUNG Electronics Co.
  • 5. 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 Open Source Group – Silicon Valley 5 © 2013 SAMSUNG Electronics Co.
  • 6. 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 Open Source Group – Silicon Valley 6 © 2013 SAMSUNG Electronics Co.
  • 7. 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? Open Source Group – Silicon Valley 7 © 2013 SAMSUNG Electronics Co.
  • 8. 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 Open Source Group – Silicon Valley 8 © 2013 SAMSUNG Electronics Co.
  • 9. 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 Open Source Group – Silicon Valley 9 © 2013 SAMSUNG Electronics Co.
  • 10. Define Project Governance Open Source Group – Silicon Valley 10 © 2013 SAMSUNG Electronics Co.
  • 11. 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 Open Source Group – Silicon Valley 11 © 2013 SAMSUNG Electronics Co.
  • 12. 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 Open Source Group – Silicon Valley 12 © 2013 SAMSUNG Electronics Co.
  • 13. 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 Open Source Group – Silicon Valley 13 © 2013 SAMSUNG Electronics Co.
  • 14. 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 Open Source Group – Silicon Valley 14 © 2013 SAMSUNG Electronics Co.
  • 15. Setup Project Infrastructure Open Source Group – Silicon Valley 15 © 2013 SAMSUNG Electronics Co.
  • 16. Setup Project Infrastructure • Essential components - • Nice to have – Wiki Web site Source code repository system Mailing lists IRC Bug and feature tracking • 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 Open Source Group – Silicon Valley 16 © 2013 SAMSUNG Electronics Co.
  • 17. Project Infrastructure Examples: Front Page What the project does Who is involved Where to find the code Open Source Group – Silicon Valley 17 © 2013 SAMSUNG Electronics Co.
  • 18. Project Infrastructure Examples: For Developers Open Source Group – Silicon Valley 18 © 2013 SAMSUNG Electronics Co.
  • 19. Project Infrastructure Examples: Get Involved Open Source Group – Silicon Valley 19 © 2013 SAMSUNG Electronics Co.
  • 20. Project Infrastructure Examples: Processes Open Source Group – Silicon Valley 20 © 2013 SAMSUNG Electronics Co.
  • 21. Project Infrastructure Examples: Processes Open Source Group – Silicon Valley 21 © 2013 SAMSUNG Electronics Co.
  • 22. Project Infrastructure Examples: Sign-off-by Open Source Group – Silicon Valley 22 © 2013 SAMSUNG Electronics Co.
  • 23. Final Code Review Before Release Open Source Group – Silicon Valley 23 © 2013 SAMSUNG Electronics Co.
  • 24. 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 Open Source Group – Silicon Valley 24 © 2013 SAMSUNG Electronics Co.
  • 25. Project Launch Open Source Group – Silicon Valley 25 © 2013 SAMSUNG Electronics Co.
  • 26. 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 Open Source Group – Silicon Valley 26 © 2013 SAMSUNG Electronics Co.
  • 27. 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 Open Source Group – Silicon Valley 27 © 2013 SAMSUNG Electronics Co.
  • 28. 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 Open Source Group – Silicon Valley 28 © 2013 SAMSUNG Electronics Co.
  • 29. 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 Communities Open Source Group – Silicon Valley 29 © 2013 SAMSUNG Electronics Co.
  • 30. Thank you. Guy Martin Senior Strategist - Open Source Group Samsung Research America – Silicon Valley guy.martin@samsung.com Open Source Group – Silicon Valley 30 © 2013 SAMSUNG Electronics Co.