SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Developing Open Source 
Leadership 
Open Source Group –– Samsung Research America (Silicon Valley) 1 
Guy Martin 
Senior Strategist 
Samsung Open Source Group 
guym@osg.samsung.com 
@guyma, @SamsungOSG
Content 
• Open Source Development Model 
• Best Practices 
• Communication & Community 
Skills 
Open Source Group – Samsung Research America (Silicon Valley) 2
Open Source Leadership: 
Why and How? 
Open Source Group –– Samsung Research America (Silicon Valley) 3
Product Dependency on Open 
Source Technologies 
Open Source Group – Samsung Research America (Silicon Valley) 4
New Open Source Skillsets 
Open Source Group – Samsung Research America (Silicon Valley) 5
Open Source Strategy 
Decide on the desired position based on 
company’s OSS strategy 
Consumer 
Participant 
Open Source Group – Samsung Research America (Silicon Valley) 6 
Contributor 
Leader 
Start here!
Leader Scenario 
• Leadership roles in open source communities are earned by 
establishing trust with the project members, and by 
maintaining a high level of continuous contribution to the 
project 
• Requires significant investment in targeted open source 
communities and consortia to establish leadership agenda 
• Requires incremental investment primarily in engineering, 
product management and legal organizations 
• Empower employees to seek contributor and maintainer 
status 
Open Source Group – Samsung Research America (Silicon Valley) 7
Open Source Development Model 
Open Source Group –– Samsung Research America (Silicon Valley) 8
Open Source Model 
Characteristics 
1. Distributed 
development 
2. Development 
community 
3. Community 
organization 
4. Scalable 
development 
5. Decision process 
6. “Release early, 
release often” 
Open Source Group – Samsung Research America (Silicon Valley) 9 
7. Submitting code 
8. Taking 
responsibility 
9. Giving credit to 
others 
10.Peer review 
11.Continuous testing 
12.Gaining influence 
13.Modular designs
Development Community 
• Accessible to newcomers 
– Open development generally strives for 
inclusiveness 
• Focused on visibility 
– Strong emphasis on open decision making 
processes and communication 
• Self-organizing 
– Most projects take guidance from internal 
sources (i.e., the people doing the work) 
Open Source Group – Samsung Research America (Silicon Valley) 10
Decision Process 
• Decisions are decentralized 
by appointing trusted 
delegates 
– In Linux, called “subsystem 
maintainers” 
– Trust built by past record 
of good participation and 
wise decisions on smaller 
issues 
• Not all decisions need pass 
through delegates 
– Trivial fixes may go directly 
to any maintainer 
Open Source Group – Samsung Research America (Silicon Valley) 11 
• Decentralized nature 
requires extra focus on 
transparency 
– Discussions must 
happen in the open: 
Mailing lists, IRC 
• Often the discussion itself 
is the documented record 
of the outcome
Influence Within Open 
Source Communities 
• Influence in a project is based on reputation in that 
project/community 
– Reputation is gained through code contributions and participation 
– Reputation in one community doesn't necessarily carry to others 
– Reputation in own company doesn't carry to open source 
community 
– Must prove oneself on each project to gain influence 
• The writer of the best code has the most influence 
– It doesn’t matter who you are, who you work for, how it was 
done before, or how smart you are 
• Behavior is important 
– Willingness to take and provide feedback (politely) 
– Ability to explain motivations behind decisions 
Open Source Group – Samsung Research America (Silicon Valley) 12
Working with Upstream 
Open Source Group –– Samsung Research America (Silicon Valley) 13
What is Upstream? 
upstream (noun) 
– The originating open source software project 
upon which a derivative is built 
– This term comes from the idea that water and 
the goods it carries float downstream and 
benefit those who are there to receive it. 
to upstream (verb) 
– A short-hand way of saying "push changes to 
the upstream project“, i.e. contribute the 
changes you made to the source code program 
back to the original project dedicated for that 
program. 
Open Source Group – Samsung Research America (Silicon Valley) 14
When is it Time to Start 
Contributing Upstream? 
• When the costs of keeping your code in sync with the 
mainline project exceed the convenience of working alone 
• When you want your code to be used by others (including 
customers) 
• When you want to drive your implementation to become a 
defacto standard, or drive adoption of the mainline project 
• If you anticipate relying on a certain codebase repeatedly in 
upcoming products that complements the mainline project 
Open Source Group – Samsung Research America (Silicon Valley) 15
Motivations for Contributing 
Upstream 
• Private code is never considered in public 
development 
– Integrating changes upstream means others are aware of 
them, and can plan for and around them 
– Reduces the risk of accidental breakage 
• Integrating changes into the mainline project reduces the 
amount of effort to build a finished product 
• Contributed code is reviewed and may attract external 
developers 
• Contributions strengthen and influence direction of 
project 
Open Source Group – Samsung Research America (Silicon Valley) 16
What Should Go Upstream? 
• The decision of what source code to push to upstream is guided 
by your open source strategy 
• Generally, you should drive to upstream: 
– Technology enablers contributions – (non-strategic) code that will make 
your differentiating offering run better/faster/etc. 
– Source code that is useful to all platform users – that they don’t want to 
maintain themselves 
– Source code that will help them influence the direction of the project 
• A good guide is to determine what parts of your product are 
sources of strategic advantage, and what supports those parts 
– The supporting parts are generally good candidates for upstream 
Open Source Group – Samsung Research America (Silicon Valley) 17
Best Practices: Requirements 
Open Source Group –– Samsung Research America (Silicon Valley) 18
Propose New Features & 
Signal Intent 
• Public discussion is a prerequisite 
– Ensures maintainers are aware of the need and the 
problems you are working to solve 
– Recruit others to help do the work 
– Gather feedback on the usefulness and design 
considerations before doing a lot of work (and 
being rejected) 
– Some projects have active mailing lists, multiple 
tries may be needed 
• Over-communicate 
– Assume you have one chance to convince others 
Open Source Group – Samsung Research America (Silicon Valley) 19
Getting Buy-in for a Feature 
Request 
• Contributed features should be: 
– Useful to others and not just to your specific usage models 
• Features that benefit only a few users will tend to be rejected if there 
is no benefit to the majority 
– Implemented in small parts, and delivered in a way that 
provides immediate benefit 
– Strong on security 
• Open Source developers tend to be more security conscientious than 
closed source developers 
– Backed by resources ready to implement and maintain 
• Don’t ‘dump code and run’ 
Open Source Group – Samsung Research America (Silicon Valley) 20
Best Practices: Design 
Open Source Group –– Samsung Research America (Silicon Valley) 21
Design In the Open 
• Communicate early and often on mailing lists 
• Provide examples and possibly reference implementations 
• Anticipate feedback 
– Acknowledge good feedback and re-work your contribution 
• Respond promptly to questions, particularly from potential 
contributors 
– Signal willingness to adapt your design if someone else will 
do the work 
• Plan for modularity, even if the first designs are not 
Open Source Group – Samsung Research America (Silicon Valley) 22
Recruit Others 
• Scratch your own itch, nobody else will scratch it for you… 
unless they have the same itch 
• If you are wanting to decrease your development burden, 
write code that will attract others for the same reason 
– Make sure your contribution is scoped broadly enough to 
attract other contributors 
– Be responsive and proactive if someone indicates interest in 
your email to the mailing list 
• Don’t be surprised if it’s a competitor 
– Often the companies with the most to gain from a feature in 
an open source project are in the same line of business 
– There is a rich history of collaboration between 
competitors 
Open Source Group – Samsung Research America (Silicon Valley) 23
Design for Acceptance 
• Design your contribution to be written and integrated in the 
smallest parts possible 
– Smaller patches are easier for maintainers to integrate 
– Many open source projects favor a modular approach, because it 
promotes extensibility 
• Scope the design, and subdivide your plans if necessary 
– Larger changes are more likely to be adopted if a series of smaller 
changes with concrete milestones 
– Communicate the overall plan to provide context, but don’t expect 
universal buy-in 
• Be as non-intrusive as possible to other subsystems 
– If you believe you need to change a core system component, 
communicate far in advance and solicit input from their 
maintainers before getting started 
Open Source Group – Samsung Research America (Silicon Valley) 24
Best Practices: Implementation 
Open Source Group –– Samsung Research America (Silicon Valley) 25
Be Agile 
• The line between design and implementation 
is very blurry in open source development 
– Multiple iterations are expected and encouraged 
• Don’t expect perfection the first time 
– Code stabilization is part of the community 
process 
– Allow the developer community to help guide 
and shape the code 
Open Source Group – Samsung Research America (Silicon Valley) 26
Implement Functionality in 
Smallest Reasonable Chunks 
• Will result in more constructive feedback 
– Easier to understand small patches 
• Simplified testing 
– A small change is less like to have unintended 
consequences 
– Very important because of lack of traditional test 
phase 
• You will be expected to submit in small 
parts 
Open Source Group – Samsung Research America (Silicon Valley) 27
Reuse Existing, Accepted 
Code Wherever Possible 
• It makes your contribution smaller 
• It reduces the code you must personally debug and 
maintain 
• It increases your chance of acceptance 
– Maintainer already familiar with accepted code 
– Most maintainers are very averse to duplicating existing 
functionality 
• If existing code has most of the functionality you need, 
submit a patch to extend it 
– Always try this before building your own 
– If this is for a key dependency, get your patch accepted before 
beginning work in earnest on the main feature 
Open Source Group – Samsung Research America (Silicon Valley) 28
Creating a Patch 
• The patch should be created against the most 
recent version of the mainline source code 
• The patch should be offset from the root of the 
tree 
• The patch must apply cleanly 
• A freshly-patched version of the code should 
build without errors 
• A patch should do one thing, and do it well 
http://lwn.net/Articles/139918/ 
Open Source Group – Samsung Research America (Silicon Valley) 29
Be Patient and Persistent 
• Send patches and responses in public, 
never in private 
• Accept criticism, and rework the code 
• Make incremental changes that are well 
communicated 
• Resubmit the patch 
• Be persistent and polite 
Open Source Group – Samsung Research America (Silicon Valley) 30
What if My Patch is 
Rejected? 
• Code may be rejected for any reason 
– Poor quality, inconsistent formatting 
– Too much function in one submission 
– Inconsistent with broader subsystem strategy 
• This doesn’t make you a bad coder 
– Revise and try again 
• When replying, filter unnecessary feedback 
and focus just on the technical aspects 
Open Source Group – Samsung Research America (Silicon Valley) 31
Best Practices: Maintenance 
Open Source Group –– Samsung Research America (Silicon Valley) 32
Maintaining Your Code 
• Don’t “dump and run” 
– Abandoned code will be worked around and 
eventually removed 
• Disclose problems quickly, and provide 
workarounds and fixes 
– Pretending nothing is wrong will only buy you 
trouble 
• If you can’t maintain it, pass responsibility along to 
a successor, or arrange to have it removed 
– If your code is important, someone else will step up 
Open Source Group – Samsung Research America (Silicon Valley) 33
Accepting Patches to Your 
Code 
• If your code is useful, others may want to 
enhance it 
– Be open to the community process 
– Be available to the maintainer if asked for your 
input on a patch 
– Consider the technical comments people 
make on the code, and justify any 
disagreements that you have with them 
Open Source Group – Samsung Research America (Silicon Valley) 34
Open Source 
Community/Communication Skills 
Open Source Group –– Samsung Research America (Silicon Valley) 35
What are Communities? 
Open Source Group – Samsung Research America (Silicon Valley) 36
Rule #1 
No two communities are exactly the same! 
Open Source Group – Samsung Research America (Silicon Valley) 37
Rule #2 
Communities don’t work for individual 
companies 
Open Source Group – Samsung Research America (Silicon Valley) 38
Preparing to Engage with Community 
Open Source Group –– Samsung Research America (Silicon Valley) 39
Determine your Strengths 
There are many skills required in open source 
projects, and many roles to fill: 
• Software Developers 
• Testers/Quality Assurance 
• Documentation Writers 
• User Experience/GUI Designers 
• Evangelists/Communications Experts 
You can have more than one role if you have the 
time and necessary skills. 
Open Source Group – Samsung Research America (Silicon Valley) 40
Determine your Time 
Commitment 
• Commit to what you can realistically deliver 
• Communities respect completed work more than 
hollow offers of help 
• Your commitment reflects not only on you, but on 
your company 
Open Source Group – Samsung Research America (Silicon Valley) 41
Get to Know the Community 
Open Source Group –– Samsung Research America (Silicon Valley) 42
Understand How the 
Community Communicates 
• Learn which methods are accepted & preferred: 
– Email lists 
– IRC 
– Web forums 
– Bug trackers 
• Observe and learn how questions are 
asked/answered 
– http://catb.org/~esr/faqs/smart-questions.html 
Open Source Group – Samsung Research America (Silicon Valley) 43
Understand How the 
Community Communicates 
• Before asking a question of the community 
– Search any message archives/logs for the answer 
– Read any user documentation 
– Search the web for the answer 
– Read any Frequently Asked Questions (FAQ) documents 
– Read the source code! 
– Experiment and document your experiments 
• Find the correct forum 
– Don’t post technical questions to a user list, for example 
– Show how you’ve tried to find the answer on your own 
Open Source Group – Samsung Research America (Silicon Valley) 44
Understand How the 
Community is Governed 
• Some communities (such as Linux Kernel) are 
hierarchies with clear chains of command 
• Some communities (such as the Debian project) are 
flat democracies 
• Understanding community governance helps you 
address your questions to the right audience 
Open Source Group – Samsung Research America (Silicon Valley) 45
Get to Know the People 
• Relationships (even virtual ones) matter in 
communities 
• Understanding how people work helps get your 
ideas accepted in the community 
• Participate in conferences/meetups as much as 
possible to help build ‘human networks’ 
Open Source Group – Samsung Research America (Silicon Valley) 46
Engage with the Community 
Open Source Group –– Samsung Research America (Silicon Valley) 47
Communicate What You’re 
Working On 
• Don’t work on something for the community ‘in 
private’ 
– Someone else will probably have duplicated your effort 
– Other changes in the project may obsolete/conflict with your 
work 
• Project maintainers can help plan for future releases if 
they know what’s coming 
• Community participants don’t like last minute feature 
‘surprises’ 
Open Source Group – Samsung Research America (Silicon Valley) 48
Give Back to the Community 
• Code contributions 
• Answer questions from other members 
• Facilitate hardware gifts if possible 
• Help arrange conferences/meetups 
• Offer to speak at conferences/events 
• Your contributions reflect on you and your company! 
Open Source Group – Samsung Research America (Silicon Valley) 49
Plan an Exit Strategy 
• Train your potential successor 
• Introduce your successor to the community 
• Insure that your code contributions will be 
maintained by someone from your company 
• Inform the community as soon as possible so that 
they have time to plan for the transition 
Open Source Group – Samsung Research America (Silicon Valley) 50
Top 5 Things to Remember 
Open Source Group –– Samsung Research America (Silicon Valley) 51
#5 – Understand 
Community Governance 
• Each community is different 
• Contributions need to ‘fit’ with other code/patches 
Open Source Group – Samsung Research America (Silicon Valley) 52
#4 – Understand 
Community Motivators 
• Successful communities are powered by motivated people 
• Motivation can be: status, money, peer recognition 
Open Source Group – Samsung Research America (Silicon Valley) 53
#3 – Be Careful of ‘Custom’ 
Licenses 
• Communities do not work well with ‘custom licenses’ 
• Gaining contributors/momentum requires low barriers to entry 
http://opensource.org/licenses/index.html 
Open Source Group – Samsung Research America (Silicon Valley) 54
#2 – Communities Need 
Nurturing 
• Posting code to public sites is not collaboration 
• Community participation is a cycle – expect change 
Open Source Group – Samsung Research America (Silicon Valley) 55
#1 - Be Humble, But 
Bold 
• Community leadership is earned, not granted 
– Accept community feedback and rework code 
• Bring technical expertise to the table 
– Contributions need to be ongoing to maintain leadership status 
Leadership != Control 
Humble Bold 
Open Source Group – Samsung Research America (Silicon Valley) 56
Thank you. 
Open Source Group –– Samsung Research America (Silicon Valley) 57

