O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Worldwide enterprise
development teams
collaboration
InnerSourcing
Lessons learned from open source communities
Retrospective
fail
Why companies
Common strategies
Hand out the source code to
other team/country
Problems:
• No experience
• Know-how
• Learning curve
• S...
Boost collaboration
Worldwide development
community
Worlwide development community
Collaboration between teams across the world.
Why should we find an easy way to share
softw...
Inner-Sourcing
What are the benefits of open source
community-style or collaborative development
inside the corporation?
W...
Inner-Sourcing
The benefits of open source community-style
collaborative development inside the
corporate development orga...
Inner-Sourcing
The 7 most important practices are:
(firm-internal open source) – cont.
Visibility Forking Pull/merge
reque...
Hermetic and vertical model versus collaborative model
• Every good piece of software starts from the personal need of the...
Basics
The open source
development process
Technology-agnostic (independent)
software development tools
Roles
Core developers / Committers
A committer is a software ...
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
...
A place where i can:
• Download applications along with the documentation.
• Ask questions and get support.
• Ask for new ...
Project website: Primarily a centralized, one-way
conduit of information from the project out to the
public. The web site ...
GitHub
https://github.com/
Examples
Some web-based hosting services for software development projects
GitLab
https://githu...
Easy to get:
Releasing
That’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
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 cod...
download source code
Download the source code – contribute and ask for a pull request
to include your changes, fixes or new features to the cod...
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 cod...
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 happening
Listen to your users
Communication
Open Mailing Lists or Newsgroups: Let everyone know what is happening. New release dates. Etc.
Newsletters, wikis and docu...
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
• Packagin...
Gamification
How to engage people by
meritocracy
Key concepts
• Points
• Badges
• Leaderboards
• Public visibility
• Rewards
Worldwide development
community
Questions?
Software Engineer
Certified Scrum Master
Software Architect
Developer
Agile Facilitator
OCUP, CSM, CSD, CSP, CCNA, MCP
jul...
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
Próximos SlideShares
Carregando em…5
×

InnerSourcing - Worldwide enterprise development teams collaboration

518 visualizações

Publicada em

Why companies fail
Build a worldwide development community within the company
Boost collaboration and creativity
Increase Quality, Speed and Savings

Do you wanna know how?

Publicada em: Software
  • Seja o primeiro a comentar

InnerSourcing - Worldwide enterprise development teams collaboration

  1. 1. Worldwide enterprise development teams collaboration InnerSourcing Lessons learned from open source communities
  2. 2. Retrospective fail Why companies
  3. 3. Common strategies Hand 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
  4. 4. Boost collaboration Worldwide development community
  5. 5. Worlwide development community Collaboration 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.
  6. 6. 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
  7. 7. 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 ?
  8. 8. Inner-Sourcing The 7 most important practices are: (firm-internal open source) – cont. Visibility Forking Pull/merge requests Testing Continuous Integration DocumentationIssue tracker
  9. 9. 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 of learned lessons :
  10. 10. Basics The open source development process
  11. 11. Technology-agnostic (independent) software development tools Roles Core developers / Committers A 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. Contributors Contributions 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 / Consumers Suggest improvements, ask for new features, ask questions, contribute to conversations and may provide Support for anoter users.
  12. 12. Is it hard? Effective collaboration in distributed teams THINK GLOBAL. CODE GLOBAL
  13. 13. 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…
  14. 14. 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
  15. 15. 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 needed Technology-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.
  16. 16. GitHub https://github.com/ Examples Some web-based hosting services for software development projects GitLab https://github.com/ SourceForge http://sourceforge.net/ Codeplex https://www.codeplex.com/ GoogleCode https://code.google.com/ Assembla https://www.assembla.com/
  17. 17. Easy to get: Releasing That’s how Netscape resisted Microsoft for a long time
  18. 18. Make the binaries downloable (this is how Netscape resisted Microsoft for a long time) Releasing: Make it easy to get
  19. 19. Easy to evolve: Ask for new features or make a code contribution Lets contribute
  20. 20. 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
  21. 21. download source code
  22. 22. 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
  23. 23. Ask for new features
  24. 24. 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
  25. 25. Workarounds, register known-Issues, add articles to the wiki, extend the knowlegde base. Write documentation
  26. 26. Write how-to doc Add doc to the wiki
  27. 27. Let everyone know what is happening Listen to your users Communication
  28. 28. Open Mailing Lists or Newsgroups: Let everyone know what is happening. New release dates. Etc. Newsletters, wikis and documentation
  29. 29. What keeps a project running? Roles Who makes the decisions?
  30. 30. How to evolve, give support and mantain high quality? Different needs in different countries. Time-to-market
  31. 31. 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?
  32. 32. Gamification How to engage people by meritocracy
  33. 33. Key concepts • Points • Badges • Leaderboards • Public visibility • Rewards
  34. 34. Worldwide development community
  35. 35. Questions?
  36. 36. Software Engineer Certified Scrum Master Software Architect Developer Agile Facilitator OCUP, CSM, CSD, CSP, CCNA, MCP julian.werba@gmail.com @julianwerba linkedin.com/in/julianwerba Thank you Julian Werba

×