innersourcing - worldwide enterprise development teams collaboration

39
Worldwide enterprise development teams collaboration InnerSourcing Lessons learned from open source communities

Upload: julian-werba

Post on 08-Apr-2017

167 views

Category:

Software


2 download

TRANSCRIPT

Page 1: InnerSourcing - Worldwide enterprise development teams collaboration

Worldwide enterprise development teams

collaborationInnerSourcing

Lessons learned from open source communities

Page 2: InnerSourcing - Worldwide enterprise development teams collaboration

Retrospective

failWhy companies

Page 3: InnerSourcing - Worldwide enterprise development teams collaboration

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

Page 4: InnerSourcing - Worldwide enterprise development teams collaboration

Boost collaboration

Worldwide developmentcommunity

Page 5: InnerSourcing - Worldwide enterprise development teams collaboration

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.

Page 6: InnerSourcing - Worldwide enterprise development teams collaboration
Page 7: InnerSourcing - Worldwide enterprise development teams collaboration

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

Page 8: InnerSourcing - Worldwide enterprise development teams collaboration

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 ?

Page 9: InnerSourcing - Worldwide enterprise development teams collaboration

Inner-Sourcing

The 7 most important practices are:

(firm-inter nal open source) – cont.

Visibility Forking Pull/mergerequests

Testing ContinuousIntegration

DocumentationIssue tracker

Page 10: InnerSourcing - Worldwide enterprise development teams collaboration

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 :

Page 11: InnerSourcing - Worldwide enterprise development teams collaboration

Basics

The open source

development process

Page 12: InnerSourcing - Worldwide enterprise development teams collaboration

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.

Page 13: InnerSourcing - Worldwide enterprise development teams collaboration

Is it hard?

Effective collaboration in

distributed teams

THINK GLOBAL. CODE GLOBAL

Page 14: InnerSourcing - Worldwide enterprise development teams collaboration

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…

Page 15: InnerSourcing - Worldwide enterprise development teams collaboration

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

Page 16: InnerSourcing - Worldwide enterprise development teams collaboration

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.

Page 17: InnerSourcing - Worldwide enterprise development teams collaboration

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/

Page 18: InnerSourcing - Worldwide enterprise development teams collaboration

Easy to get: ReleasingThat’s how Netscape

resisted Microsoft for a long time

Page 19: InnerSourcing - Worldwide enterprise development teams collaboration

Make the binaries downloable (this is how Netscape resisted Microsoft for a long time)

Releasing: Make it easy to get

Page 20: InnerSourcing - Worldwide enterprise development teams collaboration

download binaries

Page 21: InnerSourcing - Worldwide enterprise development teams collaboration

Easy to evolve:

Ask for new features or make a code contribution

Lets contribute

Page 22: InnerSourcing - Worldwide enterprise development teams collaboration

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

Page 23: InnerSourcing - Worldwide enterprise development teams collaboration

download source code

Page 24: InnerSourcing - Worldwide enterprise development teams collaboration

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

Page 25: InnerSourcing - Worldwide enterprise development teams collaboration

Ask for new features

Page 26: InnerSourcing - Worldwide enterprise development teams collaboration

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

Page 27: InnerSourcing - Worldwide enterprise development teams collaboration

Report issues

Test

report

Page 28: InnerSourcing - Worldwide enterprise development teams collaboration

Workarounds, register known-Issues, add articles to the wiki, extend the knowlegde base.

Write documentation

Page 29: InnerSourcing - Worldwide enterprise development teams collaboration

Write how-to doc

Add doc to the wiki

Page 30: InnerSourcing - Worldwide enterprise development teams collaboration

Let everyone know what is happeningListen to your users

Communication

Page 31: InnerSourcing - Worldwide enterprise development teams collaboration

Open Mailing Lists or Newsgroups: Let everyone know what is happening. New release dates. Etc.

Newsletters, wikis and documentation

Page 32: InnerSourcing - Worldwide enterprise development teams collaboration

What keeps a project

running?Roles

Who makes the decisions?

Page 33: InnerSourcing - Worldwide enterprise development teams collaboration

How to evolve, give support and mantain high

quality?Different needs in

different countries. Time-to-market

Page 34: InnerSourcing - Worldwide enterprise development teams collaboration

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?

Page 35: InnerSourcing - Worldwide enterprise development teams collaboration

GamificationHow to engage people

by meritocracy

Page 36: InnerSourcing - Worldwide enterprise development teams collaboration

Key concepts

• Points• Badges• Leaderboards • Public visibility• Rewards

Page 37: InnerSourcing - Worldwide enterprise development teams collaboration

Worldwide development community

Page 38: InnerSourcing - Worldwide enterprise development teams collaboration

Questions?

Page 39: InnerSourcing - Worldwide enterprise development teams collaboration

Software EngineerCertified Scrum MasterSoftware ArchitectDeveloperAgile FacilitatorOCUP, CSM, CSD, CSP, CCNA, MCP

[email protected]@julianwerbalinkedin.com/in/julianwerba

Thank you

Julian Werba