Weitere ähnliche Inhalte

Andere mochten auch

The Push for Innovation at Samsung Display
The Push for Innovation at Samsung DisplayThe Push for Innovation at Samsung Display
The Push for Innovation at Samsung Displayssimarketing
 
Microsoft Surface 2.0 Samsung (Sur40)
Microsoft Surface 2.0 Samsung (Sur40)Microsoft Surface 2.0 Samsung (Sur40)
Microsoft Surface 2.0 Samsung (Sur40)Uranretxed Inc.
 
Accelerating Adoption: Simpler Pathways to Digital Signage Deployment
Accelerating Adoption: Simpler Pathways to Digital Signage DeploymentAccelerating Adoption: Simpler Pathways to Digital Signage Deployment
Accelerating Adoption: Simpler Pathways to Digital Signage DeploymentSamsung Business USA
 
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 Electronics US location
Samsung Electronics US locationSamsung Electronics US location
Samsung Electronics US locationHyunhee (Ryan) Cho
 
Enterprise innovation in an ever-expanding mobile world
Enterprise innovation in an ever-expanding mobile worldEnterprise innovation in an ever-expanding mobile world
Enterprise innovation in an ever-expanding mobile worldSamsung Business USA
 
Strategic Analysis of Samsung USA
Strategic Analysis of Samsung USAStrategic Analysis of Samsung USA
Strategic Analysis of Samsung USABrandon Lee Heard
 
