Slides from session entitled "Unlocking Organizational Potential By the Power of Inner Sourcing." presented at the All Day DevOps Conference on October 25th 2023.
How to Choose the Right Laravel Development Partner in New York City_compress...
Unlocking Organizational Potential By the Power of Inner Sourcing.pdf
1. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
O C T O B E R 2 6 , 2 0 2 3
Tom Halpin - Distinguished Engineer
Unlocking Organizational
Potential By the Power of
Inner Sourcing
2. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Introduction
3. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Tom Halpin
• Enablement - Distinguished Engineer working in a
DevOps enablement role.
• Coaching - Teams to transform how they work to a
DevOps model in support of product-aligned value
streams.
• Facilitating - Adaption of the associated culture, practices,
and tools across organizations.
• Fourth time presenting at ADDO highly recommend the
experience.
4. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Agenda
• Tools, Technologies, Team Topologies, Platforms
and Processes
• Scaling Inner Sourcing
• Open Sourcing Internal Tools
• What is Open Source?
• What is Inner Source?
• Benefits of Inner Source
• Inner Source Goals
• Establishing an Inner Sourcing Culture
• Importance of an 'Everything as Code'
Mindset
This session will cover how establishing an inner sourcing culture within an organization can help
unlock the intellectual property within:
5. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Open Source
6. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Collaborative approach to software development.
• Code and resulting software made public for review, use, modification,
and distribution.
• Code is available for anyone to access and contribute.
• Governance by open-source licenses which define the terms and
conditions for use and sharing.
What is Open Source?
7. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Open source has revolutionized software development.
• Applications across various sectors rely on reusable code
from a global developer community.
• Over 90% of IT enterprises worldwide use open-source
software for mission–critical workloads (Gartner). - Source
– Pimcore – Why Open Source?
• Not without risk - Sonatype - 9th Annual State of the
Software Supply Chain Report
Open-Source Impact
Source: Sonatype - 9th Annual State of the Software Supply Chain Report
8. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
On World:
• Many successful projects due to the
contributions and support of a global
community of developers, including:
• Linux Operating System
• Python
• Kubernetes
• Terraform / OpenTF
Examples
Off World:
• The Ingenuity Drone Helicopter's on Mars
(2020) used open-source software
extensively.
• NASA recognized and awarded nearly
12,000 contributors to various GitHub
repositories with a mission badge.
• Source: GitHub Blog – Mars 2020
Helicopter Mission
9. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Code is developed and maintained at scale by globally
distributed communities.
• Open-source communities have established very effective
global collaboration processes.
• Distributed version control systems and associated tooling
developed / used have become industry standards.
• Culture, Tools, Technologies, Team Topologies, Platforms and
Processes used are foundational to the DevOps movement.
Open-Source Collaboration
10. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Inner Source
11. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Inner sourcing is a development approach which takes the culture, tools, technologies, team
topologies, platforms and processes used in open-source development and applies them
internally to an organization's software development processes.
What is Inner Source?
12. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Requires more than tool and technology selection.
• Demands a significant cultural shift.
• Requires:
• Changes to organizational responsibilities and team topologies.
• Investment in people, platforms, processes, tools and technologies.
Establishing an Inner Source Program
13. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Continuous improvement
• Improvements in work practices
• Reuse of code & resources
• Co-ownership across teams
• Transparency & knowledge
sharing
• Cost reduction & efficiency gains
Benefits of Inner Source
• Streamlined development, testing
and deployment processes
• Faster flow
• Enhanced security
• Better adherence to regulatory
requirements
• Enhanced innovation & improved
collaboration
14. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Inner Sourcing Program Goals
15. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Strategic Alignment – Ensure inner sourcing goals align with broader organizational
strategies and objectives.
• Continuous Evolution – Success in inner sourcing hinges on not only establishing and
setting goals but also on ongoing evaluation and goal adjustment to align with evolving
organizational needs.
High Level Objectives
Source: Derek E. Weeks
16. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Enhance Collaboration – Foster collaboration and knowledge sharing among business units,
teams and individuals.
• Improve Efficiency – Streamline development, test and deployment processes, reduce
redundancy, and free up people for more productive tasks.
• Cultivate Innovation – Encourage innovation by leveraging collective expertise and varying
perspectives.
• Increase Quality – Elevate the quality and reliability of internal software, platforms and tools.
• Develop Talent – Provide opportunities for skill development and cross–functional learning.
Goals of Inner Source Program
17. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Program Charter – Drive cultural change, enhance efficiency, and achieve better business
outcomes.
• Business Impact – Measure, in so far as possible, the impact of inner sourcing on key
business metrics such as cost reduction, time–to–market, and customer satisfaction.
• Cultural Improvement – Promote a culture of openness, collaboration, and continuous
improvement in line with the open-source world and aligned with the organization's cultural
values.
• Risk Mitigation – Mitigate risks associated with siloed development efforts, automate where
possible, reduce security vulnerabilities, and eliminate resource inefficiencies.
Align Goals with Organizational Strategy
18. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Establishing an Inner Sourcing
Culture
19. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Remember its’ a journey.
• Move to an open collaboration from a closed mindset.
• Encourage knowledge sharing and transparency.
• Foster a sense of responsibility and ownership.
• Building a culture of continuous learning and
experimentation.
• Establish psychological safety.
The Cultural Shift
20. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Values: Collaboration, trust and open communication.
• Mindset: From "not invented here" to "collaborate and improve".
• Mindset: From "we have always done it this way" to "collaborate and improve".
Emphasize Values and Mindset Change
21. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Resistance to change from traditional structures
and “centres of power”.
• Fear of exposing inefficiencies, mistakes and
vulnerabilities.
• Maintaining security and compliance in a more
open and a more automated environment.
Challenges and Potential Roadblocks
22. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Leadership advocacy and support.
• Investment in tooling, platforms and people via education and training programs.
• Gradual adoption via pilot projects and selected value streams.
• Measuring and communicating success stories.
Strategies to Overcome Challenges
23. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Establish cross–functional teams.
• Encourage contributions from all levels of the organization.
• Create forums for discussion and idea sharing – brown–bags, fireside chats, panels etc.
• Celebrate successes and acknowledging contributors.
• Learn from failures.
• Conduct blameless post-mortems.
Building an Inner Sourcing Community
24. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Identify key performance indicators (KPIs) aligned with organizational strategic objectives
• Inner sourcing metrics
• Community Engagement – engagement level within the inner sourcing community: the number of
active contributors, number of code reviews, repositories watched, repositories starred, number of
issues logged, and number of discussions on project–related topics.
• Code Reuse – % of code that is reused across different projects via libraries or APIs. Increased
code reuse can lead to resource savings and improved consistency.
• Security and Compliance – Monitor compliance issues and security vulnerabilities in inner sourcing
projects. Ensure that security practices are maintained or improved.
Measuring Progress
25. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• DevOps metrics
▪ Lead time for changes – time between a code change committed to main/trunk branch and is deployable –
hours rather than days or weeks)
▪ Change failure rate – % of code changes that require hot fixes or remediation after code has been deployed –
High performing teams 0 to 15%
▪ Deployment frequency – frequency that new code is deployed to production – on demand / many times a day
rather than days or weeks)
▪ Mean time to recovery – how long it takes to recover from a partial service interruption or a total failure – high
performing teams < 1 hr rather than days or weeks
• Take regular feedback feed it into improvement cycles adjust strategy accordingly.
Measuring Progress
26. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Everything as Code (EaC)
Mindset
27. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• An EaC mindset allows organizations to establish, sustain & enhance an Inner Sourcing culture.
• EaC is the practice of treating all aspects of software development and infrastructure
management as code artifacts – CI/CD pipelines, configurations, policies, infrastructure, tests,
documentation, and more – all defined and managed as code.
Everything as Code (EaC)
28. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• EaC aligns with Inner Sourcing by extending collaboration and transparency to all aspects of
development and operations.
• It allows teams to work together more efficiently, enables automation, fosters a culture of
accountability, and facilitates knowledge sharing.
EaC aligns with an Inner Sourcing Culture
29. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Configuration as Code (CaC) – Store application
configurations in version–controlled files, making it easier to
track changes and maintain consistency across environments.
• Data as Code (DaC) – Version and manage data pipelines
and transformations, enhancing data–driven decision–making.
• Deployment as Code (DaC) – Automate deployment
processes, enabling rapid, consistent, and repeatable
deployments through code–driven pipelines.
• Documentation as Code (DaC) – Write and manage
documentation in markdown or other text–based formats,
allowing collaborative editing, versioning, and automated
documentation generation.
EaC - Examples
• Infrastructure as Code (IaC) – Define and manage infrastructure
resources in code using tools like Terraform or Ansible, enabling
consistent, reproducible deployments.
• Monitoring as Code (MaC) – Manage monitoring and alerting
configurations in code, ensuring that teams can collaborate on
monitoring strategies.
• Policy as Code (PaC) – Define security and compliance policies in
code, ensuring that they are consistently applied.
• Testing as Code (TaC) – Automate testing processes and
configurations, integrating them into development pipelines, making
testing more efficient, more repeatable and thus more reliable.
30. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Scaling Inner Sourcing
31. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Recommend an incremental approach with an initial focus on pilot projects and selected
value streams.
• Need to recognize and address challenges whilst implementing best practices to achieve
a successful and sustainable scaling process.
• It is not just about expanding the size of the effort but also about increasing the cultural
and organizational adoption to enhance collaboration and innovation.
Approach
32. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Incremental Approach to Scaling
Gradual Rollout – Scaling should be approached incrementally rather than attempting a full–scale
transformation from the outset.
Adapt, Learn and Adapt – Learn from experiences, and adapt strategies as the effort expands.
Iterate– continuous improvement of the process based on feedback and outcomes.
33. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Pilot Projects – Begin with pilot projects with a limited scope and ideally with dedicated
teams keen to embrace inner sourcing practices.
Selected Value Streams – Focus on specific value streams in areas of the organization
which can benefit the most from inner sourcing.
Measure Success – Define “clear-ish” metrics to measure the success and impact of inner
sourcing in the pilots.
Pilot Projects & Selected Value Streams
34. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Challenges & Best Practices in Scaling
Best Practices:
• Sponsorship – Secure support and commitment from
leadership to support the cultural change.
• Documentation and Training – Provide “living”
documentation and training to facilitate adoption.
• Community Building – Foster a sense of community
among contributors to promote engagement.
Challenges:
• Cultural Resistance – Overcoming resistance to
change and ensuring teams embrace collaborative
practices.
• Governance – Establishing governance models for
code contributions, access control, security and
compliance.
• Scalability – Ensuring that inner sourcing practices
can scale to accommodate growing project sizes
and teams.
35. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Tools, Technologies, Team
Topologies, Platforms &
Processes
36. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Components Fit for Purpose – Select tools, technologies, team topologies, platforms and
processes to meet inner sourcing program needs.
Alignment with Goals – Align choices with organizational goals and objectives.
Continuous Review and Optimization – Ongoing assessment and adjustment for sustained
success.
Foundations For Success
37. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Tools – Collaboration and version control tools, code review platforms, documentation
systems, and communication channels.
Technologies – Development frameworks, programming languages, test frameworks and
security tooling etc.
Team Topologies – Organizing and optimizing the efforts of contributors and teams,
ultimately leading to more efficient, collaborative, and successful projects.
Platforms – Hosting Infrastructure, source code repository & version control system (e.g.
GitHub), binary repository manager (e.g. Artifactory) & CI/CD orchestration tool (e.g. Jenkins).
Processes – Defined workflows, code contribution guidelines, code review procedures, and
release management controls.
Overview of Foundational Components
38. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Efficiency – Clear processes reduce bottlenecks, streamline development, facilitate flow and
improve resource allocation.
Quality – Well–defined processes ensure code quality, security, and compliance with
standards.
Collaboration – Robust processes promote collaboration and knowledge sharing among
teams.
Automation – Automated processes streamline repetitive tasks, such as code integration,
testing and deployment thus enhancing efficiency and reducing the potential for human
error.
Importance of Good Processes
39. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Select Value Streams – Select the areas of the organization to focus on.
Define Workflows – Map the process workflows from code contribution to deployment.
Contribution Guidelines – Create guidelines for code contributions, including coding
standards and testing requirements.
Code Reviews – Establish clear code review procedures and criteria for acceptance.
Release Management – Define release processes, versioning, and deployment strategies.
Documentation – Maintain “living” process documentation at the project level.
Establish & Maintain Processes
40. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Continuous Improvement – Regularly review and refine processes based on feedback and
performance metrics.
Automation – Automate repetitive tasks, such as testing and deployment, to increase
efficiency.
Feedback Loops – Encourage feedback from contributors to identify areas for improvement.
Training and Education – Provide training and resources to enable people and thus teams
succeed.
Process Optimization for Inner Sourcing
41. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Open Sourcing Internal Tools
42. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Open sourcing of any internal code is a significant step that should be approached thoughtfully, ensuring
alignment with organizational goals and compliance with relevant organizational policies and any applicable
regulations.
Disclaimer
43. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Importance of Open Sourcing Internal Tools:
• Enhanced Collaboration – Open sourcing internal
tools promotes collaboration and knowledge sharing
internally across teams and departments.
• Innovation Catalyst – It fosters innovation by allowing
external contributions and insights.
• Enhanced Public Profile – Successful projects can
raise the public profile and reputation of an
organization helping with talent attraction, acquisition
and retention.
Why Open Source?
How it Contributes to Inner Sourcing Success:
• Streamlines Processes – Open sourcing internal tools
helps streamlines inner sourcing processes through the
provision of standardized, reusable components.
• Knowledge Transfer – External contributors bring fresh
perspectives and knowledge to improve internal practices.
• Community Building – It builds a culture of collaboration,
transparency, and accountability within the organization.
44. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Evaluate Suitability – Determine which internal tools are suitable for open sourcing based on their value and
potential external interest.
• Select License – Choose appropriate open-source license to govern usage & contributions.
• Clean and Document – Ensure the code is clean, well–documented, and doesn’t include any commercially
sensitive information.
• Create a Public Repository – Create a public repository on a platform like GitHub for the project.
• Promote Internally – Encourage internal teams to use and contribute to the open-source tool.
• Community Engagement – Actively engage with external contributors, create and maintain a responsive
feedback loop.
Steps to Open-source Internal Tools
45. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Conclusions
46. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Commit to change.
• Align with organizational goals.
• Major cultural pivot required.
• Embrace 'Everything as Code'
principles.
• Investment is required.
Conclusions
• Start with pilot projects and selected value streams.
• Measure impact – use KPIs aligned with organizational
goals.
• Plan to scale the effort.
• Security first – SAST & DAST.
• Look to avail of open-source synergies.
47. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
• Key Takeaway => Start – git init, git add, git commit, ..., git push ...
Conclusions
48. T R A C K : C U LT U R A L T R A N S F O R M AT I O N
Q&A
49. T R A C K : C U LT U R A L T R A N S F O R M AT I O N