Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

InnerSource - Using open source best practices to help your company


Published on

Once a company has more than 1 department developing code, a problem inevitably arises: How do you share source code that's mutually used? There are many different thoughts on the matter, but one that's starting to gain a significant amount of attention is "InnerSource". PayPal defines InnerSource as:

"InnerSource takes the lessons learned from developing open source software and applies them to the way companies develop software internally. As developers have become accustomed to working on world class open source software, there is a strong desire to bring those practices back inside the firewall and apply them to software that companies may be reluctant to release. For companies building mostly closed source software, InnerSource can be a great tool to help break down silos, encourage internal collaboration, accelerate new engineer on-boarding, and identify opportunities to contribute software back to the open source world."

In this talk I cover how to get from where you are ("Hey, we've got some source code that multiple people find useful!"), where you're going ("Look, we're more popular than ReactJS"), and some hurdles along the way ("Oh shoot, it looks like there is already a library to convert FLAC to MP3s..."). I give real-world examples of doing it right, and leave with some takeaways that people can immediately implement at their own companies.

Published in: Software
  • Be the first to comment

InnerSource - Using open source best practices to help your company

  1. 1. InnerSourceSubtitles considered include: • The first step towards open sourcing company software • Bringing the best of open source into your workplace • Encouraging cross-team collaboration in the enterprise • “Oh look, Eric’s gone corporate…” Minnebar 2017
  2. 2. What We’ll Cover Now is a great time to vote with your feet, in case I’m not talking about the topic you wanted to hear. What is InnerSource? This idea has been “named” since 2000. That’s the same year the following movies were released: X-Men, Memento, Gladiator, Remember the Titans and Almost Famous. That was a really good year for movies… 1 Why not just be Open Source? This isn’t just some trendy schtick that “Mr. Corporate” uses to recruit people from startups. Because if I hear “We do DevOps” one more time… 2 Who is actually doing this? Sure this all sounds well & good, but so did the movie Bio- Dome! I’ll take a swing at proving the reality now that we’ve talked about the philosophy. 3 How do I get started? I’ll cover the basic fundamentals for getting started, as well as how you can identify some of the ideal catalysts for gaining momentum. 4 Where are there dragons? Finally I’ll talk about some of the common approaches & known hurdles that you’ll face, because knowing is half the battle. 5
  3. 3. Eric Caron I run the API team at Best Buy, and dabble in our Rapid Prototyping labs. Before being at Best Buy, I spent 10 years in local startups (LinkUp & TrackIf). I’m married & have two sons. Here I’m introducing them to my He-Man collection. Some of the toys aged well, others likely scarred me in ways I don’t yet recognize… Who am I?
  4. 4. What is InnerSource? Using open source development techniques within the corporation, or with a cluster of key customers--even if they aren't ready to take the step all the way to releasing their software as a public open source project. Yet another term Tim O’Reilly coined, mentioning it in passing on a mailing list back in 2000…
  5. 5. InnerSource is about DRY In theory we all like code re-use. We also like Linus’ Law: “Given enough eyeballs, all bugs are shallow.” ! Why do companies adopt InnerSource? What motivates developers?
  6. 6. InnerSource is about collaboration & mentorship You know that warm fuzzy feeling when one of your PRs get approved on a GitHub project that you like but didn’t write? Imagine giving that feeling to your co-workers. "
  7. 7. InnerSource is about better code & better documentation Ever committed to your production servers without including a unit test? Me neither… Ever committed to an open source project without including a unit test? Me neither. #
  8. 8. Why not just Open Source the project? InnerSource doesn’t always mean “not open source”. Just “not open source yet”. Protip: Design your project from the beginning with the possibility of becoming public open source - there’s really no downside to that mindset.
  9. 9. Why not just Open Source the project? Does it contain intellectual property? Does it define your competitive advantage? Odds are that it doesn’t. But having that conversation up front and in the open establishes a meaningful foundation for the future of that project.
  10. 10. Why not just Open Source the project? Open sourcing a project reflects on your brand and comes with extra baggage you might not be ready to carry. Ever started using an open source project that gets discontinued? Or was taken down because of #legalFun? Those negative vibes have an impact on your company’s brand and its ability to recruit. Plus before your organization dives into offering an open source project, check out to learn from the best of the industry to make sure you do it right.
  11. 11. Who is actually doing this? PayPal Nokia Autodesk Samsung Capital One Walmart IBM Facebook (and all the other common big ones you’d typically see on a page like this)
  12. 12. Some Great Quotes “Staff have to change their habits from complaining about bugs to going in and making fixes.” ~Matt Edelman, PayPal “If Agile & Scrube pay a price in scalability, open source development pays a price in speed.” ~Adam Oram, author "Open source methods, when you apply them well, force you to document and formalize your process which can be a very good thing" ~Camille Fournier, Rent The Runway CTO
  13. 13. Basic Fundamentals $ Required: Visibility The software project has to be in a place where it is visible & discoverable to all employees. % Required: Documentation The conversation history for all decisions has to be logged in a searchable place (e.g. GitHub issues, mailing lists)
  14. 14. & ' ( ) Required: Automated Testing This is why non-UI stuff tends to be more common parts of InnerSource. But you can’t scale & trust without having automated testing around the entire project. Required: SemVer Trying to manage an InnerSource project without proper versioning is a recipe to have everyone revert to the old ways. Required: 2+ Teams It takes two to tango. For InnerSource, we’re talking 2+. Required: Issue Tracker The project needs a way to handle known issues and discuss things in flight.
  15. 15. 04 Common Approaches & Known Hurdles I’m sorry if I lead you to believe this was easy & frictionless.
  16. 16. How do you deal with employee turnover? • Don’t worry about it too much, so long as more than 1 team is using the project • Some organizations believe in funding a single person to push InnerSource momentum. I’m not a fan of this style • You don’t need to worry about stagnation so long as people are using the project • You don’t need to worry about knowledge loss so long as you abided by the documentation requirement
  17. 17. Does this increase the # of teams I have to support? • For each project you operate under the InnerSource model, yes • In theory you aren’t the only team offering InnerSource projects, and as other teams run their own projects your TCO for all lines of code decreases • Having more people read, use and ask about your code is a good thing
  18. 18. • Forking happens and is much a concern as it is with open source projects • You’re going to have in-person conversations, just make sure they’re always followed-up on the mailing lists or in your issue tracking • There is actually value in it, because if they same style of request/question comes up multiple times it likely means there’s a fundamental design flaw What if two teams want to take the project in different directions?
  19. 19. How to get management support? • Start simple & use existing resources • Piggy back on this being #openSourceLight • Point out the financing model & overall reduction of lines-of-code owned-by-developer (LoCObD if you like acryonyms) • There is tons of great management-style material on the web on this topic (CHARTS CHARTS CHARTS) that demonstrate the business value this brings. I have a link on my references slide
  20. 20. References Getting Started with InnerSource O’Reilly has a great free 22 page PDF that goes deeper into philosophy & implementation. * InnerSource Commons PayPal maintains a great wiki about the whole movement and patterns to follow. + Boss Reading Material InfoQ has a really deep dive into the factors at play, the politics and the financial case.  Dr. Dobbs 2000 Paper Sometimes it is nice to be reminded that not all of problems are new. (Sometimes it isn’t.) - Black Duck’s Piece on Next Steps A fan static article describing the legal nuances and steps to stay sfe. . /