Samsung Presentation2
Samsung Presentation2Samsung Presentation2
Samsung Presentation2Ketan Wadhwa
 

Andere mochten auch (9)

The Push for Innovation at Samsung Display
The Push for Innovation at Samsung DisplayThe Push for Innovation at Samsung Display
The Push for Innovation at Samsung Display
 
Microsoft Surface 2.0 Samsung (Sur40)
Microsoft Surface 2.0 Samsung (Sur40)Microsoft Surface 2.0 Samsung (Sur40)
Microsoft Surface 2.0 Samsung (Sur40)
 
Presenting Samsung SDS DPM
Presenting Samsung SDS DPMPresenting Samsung SDS DPM
Presenting Samsung SDS DPM
 
Accelerating Adoption: Simpler Pathways to Digital Signage Deployment
Accelerating Adoption: Simpler Pathways to Digital Signage DeploymentAccelerating Adoption: Simpler Pathways to Digital Signage Deployment
Accelerating Adoption: Simpler Pathways to Digital Signage Deployment
 
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 Electronics US location
Samsung Electronics US locationSamsung Electronics US location
Samsung Electronics US location
 
Enterprise innovation in an ever-expanding mobile world
Enterprise innovation in an ever-expanding mobile worldEnterprise innovation in an ever-expanding mobile world
Enterprise innovation in an ever-expanding mobile world
 
