innersourcing - worldwide enterprise development teams collaboration
TRANSCRIPT
Worldwide enterprise development teams
collaborationInnerSourcing
Lessons learned from open source communities
Retrospective
failWhy companies
Common strategiesHand out the source code
to other team/country
Problems:• No experience• Know-how• Learning curve• Simultaneous unconnected
initiatives• No documentation• No communication at all
Hand out the binaries but not the core source code
Problems:• Support it’s a bottleneck• Hard to extend• No documentation• Conflicts of interests between
needs and owning team• Poor communication
Boost collaboration
Worldwide developmentcommunity
Worlwide development communityCollaboration between teams across the world.
Why should we find an easy way to share software products and collaborate?• Better Time-to-market.• Productivity.• Savings.• Better Quality.
Inner-Sourcing
What are the benefits of open source community-style or collaborative development inside the corporation?What Tim O’Reilly has called “inner-sourcing.”
The benefits these organizations are consistently looking for when exploring inner-sourcing include:• Code reuse• Better quality• Improved innovation• Cross-organization visibility into code, projects,
skillsets• Cross-organization collaboration, buy-in• Developer engagement and morale, motivation,
volunteerism
Inner-Sourcing
The benefits of open source community-style collaborative development inside the corporate development organizations.What Tim O’Reilly has called “inner-sourcing.”The benefits these organizations are consistently looking for when exploring inner-sourcing, include:• Code reuse• Better quality• Improved innovation• Cross-organization visibility into code, projects,
skillsets• Cross-organization collaboration, buy-in• Developer engagement and morale, motivation,
volunteerism
Am i going ballistic ?
[Sep 10, 2015] InnerSource: a practical application of open source techniques within organizational boundaries[Aug 27, 2015] Why Your Organization Should Consider InnerSource[Aug 14, 2015] Learn why InnerSourced projects pay off for PayPal[Jul 28, 2015] OSCON 2015 – InnerSource, benefits of open source thinking to your company - Transparency and transformation at PayPal
[Oct 29, 2014] Libby Clark, Rent the Runway: Open Source Practices Improve Culture, Developer Retention, Interview with Camille Fournier[Oct 7, 2014] Libby Clark, Enterprise Adoption of Open Source Practices is On the Rise[Sep 5, 2014] Sytse Sijbrandij, Innersourcing, using the open source workflow to improve collaboration within an organization[May 29, 2014] Dave Jones, The best thing you can do to help people share their stuff[Mar 27, 2014] Guy Martin and Phil Odence, Inner-Source: The Lesson of Linux for Enterprises[pdf][Mar 27, 2014] Libby Clark, How Samsung is Bringing Open Source Culture Inside the Firewall[Jan 20, 2014] Dave Gruber, Five ways to bring a more social, open development environment to your company
have failed ?
Inner-Sourcing
The 7 most important practices are:
(firm-inter nal open source) – cont.
Visibility Forking Pull/mergerequests
Testing ContinuousIntegration
DocumentationIssue tracker
Hermetic and vertical model versus collaborative model
• Every good piece of software starts from the personal need of the developer.
• Good developers know what to build. The best ones know what to refactor.
• When you lose interest in a project, you must inherit it to a competent successor.
• Treating your users as collaborators is the most appropriate way to improve the code, and the most effective way to debug it.
• Release fast and often, and listen to your customers.• The best thing after having a good idea is recognizing good ideas from
your users. The latter is sometimes the best.
The catedral & the bazar
The book compiles a series oflearned lessons :
Basics
The open source
development process
Technology-agnostic (independent)software development tools
Roles
Core developers / CommittersA committer is a software developer who has the necessary rights to write code into the project's source code repository. Committers are responsible for ensuring that all code that gets written into the project's source code repository is of sufficient quality.
ContributorsContributions take many forms. Contributions take the form of code, input into your project's wiki pages, answering questions on newsgroups, and more. Those contributions are subject review by commiters.
Active or pasive users / ConsumersSuggest improvements, ask for new features, ask questions, contribute to conversations and may provide Support for anoter users.
Is it hard?
Effective collaboration in
distributed teams
THINK GLOBAL. CODE GLOBAL
Meeting and collaboration tools:
Online task tracking and project management tools:
Tools at hand
TOOLS FOR VIRTUAL TEAMS
COMPANIES THAT SUCCEED ASSEMBLING DISTRIBUTED TEAMS
And many more…
A place where i can:
• Download applications along with the documentation.• Ask questions and get support.• Ask for new features or report bugs.• Get involved with the team in charge of the codebase.• Cross-organization visibility into code, projects and skillsets.• Collaborate.
Web-based hosting for software development projects
Globally centralized,easy to access (web) solutions directory
Project website: Primarily a centralized, one-way conduit of information from the project out to the public. The web site may also serve as an administrative interface for other project tools.
Mailing lists / Message forums: Usually the most active communications forum in the project, and the "medium of record."
The infrastructure neededTechnology-agnostic software development
tools
Code Archive: source control management (SCM) / Version control: Enables developers to manage code changes conveniently, including reverting and "change porting". Enables everyone to watch what's happening to the code.
Bug tracking: Enables developers to keep track of what they're working on, coordinate with each other, and plan releases. Enables everyone to query the status of bugs and record information (e.g., reproduction recipes) about particular bugs. Can be used for tracking not only bugs, but also tasks, releases, new features, etc.
GitHub https://github.com/
ExamplesSome web-based hosting services for software development
projects
GitLabhttps://github.com/
SourceForgehttp://sourceforge.net/
Codeplexhttps://www.codeplex.com/
GoogleCodehttps://code.google.com/
Assemblahttps://www.assembla.com/
Easy to get: ReleasingThat’s how Netscape
resisted Microsoft for a long time
Make the binaries downloable (this is how Netscape resisted Microsoft for a long time)
Releasing: Make it easy to get
download binaries
Easy to evolve:
Ask for new features or make a code contribution
Lets contribute
Download the source code – contribute and ask for a pull request to include your changes, fixes or new features to the codebase.
Get the source code
download source code
Download the source code – contribute and ask for a pull request to include your changes, fixes or new features to the codebase.
Ask for new features
Ask for new features
Download the source code – contribute and ask for a pull request to include your changes, fixes or new features to the codebase.
Test and report bugs
Report issues
Test
report
Workarounds, register known-Issues, add articles to the wiki, extend the knowlegde base.
Write documentation
Write how-to doc
Add doc to the wiki
Let everyone know what is happeningListen to your users
Communication
Open Mailing Lists or Newsgroups: Let everyone know what is happening. New release dates. Etc.
Newsletters, wikis and documentation
What keeps a project
running?Roles
Who makes the decisions?
How to evolve, give support and mantain high
quality?Different needs in
different countries. Time-to-market
Key concepts
• Forbid unofficial releases on production enviroments• Release numbering• Tagging and branching• Packaging and release notes• Announcing releases
Who owns the codebase?What about policies?
GamificationHow to engage people
by meritocracy
Key concepts
• Points• Badges• Leaderboards • Public visibility• Rewards
Worldwide development community
Questions?
Software EngineerCertified Scrum MasterSoftware ArchitectDeveloperAgile FacilitatorOCUP, CSM, CSD, CSP, CCNA, MCP
[email protected]@julianwerbalinkedin.com/in/julianwerba
Thank you
Julian Werba