{"id":369466,"date":"2021-11-19T16:00:03","date_gmt":"2021-11-19T13:00:03","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/"},"modified":"2021-11-19T16:00:03","modified_gmt":"2021-11-19T13:00:03","slug":"what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/","title":{"rendered":"#What Is \u201cInner Source\u201d Development and Should You Be Using It? \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2438cb5f76b\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2438cb5f76b\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/#Introducing_Inner_Source\" >Introducing Inner Source<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/#Inner_Source_Benefits\" >Inner Source Benefits<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/#Implementing_an_Inner_Source_Workflow\" >Implementing an Inner Source Workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/#Drawbacks_to_Consider\" >Drawbacks to Consider<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/what-is-inner-source-development-and-should-you-be-using-it-cloudsavvy-it\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#What Is \u201cInner Source\u201d Development and Should You Be Using It? \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<figure style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage size-full wp-image-14787\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/ffa19bfb.jpg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/ffa19bfb.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/ffa19bfb.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Illustration of a figure-of-eight software lifecycle symbol\" width=\"1200\" height=\"675\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"type:primaryImage imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.shutterstock.com\/image-vector\/devops-software-development-operations-infinity-symbol-1711913887\">LuckyStep\/Shutterstock.com<\/a><\/span><\/figcaption><\/figure>\n<p>Inner Source, often stylized as InnerSource, refers to the adoption of open source processes and development methodologies within an organization. Whereas \u201copen source\u201d implies the creation of publicly available tools, inner source means you\u2019re working on internal projects using open-derived <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>roaches.<\/p>\n<p>Open source workflows facilitate easy collaboration and rapid iteration. Publicly accessible issues and merge requests on platforms like GitHub let anyone contribute to a project. Bugs are discovered and patched quickly, safely, and transparently in an environment that fosters regular discussion between maintainers and users.<\/p>\n<p>This model can contrast starkly with how software\u2019s developed inside large organizations. In these environments, tools are developed in an ad-hoc fashion by individual teams. People work in silos, contributing to their individual areas, oblivious to overlapping work that\u2019s going on elsewhere.<\/p>\n<h2 id=\"introducing-inner-source\"><span class=\"ez-toc-section\" id=\"Introducing_Inner_Source\"><\/span>Introducing Inner Source<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/ageofpeers.com\/2016\/05\/09\/an-open-source-approach-to-community-culture\">inner source movement<\/a> applies lessons learned from open source development to an organization\u2019s internal projects. It advocates making all code visible to everyone, creating a more open culture where teams can find existing projects that might also be useful to their work, then contribute their own improvements.<\/p>\n<p>In many organizations, new source repositories will be locked down to just the individuals that need to work on them. Adopting an inner source model means making everything visible by default. This encourages team members to explore the organization\u2019s entire corpus of code and provide input to discussions, even if the project\u2019s not strictly within their subject area.<\/p>\n<p>Inner source isn\u2019t just about code either. It can be extended to include broader assets and documentation relevant to the business, its operations, and its software. The objective is to empower individuals to self-select tasks and contribute their experience where they feel it would benefit the organization, even if they\u2019re hired into a specific focus area.<\/p>\n<h2 id=\"inner-source-benefits\"><span class=\"ez-toc-section\" id=\"Inner_Source_Benefits\"><\/span>Inner Source Benefits<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Proponents of \u201cinner source\u201d architectures note several significant benefits of the approach, including reduced waste, accelerated launch times, less tension between teams, and improved code quality. These combine to enhance the organization\u2019s productivity and workplace culture.<\/p>\n<ul>\n<li><strong>Reduced waste, enhanced reuse<\/strong> \u2013 Large organizations can end up duplicating similar code across multiple projects owned by different teams. If teams aren\u2019t talking to each other, the fact you\u2019ve now got three similar caching libraries could go unnoticed. Publishing all code internally will alert others to the presence of usual tools, then encourage shared iteration on a single codebase. The wheel stops getting reinvented, keeping everyone on task and accelerating the launch timeframe.<\/li>\n<li><strong>Improved code quality<\/strong> \u2013 Code written in the open is more exposed so bugs are likely to appear earlier in the development process. If a shared library is adopted by a new team, issues could come to light that were unnoticed before. Implementing fixes will benefit all the projects using the library.<\/li>\n<li><strong>Less tension between teams<\/strong> \u2013 While moving to an open model might seem uncomfortable at first, inner source development is meant to break down barriers and enhance collaboration. Closed development can create uneasy situations when you find a neighboring team\u2019s built a better version of a library you\u2019ve been using. In an open model, this is resolved by iterating together on a shared codebase that includes the capabilities needed across the whole group.<\/li>\n<\/ul>\n<p>Inner source flattens the organizational structure, giving all developers the same view into ongoing work. Accepting contributions from outside the team that \u201cowns\u201d a project provides access to fresh eyes and an expanded pool of solutions.<\/p>\n<h2 id=\"implementing-an-inner-source-workflow\"><span class=\"ez-toc-section\" id=\"Implementing_an_Inner_Source_Workflow\"><\/span>Implementing an Inner Source Workflow<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>At its simplest, inner source is implemented by heading to your version control platform and changing the visibility of projects from Private to Internal. In practice, you\u2019re going to need a more considered plan than this if you\u2019re to successfully introduce the inner source model to an existing team environment.<\/p>\n<p>There are two fundamental aspects in any transition: communication and tools. The former refers to educating team members about what\u2019s happening and how they\u2019ll be able to contribute to opened projects. \u201cSetting and forgetting\u201d access levels will be ineffective as people will be unaware of their new abilities and when they can be used.<\/p>\n<p>The second aspect, tools, involves selecting appropriate software utilities to manage the open workflow. A functioning software team will probably already be using a form of version control, such as GitOps, to manage their code. However, precise usage patterns could vary considerably throughout the organization.<\/p>\n<p>Inner source calls on a unified development model that\u2019ll work consistently across all projects. This means using the capabilities of Git and your hosting platform, such as GitHub or GitLab, to their fullest effect.<\/p>\n<p>Contributors should be able to submit changes in a pull request which maintainers then review and merge. Pull requests should be supplemented by a passing test suite which runs in a CI pipeline. This gives the maintaining team confidence that the change is effective and ensures all code meets the same standards. Making the codebase self-verifying through automated tests and checks helps remove friction from the experience.<\/p>\n<p>You should also consider how supporting assets such as documentation and issue lists are stored and exposed. Create an open team wiki for API docs and architecture references; ensure all bugs and feature requests are tracked in a central location. This will let people from across the organization find the information they need. It also empowers individuals to provide enhancements to arbitrary projects in quieter periods \u2013 anyone can find bug reports and start addressing them, leading to improvements in all downstream repositories.<\/p>\n<h2 id=\"drawbacks-to-consider\"><span class=\"ez-toc-section\" id=\"Drawbacks_to_Consider\"><\/span>Drawbacks to Consider<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Inner source is <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.infoworld.com\/article\/3638692\/inner-source-in-the-enterprise-gains-momentum.html\">already a reality<\/a> at many organizations. The potential benefits are alluring in situations where increased efficiency and throughput are desired. As with any approach to work, it\u2019s not necessarily suitable for every environment though.<\/p>\n<p>One of the most frequent concerns about inner source is its impact on security and information disclosure. The similarities between inner source and the wider open source ecosystem only extend so far: the code in an open library or framework contains nothing of sensitivity, whereas you may deal with closely guarded proprietary systems in your role at work.<\/p>\n<p>It\u2019s natural that some projects will always need to be locked down, accessible only to stakeholders and the directly responsible implementation team. However, possessing some high-stakes projects with sensitive source, where it\u2019s not safe to make them visible across the whole org, shouldn\u2019t spell the end of an inner source initiative.<\/p>\n<p>It\u2019s still worthwhile opening up projects that can be safely exposed. You could also abstract the non-sensitive parts of private projects into new shared libraries that are publicly accessible. This brings the benefits of inner source closer to your sensitive assets without actually revealing them.<\/p>\n<p>Another inner source challenge is communicating expectations back to developers. Devs may be wary of exploring open projects, especially if inner source is introduced to a historically closed organization. This can be addressed in a variety of ways, such as allocating time for developers to inspect code written by other teams.<\/p>\n<p>It can also be helpful to start off small, only exposing core libraries that will be useful to many different teams across the organization. A good choice can be a well-known but private component which has a reputation for being unreliable or outdated \u2013 think \u201creported bug with the ApiClient again.\u201d Opening up that component enables developers to contribute their own fixes as they need them, improving productivity and promoting organic growth of the inner source mentality.<\/p>\n<p>If you do try this technique, be careful to warn the original project authors first \u2013 even if it leads to greater efficiency all-round, some individuals could treat others contributing to code that was formerly \u201ctheirs\u201d as an affront. Communicate why inner source is being introduced to the organization, as well as the specific reasons for opening individual projects.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Inner source refers to taking development methods from the open source community and applying them to internal projects and processes. It facilitates unimpeded access to useful code and documentation while promoting collaboration and communication.<\/p>\n<p>Implemented correctly, inner source can be a differentiating point for an organization that reduces redundancy, increases throughput, and fosters a more equitable development culture. Choosing to leave projects open by default lets the original authors tap into the human talent of the entire organization. In the same way as leading open source frameworks and libraries harvest the collective abilities of the community, so can inner source create internal tools which go beyond what any single team could achieve.<\/p>\n<p>Inner source can be tricky to get right. It can lead to pushback from code owners and wariness on the part of developers. When introducing any form of inner source development, keep people on the same page by clearly documenting expectations and working procedures. Everyone needs to feel comfortable in contributing for the full benefits of inner source to become apparent.\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/14785\/what-is-inner-source-development-and-should-you-be-using-it\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#What Is \u201cInner Source\u201d Development and Should You Be Using It? \u2013 CloudSavvy IT&#8221; LuckyStep\/Shutterstock.com Inner Source, often stylized as InnerSource, refers to the adoption of open source processes and development methodologies within an organization. Whereas \u201copen source\u201d implies the creation of publicly available tools, inner source means you\u2019re working on internal projects using open-derived&#8230;<\/p>\n","protected":false},"author":1,"featured_media":369467,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/11\/ffa19bfb.jpg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-369466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/369466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=369466"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/369466\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/369467"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=369466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=369466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=369466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}