Strategic Analysis of Samsung USA
Strategic Analysis of Samsung USAStrategic Analysis of Samsung USA
Strategic Analysis of Samsung USA
 
Samsung Presentation2
Samsung Presentation2Samsung Presentation2
Samsung Presentation2
 

Ähnlich wie Developing OSS Leadership (LinuxCon NA - 2014)

Inner-Source: The Lesson of Linux for Enterprises
Inner-Source: The Lesson of Linux for EnterprisesInner-Source: The Lesson of Linux for Enterprises
Inner-Source: The Lesson of Linux for EnterprisesSamsung Open Source Group
 
From Idea to Corporate-Sponsored Open Source Project
From Idea to Corporate-Sponsored Open Source ProjectFrom Idea to Corporate-Sponsored Open Source Project
From Idea to Corporate-Sponsored Open Source ProjectSamsung Open Source Group
 
A Practical Guide to Open Sourcing Proprietary Technology
A Practical Guide to Open Sourcing Proprietary TechnologyA Practical Guide to Open Sourcing Proprietary Technology
A Practical Guide to Open Sourcing Proprietary TechnologySamsung Open Source Group
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Marvin Heery
 
A Streamlined Process to Open Source Proprietary Technology
A Streamlined Process to Open Source Proprietary TechnologyA Streamlined Process to Open Source Proprietary Technology
A Streamlined Process to Open Source Proprietary TechnologySamsung Open Source Group
 
