How We Enable Open Source Software

Problem Statement

Enabling large organizations to use technologies to their fullest potential is more than just purchasing a product, there are multiple building blocks that need to be put in place such as architecture, tooling, security and learning new skills.

Objective

The objective of this repository is to create a framework to enable individuals to have a strategy to get to modern methodologies for deployment of IT services. We hope to provide best practices as well as enablement workshops to help move the strategies forward and create communities of practice within organizations. In addition to this, we hope to create a culture of learning and encourage other repositories start including a workshop folder. This way people have an entry point on how to run workshops to enable others in the future.

Why Strategy Matters

"Formalizing your organization’s approach to open source management and strategy creates guidelines that boost efficiency and minimize risks. Whether or not you have set a business strategy around your open source efforts, you likely already know that this is important." - Linuxfoundation.org

At the highest level, having company standards around the way IT services are delivered is one of the most important things to address in order to help accelerate the adoption of open source software and tools.

Below are the base Enterprise Architecture Standards that help ease the move to cloud native.

Enterprise Architecture Standards
APIs
Automation
Cloud Native Development
Continuous Integration / Continuous Delivery
Monitoring / Observability
Source Code Management
Security
Testing
User Centered Design / Research

For a deeper dive on each of the above standards go here Standards Deep Dive.

Assessment Worksheet

The first step in this process is to have a good understanding of where an organization is. We created an Assessment worksheet to help document where an organization is in this journey here:

Open Source Assessment

Enablement Workshops/Hackathons

These workshops (in a perfect world) consist of 2 days of intensive training on skills followed by 3 days of applying what was learned to a real business problem. Please see the Logistics section for help on how to run and arrange spaces to have the events.

Note: This can be broken down into smaller sessions as it is sometimes difficult to get an entire week. The main goal is to have people apply the new skills they learned as soon as possible to something they are currently working on.

Workshops and Self Learning Links (Work in Progress)

Example Workshops Length Link (Blanks are Work in Progress)
APIs 2-3 hours Day in the Life Integration
Containers 1-2 hours Red Hat Scholars Containers
GitOps 1-2 hours ArgoCD Tutorial
FullStack on OpenShift 1-2 hours Getting Started with Full Stack
JavaScript on Openshift 2-3 hours JavaScript Starter Guide
Java on Openshift 2-3 hours Java Starter Guide
Kubernetes 2-3 hours Kubernetes by Example
.Net on Openshift 2-3 hours .Net Starter Guide
Python on Openshift 2-3 hours Python Starter Guide
Operators 3-4 hours Build an Operator
Refactoring .Net 3-4 hours Modernize .Net
Service Mesh (Isto) 1-2 hours Red Hat Scholars Isto
Source Code Management 1-2 hours Git 101
Tekton Pipelines 2-3 hours Tekton Pipelines Lab
Windows Containers 2-3 hours Windows containers quick start

Lint Code Base