InnerSource Keynote 2017files.informatandm.com/uploads/2017/9/6.3_Jagielski.pdf · InnerSource:...
Transcript of InnerSource Keynote 2017files.informatandm.com/uploads/2017/9/6.3_Jagielski.pdf · InnerSource:...
InnerSource: Applying Open Source Best Practices in the Enterprise
JimJagielski•CapitalOne:Sr.DistinguishedEngineer/TechFellowsProgram•ApacheSoftwareFoundation:ViceChairman
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
About MeApache Software Foundation
Vice-Chairman, Co-founder, Director, Member and Developer Director
Outercurve, MARSEC-XL, OSSI, OSI (ex)… Developer
Mega FOSS projects O’Reilly Open Source Award: 2013 European Commission: Luminary Award Sr. Director: Tech Fellows: Capital One
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
What is “InnerSource”InnerSource is the methodology of taking the “lessons learned” from successful FOSS projects and using them internally in Enterprise IT development environments. What can corporate IT learn from leading open development communities?
Both principles and techniques offer value Understanding principles allows you to alter techniques “running your internal development as if it was an open source project”
Challenges must be overcome to realize success
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Why InnerSource?Gain efficiencies by leveraging resident talent to its fullest Develop better software faster through collaboration Reduce costs through technology standardization and reuse Bring products to market faster Increase developer engagement and innovation through social creativity Attract and retain higher quality talent
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
What is “The Apache Way”“The Apache Way” relates to how the ASF (and its projects) work and operate Basically, the least common denominators on how PMCs operate (or are expected to operate) Why Apache?
Best example of “pure” Open Source development Large number of success stories (and some “failures”) Recognized and acknowledged by peers and press.
Basic governance principles
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Origins of “The Apache Way”History of The Apache Group and the ASF Focus on community Focus on the un-aligned volunteer contributor
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Basic MemesMeritocracy Peer-based Consensus decision making Collaborative development Responsible oversight Individual Participation
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Meritocracy“Govern by Merit” Merit is based on what you do Merit never expires Those with more merit, get more responsibility Provides incentive to Do More And you CAN Do More (go up the ladder) It’s NOT a dirty word aka “do-acracy”
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Peer-basedDevelopers represent themselves - individuals Mutual trust and respect All votes hold the same weight (no BDFL) Community created code
Healthy communities create healthy code Poisonous communities don’t
Feel as part of a community
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Why Community -> CodeAvoid for new projects, what boot-strapped the Apache Group in the 1st place Since we are all volunteers, people’s time and interests change A healthy community is “warm and inviting” and encourages a continued influx of developers Poisonous people/communities turn people off, and the project will die Diversity ensures survivability End result - better code, long-term code
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Consensus decision makingKey is the idea of voting
+1 - yes +0 - no real comment -1 - veto
Sometimes you’ll also see stuff like -0, -0.5, etc… Used to gauge consensus, not really “majority rule”
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Collaborative DevelopmentTransparent and Public Code is developed by the community Voting ensures at least 3 active developers Development done online and on-list
If it didn’t happen on-list, it didn’t happen
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Responsible OversightEnsure license compliance Track IP Quality code Quality community Community ownership
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
How?“If you want to build a ship, don’t drum up the men to gather wood,
divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.”
―AntoinedeSaint-Exupéry
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles of InnerSourceCulture Communication Transparency Collaboration Community Meritocracy
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles: CultureInner-sourcing is a cultural mind-shift
Create an expected set of behaviors Must be truly engaged Must be truly accepted
Techniques: Be the model and guide Embrace the model
Culture ➾ Communication
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles: CommunicationIs core and foundational
Everything builds on this Open and asynchronous
Doesn’t disenfranchise anyone Archivable
Maintains history and allows ebb/flow Document tribal knowledge
Techniques: Mailing lists; reduce reliance on F2F; invest in infra
Communication ➾ Transparency
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles: TransparencyReinforces and Enables Public and Open mindset
Inclusion Reuse
You can only reuse what you can see Quality/Security
More eyeballs mean better quality Measurement/Metric
You can only measure what you can see Transparency ➾ Collaboration
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles: CollaborationCommon Vision Common Goal See connections Consensus:
Encourages contribution and improves leverage Encourages feedback and dialogue
Techniques: Build and Test Tools “Newbie” issues
Collaboration ➾ Community
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles: CommunityLoyalty
Community breeds loyalty Durability
Communities can create durable assets, processes and culture Health Feedback and Dialogue Not-just the “regular, expected players” Community ➾ Meritocracy
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Principles: MeritocracyTechnical decisions made by technical experts
Better informed decisions Role models
Merit provides examples Earned authority
“Natural” leadership Known path and “rewards” Influence and Direction are possible (!(Us vs Them)) Meritocracy ➾ Communication
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
LessonsRequires a cultural and development methodology shift
Conflicts w/ pure Agile Sharing and Collaboration > short-term efficiency Collaborative infrastructure must exist
Real buy-in of initial investment schedule non-direct efforts (documentation, unit tests, …)
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Developer Incentives - IntangibleSocial aspects of collaboration Better understanding of company’s mission, and where this project fits in Peer recognition Mentoring / Learning “Change of pace” Loyalty and value
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Developer Incentives - TangibleTalent management Performance management Awards Conferences Training and Education
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Incentives ManagementLess churn More innovation More focus on key tech Easier recruitment More “bang for the buck”
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
MeasuringFlat, open, transparent Track:
Availability Usage Collaboration
Initially team focused: Effort towards collaboration
docs tests communication (f2f vs email/GitHub issues, etc)
Actual collaboration accepted pull requests feedback, mentoring
Developer Happiness/Retention (also hiring)
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
Final ThoughtsCommunity is not the same as team
self organizing self identifying
Contribution is work Community requires investment Transparency is not a threat Collaboration means compromise Driving results means driving consensus
#SDXEJim Jagielski / @jimjag
This work licensed under Creative Commons Attribution 3.0 Unported License. - Jim Jagielski - @jimjag
ThanksTwitter: @jimjag
LinkedIn: https://www.linkedin.com/in/jimjag/
Email:[email protected]@[email protected]
http://www.slideshare.net/jimjag/
Thanks to Phil Steitz for InnerSource organizational inspiration