Open source communities - EiTESAL Digital Transformation "Role of Open Source...
Open source communities - EiTESAL Digital Transformation "Role of Open Source...Open source communities - EiTESAL Digital Transformation "Role of Open Source...
Open source communities - EiTESAL Digital Transformation "Role of Open Source...EITESANGO
 
Webinar: Role of Open Source in the Digital Journey
Webinar: Role of Open Source in the Digital JourneyWebinar: Role of Open Source in the Digital Journey
Webinar: Role of Open Source in the Digital JourneyWSO2
 
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
 
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
 
Open agile is free and open source community agile-
Open agile  is free and open source community agile-Open agile  is free and open source community agile-
Open agile is free and open source community agile-Agile Tour Beirut
 
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docxblondellchancy
 
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docxsodhi3
 
Chapter 21 project management concepts
Chapter 21 project management conceptsChapter 21 project management concepts
Chapter 21 project management conceptsSHREEHARI WADAWADAGI
 
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...WSO2
 
Anatomy of An Open Source Project: Key Factors to Success
Anatomy of An Open Source Project: Key Factors to SuccessAnatomy of An Open Source Project: Key Factors to Success
Anatomy of An Open Source Project: Key Factors to SuccessSamsung 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
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxGodwin Monserate
 

Ähnlich wie Developing OSS Leadership (LinuxCon NA - 2014) (20)

Developing Open Source Leadership
Developing Open Source LeadershipDeveloping Open Source Leadership
Developing Open Source Leadership
 
Inner-Source: The Lesson of Linux for Enterprises
Inner-Source: The Lesson of Linux for EnterprisesInner-Source: The Lesson of Linux for Enterprises
Inner-Source: The Lesson of Linux for Enterprises
 
From Idea to Corporate-Sponsored Open Source Project
From Idea to Corporate-Sponsored Open Source ProjectFrom Idea to Corporate-Sponsored Open Source Project
From Idea to Corporate-Sponsored Open Source Project
 
A Practical Guide to Open Sourcing Proprietary Technology
A Practical Guide to Open Sourcing Proprietary TechnologyA Practical Guide to Open Sourcing Proprietary Technology
A Practical Guide to Open Sourcing Proprietary Technology
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
 
A Streamlined Process to Open Source Proprietary Technology
A Streamlined Process to Open Source Proprietary TechnologyA Streamlined Process to Open Source Proprietary Technology
A Streamlined Process to Open Source Proprietary Technology
 
Open source communities - EiTESAL Digital Transformation "Role of Open Source...
Open source communities - EiTESAL Digital Transformation "Role of Open Source...Open source communities - EiTESAL Digital Transformation "Role of Open Source...
Open source communities - EiTESAL Digital Transformation "Role of Open Source...
 
Webinar: Role of Open Source in the Digital Journey
Webinar: Role of Open Source in the Digital JourneyWebinar: Role of Open Source in the Digital Journey
Webinar: Role of Open Source in the Digital Journey
 
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
 
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?
 
Open agile is free and open source community agile-
Open agile  is free and open source community agile-Open agile  is free and open source community agile-
Open agile is free and open source community agile-
 
The Pre-Open Sourcing Sanity Check
The Pre-Open Sourcing Sanity CheckThe Pre-Open Sourcing Sanity Check
The Pre-Open Sourcing Sanity Check
 
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
 
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
918191ISMM1-UC 752SYSTEMS ANALYSISFall 2019 –.docx
 
Chapter 21 project management concepts
Chapter 21 project management conceptsChapter 21 project management concepts
Chapter 21 project management concepts
 
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
 
Anatomy of An Open Source Project: Key Factors to Success
Anatomy of An Open Source Project: Key Factors to SuccessAnatomy of An Open Source Project: Key Factors to Success
Anatomy of An Open Source Project: Key Factors to Success
 
Software management plans in research software
Software management plans in research softwareSoftware management plans in research software
Software management plans in research software
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Kürzlich hochgeladen (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Developing OSS Leadership (LinuxCon NA - 2014)

  • 1. Developing Open Source Leadership Open Source Group –– Samsung Research America (Silicon Valley) 1 Guy Martin Senior Strategist Samsung Open Source Group guym@osg.samsung.com @guyma, @SamsungOSG
  • 2. Content • Open Source Development Model • Best Practices • Communication & Community Skills Open Source Group – Samsung Research America (Silicon Valley) 2
  • 3. Open Source Leadership: Why and How? Open Source Group –– Samsung Research America (Silicon Valley) 3
  • 4. Product Dependency on Open Source Technologies Open Source Group – Samsung Research America (Silicon Valley) 4
  • 5. New Open Source Skillsets Open Source Group – Samsung Research America (Silicon Valley) 5
  • 6. Open Source Strategy Decide on the desired position based on company’s OSS strategy Consumer Participant Open Source Group – Samsung Research America (Silicon Valley) 6 Contributor Leader Start here!
  • 7. Leader Scenario • Leadership roles in open source communities are earned by establishing trust with the project members, and by maintaining a high level of continuous contribution to the project • Requires significant investment in targeted open source communities and consortia to establish leadership agenda • Requires incremental investment primarily in engineering, product management and legal organizations • Empower employees to seek contributor and maintainer status Open Source Group – Samsung Research America (Silicon Valley) 7
  • 8. Open Source Development Model Open Source Group –– Samsung Research America (Silicon Valley) 8
  • 9. Open Source Model Characteristics 1. Distributed development 2. Development community 3. Community organization 4. Scalable development 5. Decision process 6. “Release early, release often” Open Source Group – Samsung Research America (Silicon Valley) 9 7. Submitting code 8. Taking responsibility 9. Giving credit to others 10.Peer review 11.Continuous testing 12.Gaining influence 13.Modular designs
  • 10. Development Community • Accessible to newcomers – Open development generally strives for inclusiveness • Focused on visibility – Strong emphasis on open decision making processes and communication • Self-organizing – Most projects take guidance from internal sources (i.e., the people doing the work) Open Source Group – Samsung Research America (Silicon Valley) 10
  • 11. Decision Process • Decisions are decentralized by appointing trusted delegates – In Linux, called “subsystem maintainers” – Trust built by past record of good participation and wise decisions on smaller issues • Not all decisions need pass through delegates – Trivial fixes may go directly to any maintainer Open Source Group – Samsung Research America (Silicon Valley) 11 • Decentralized nature requires extra focus on transparency – Discussions must happen in the open: Mailing lists, IRC • Often the discussion itself is the documented record of the outcome
  • 12. Influence Within Open Source Communities • Influence in a project is based on reputation in that project/community – Reputation is gained through code contributions and participation – Reputation in one community doesn't necessarily carry to others – Reputation in own company doesn't carry to open source community – Must prove oneself on each project to gain influence • The writer of the best code has the most influence – It doesn’t matter who you are, who you work for, how it was done before, or how smart you are • Behavior is important – Willingness to take and provide feedback (politely) – Ability to explain motivations behind decisions Open Source Group – Samsung Research America (Silicon Valley) 12
  • 13. Working with Upstream Open Source Group –– Samsung Research America (Silicon Valley) 13
  • 14. What is Upstream? upstream (noun) – The originating open source software project upon which a derivative is built – This term comes from the idea that water and the goods it carries float downstream and benefit those who are there to receive it. to upstream (verb) – A short-hand way of saying "push changes to the upstream project“, i.e. contribute the changes you made to the source code program back to the original project dedicated for that program. Open Source Group – Samsung Research America (Silicon Valley) 14
  • 15. When is it Time to Start Contributing Upstream? • When the costs of keeping your code in sync with the mainline project exceed the convenience of working alone • When you want your code to be used by others (including customers) • When you want to drive your implementation to become a defacto standard, or drive adoption of the mainline project • If you anticipate relying on a certain codebase repeatedly in upcoming products that complements the mainline project Open Source Group – Samsung Research America (Silicon Valley) 15
  • 16. Motivations for Contributing Upstream • Private code is never considered in public development – Integrating changes upstream means others are aware of them, and can plan for and around them – Reduces the risk of accidental breakage • Integrating changes into the mainline project reduces the amount of effort to build a finished product • Contributed code is reviewed and may attract external developers • Contributions strengthen and influence direction of project Open Source Group – Samsung Research America (Silicon Valley) 16
  • 17. What Should Go Upstream? • The decision of what source code to push to upstream is guided by your open source strategy • Generally, you should drive to upstream: – Technology enablers contributions – (non-strategic) code that will make your differentiating offering run better/faster/etc. – Source code that is useful to all platform users – that they don’t want to maintain themselves – Source code that will help them influence the direction of the project • A good guide is to determine what parts of your product are sources of strategic advantage, and what supports those parts – The supporting parts are generally good candidates for upstream Open Source Group – Samsung Research America (Silicon Valley) 17
  • 18. Best Practices: Requirements Open Source Group –– Samsung Research America (Silicon Valley) 18
  • 19. Propose New Features & Signal Intent • Public discussion is a prerequisite – Ensures maintainers are aware of the need and the problems you are working to solve – Recruit others to help do the work – Gather feedback on the usefulness and design considerations before doing a lot of work (and being rejected) – Some projects have active mailing lists, multiple tries may be needed • Over-communicate – Assume you have one chance to convince others Open Source Group – Samsung Research America (Silicon Valley) 19
  • 20. Getting Buy-in for a Feature Request • Contributed features should be: – Useful to others and not just to your specific usage models • Features that benefit only a few users will tend to be rejected if there is no benefit to the majority – Implemented in small parts, and delivered in a way that provides immediate benefit – Strong on security • Open Source developers tend to be more security conscientious than closed source developers – Backed by resources ready to implement and maintain • Don’t ‘dump code and run’ Open Source Group – Samsung Research America (Silicon Valley) 20
  • 21. Best Practices: Design Open Source Group –– Samsung Research America (Silicon Valley) 21
  • 22. Design In the Open • Communicate early and often on mailing lists • Provide examples and possibly reference implementations • Anticipate feedback – Acknowledge good feedback and re-work your contribution • Respond promptly to questions, particularly from potential contributors – Signal willingness to adapt your design if someone else will do the work • Plan for modularity, even if the first designs are not Open Source Group – Samsung Research America (Silicon Valley) 22
  • 23. Recruit Others • Scratch your own itch, nobody else will scratch it for you… unless they have the same itch • If you are wanting to decrease your development burden, write code that will attract others for the same reason – Make sure your contribution is scoped broadly enough to attract other contributors – Be responsive and proactive if someone indicates interest in your email to the mailing list • Don’t be surprised if it’s a competitor – Often the companies with the most to gain from a feature in an open source project are in the same line of business – There is a rich history of collaboration between competitors Open Source Group – Samsung Research America (Silicon Valley) 23
  • 24. Design for Acceptance • Design your contribution to be written and integrated in the smallest parts possible – Smaller patches are easier for maintainers to integrate – Many open source projects favor a modular approach, because it promotes extensibility • Scope the design, and subdivide your plans if necessary – Larger changes are more likely to be adopted if a series of smaller changes with concrete milestones – Communicate the overall plan to provide context, but don’t expect universal buy-in • Be as non-intrusive as possible to other subsystems – If you believe you need to change a core system component, communicate far in advance and solicit input from their maintainers before getting started Open Source Group – Samsung Research America (Silicon Valley) 24
  • 25. Best Practices: Implementation Open Source Group –– Samsung Research America (Silicon Valley) 25
  • 26. Be Agile • The line between design and implementation is very blurry in open source development – Multiple iterations are expected and encouraged • Don’t expect perfection the first time – Code stabilization is part of the community process – Allow the developer community to help guide and shape the code Open Source Group – Samsung Research America (Silicon Valley) 26
  • 27. Implement Functionality in Smallest Reasonable Chunks • Will result in more constructive feedback – Easier to understand small patches • Simplified testing – A small change is less like to have unintended consequences – Very important because of lack of traditional test phase • You will be expected to submit in small parts Open Source Group – Samsung Research America (Silicon Valley) 27
  • 28. Reuse Existing, Accepted Code Wherever Possible • It makes your contribution smaller • It reduces the code you must personally debug and maintain • It increases your chance of acceptance – Maintainer already familiar with accepted code – Most maintainers are very averse to duplicating existing functionality • If existing code has most of the functionality you need, submit a patch to extend it – Always try this before building your own – If this is for a key dependency, get your patch accepted before beginning work in earnest on the main feature Open Source Group – Samsung Research America (Silicon Valley) 28
  • 29. Creating a Patch • The patch should be created against the most recent version of the mainline source code • The patch should be offset from the root of the tree • The patch must apply cleanly • A freshly-patched version of the code should build without errors • A patch should do one thing, and do it well http://lwn.net/Articles/139918/ Open Source Group – Samsung Research America (Silicon Valley) 29
  • 30. Be Patient and Persistent • Send patches and responses in public, never in private • Accept criticism, and rework the code • Make incremental changes that are well communicated • Resubmit the patch • Be persistent and polite Open Source Group – Samsung Research America (Silicon Valley) 30
  • 31. What if My Patch is Rejected? • Code may be rejected for any reason – Poor quality, inconsistent formatting – Too much function in one submission – Inconsistent with broader subsystem strategy • This doesn’t make you a bad coder – Revise and try again • When replying, filter unnecessary feedback and focus just on the technical aspects Open Source Group – Samsung Research America (Silicon Valley) 31
  • 32. Best Practices: Maintenance Open Source Group –– Samsung Research America (Silicon Valley) 32
  • 33. Maintaining Your Code • Don’t “dump and run” – Abandoned code will be worked around and eventually removed • Disclose problems quickly, and provide workarounds and fixes – Pretending nothing is wrong will only buy you trouble • If you can’t maintain it, pass responsibility along to a successor, or arrange to have it removed – If your code is important, someone else will step up Open Source Group – Samsung Research America (Silicon Valley) 33
  • 34. Accepting Patches to Your Code • If your code is useful, others may want to enhance it – Be open to the community process – Be available to the maintainer if asked for your input on a patch – Consider the technical comments people make on the code, and justify any disagreements that you have with them Open Source Group – Samsung Research America (Silicon Valley) 34
  • 35. Open Source Community/Communication Skills Open Source Group –– Samsung Research America (Silicon Valley) 35
  • 36. What are Communities? Open Source Group – Samsung Research America (Silicon Valley) 36
  • 37. Rule #1 No two communities are exactly the same! Open Source Group – Samsung Research America (Silicon Valley) 37
  • 38. Rule #2 Communities don’t work for individual companies Open Source Group – Samsung Research America (Silicon Valley) 38
  • 39. Preparing to Engage with Community Open Source Group –– Samsung Research America (Silicon Valley) 39
  • 40. Determine your Strengths There are many skills required in open source projects, and many roles to fill: • Software Developers • Testers/Quality Assurance • Documentation Writers • User Experience/GUI Designers • Evangelists/Communications Experts You can have more than one role if you have the time and necessary skills. Open Source Group – Samsung Research America (Silicon Valley) 40
  • 41. Determine your Time Commitment • Commit to what you can realistically deliver • Communities respect completed work more than hollow offers of help • Your commitment reflects not only on you, but on your company Open Source Group – Samsung Research America (Silicon Valley) 41
  • 42. Get to Know the Community Open Source Group –– Samsung Research America (Silicon Valley) 42
  • 43. Understand How the Community Communicates • Learn which methods are accepted & preferred: – Email lists – IRC – Web forums – Bug trackers • Observe and learn how questions are asked/answered – http://catb.org/~esr/faqs/smart-questions.html Open Source Group – Samsung Research America (Silicon Valley) 43
  • 44. Understand How the Community Communicates • Before asking a question of the community – Search any message archives/logs for the answer – Read any user documentation – Search the web for the answer – Read any Frequently Asked Questions (FAQ) documents – Read the source code! – Experiment and document your experiments • Find the correct forum – Don’t post technical questions to a user list, for example – Show how you’ve tried to find the answer on your own Open Source Group – Samsung Research America (Silicon Valley) 44
  • 45. Understand How the Community is Governed • Some communities (such as Linux Kernel) are hierarchies with clear chains of command • Some communities (such as the Debian project) are flat democracies • Understanding community governance helps you address your questions to the right audience Open Source Group – Samsung Research America (Silicon Valley) 45
  • 46. Get to Know the People • Relationships (even virtual ones) matter in communities • Understanding how people work helps get your ideas accepted in the community • Participate in conferences/meetups as much as possible to help build ‘human networks’ Open Source Group – Samsung Research America (Silicon Valley) 46
  • 47. Engage with the Community Open Source Group –– Samsung Research America (Silicon Valley) 47
  • 48. Communicate What You’re Working On • Don’t work on something for the community ‘in private’ – Someone else will probably have duplicated your effort – Other changes in the project may obsolete/conflict with your work • Project maintainers can help plan for future releases if they know what’s coming • Community participants don’t like last minute feature ‘surprises’ Open Source Group – Samsung Research America (Silicon Valley) 48
  • 49. Give Back to the Community • Code contributions • Answer questions from other members • Facilitate hardware gifts if possible • Help arrange conferences/meetups • Offer to speak at conferences/events • Your contributions reflect on you and your company! Open Source Group – Samsung Research America (Silicon Valley) 49
  • 50. Plan an Exit Strategy • Train your potential successor • Introduce your successor to the community • Insure that your code contributions will be maintained by someone from your company • Inform the community as soon as possible so that they have time to plan for the transition Open Source Group – Samsung Research America (Silicon Valley) 50
  • 51. Top 5 Things to Remember Open Source Group –– Samsung Research America (Silicon Valley) 51
  • 52. #5 – Understand Community Governance • Each community is different • Contributions need to ‘fit’ with other code/patches Open Source Group – Samsung Research America (Silicon Valley) 52
  • 53. #4 – Understand Community Motivators • Successful communities are powered by motivated people • Motivation can be: status, money, peer recognition Open Source Group – Samsung Research America (Silicon Valley) 53
  • 54. #3 – Be Careful of ‘Custom’ Licenses • Communities do not work well with ‘custom licenses’ • Gaining contributors/momentum requires low barriers to entry http://opensource.org/licenses/index.html Open Source Group – Samsung Research America (Silicon Valley) 54
  • 55. #2 – Communities Need Nurturing • Posting code to public sites is not collaboration • Community participation is a cycle – expect change Open Source Group – Samsung Research America (Silicon Valley) 55
  • 56. #1 - Be Humble, But Bold • Community leadership is earned, not granted – Accept community feedback and rework code • Bring technical expertise to the table – Contributions need to be ongoing to maintain leadership status Leadership != Control Humble Bold Open Source Group – Samsung Research America (Silicon Valley) 56
  • 57. Thank you. Open Source Group –– Samsung Research America (Silicon Valley) 57

Hinweis der Redaktion

  1. SRA Open Source Group can help navigate licenses and legal obligations - helping choose proper license based on our compliance experience.
  2. 57