As well as supercharging our customers’ journeys to Cloud Native, Container Solutions’ engineers have a long association with open source software, contributing to a variety of projects, collaborating with the wider Cloud Native community, and giving something back to the movement where we have all learnt so much.
To help us facilitate this, we’ve recently formed an internal project called CS Labs. There are currently 9 projects being incubated under its auspices, covering many different areas of Cloud Native tech including Kubernetes operators, SDKs, examples, registries and more.
We want to make it as easy as possible for people, both inside and outside Container Solutions, to contribute to our projects. As contributors, we want the members of a project team to be autonomous and to have everything they need to make the project successful and make the right decisions at the right time. As you would expect, each project has an associated code of conduct—we’ve explored why this matters elsewhere on WTF.
However, we also wanted to go further by establishing a clear understanding of the goals and strategy of Container Solutions Labs. We hope that having a simple set of principles will provide a framework to inform the direction and decisions for each project. In creating these principles we wanted to ensure that everyone in the CS community had a voice that was heard and a role in guiding our future.
We ran a series of workshops to develop understanding and then created a set of guiding principles. We began by defining the strengths and weaknesses of the projects and what success could look like. We thought deeply about the future of our industry and our Chief Scientist captured these thoughts in his “10 Predictions for the Future of Computing”. We then thought about how we might succeed in these futures and found that the questions we were asking ourselves focused on 4 areas: Team, Business, Marketing and Community. Finally, we were ready to actually brainstorm our principles! We created a strong group of 8 principles and asked the whole CS community to rank them by importance. You can see the results in the graph below with the highest ranking on the left:
We found a great variance across the community; indeed, I gave the greatest importance to the principle that the community felt has the least value. Our analysis helped us to see that there are 3 principles that our community believes are most important for us:
- Upskilling is an essential feature of Labs—Engineers should get the opportunity to learn new skills as part of Labs projects. This includes technical skills (eg learning a new framework or language) and soft skills like leadership and communication, which can be hard to gain as a junior on client projects.
- Ideation and evaluation of projects must include industry trends and problems seen at clients—We should be developing projects that reflect what we do and what we think the future will be (so maybe don’t build that CMS). Do focus on those areas where our customer projects make us deep experts and consider the future.
- Labs is a brand ambassador for Container Solutions—For some people, especially engineers, it will be their first exposure to the Container Solutions brand. It’s important to remember our projects directly represent the company. Candidates may join CS on the strength of our Labs division and clients may hear about CS or be drawn to CS due to our Labs projects.
These three will therefore be the principles that we will turn our focus on first. We will dig into what they mean for Container Solutions by asking questions such as:
- Do our OS projects currently meet these principles?
- Can we think of ways in which we can move closer to the principles? What would this mean for Container Solutions?
- Are the principles in tension with other principles or goals at Container Solutions?
- How can we ensure that our projects adhere to the principles?
Our first workshops to answer these questions followed the strategy process from Tribal Leadership. We used the principles above as outcomes, detailed the assets that we can use to achieve these outcomes and then decided on the behaviours that we need to realise our principles:
1. Increasing Public Visibility
a. Make projects easy to access
b. Collaborate with Marketing to create a brand and supporting plan
c. Create lots of content: blogs, presentations, hackathons etc
d. Find synergies with client work
2. Developing Skills
a. Excellent onboarding—internal and external
b. Training and development of soft and tech skills
c. Collaborate with Container Solutions Academy
d. Collaborate with Marketing to train presentation skills
e. Opportunities to work with others: mob and pair programming, beach team etc
3. Clear Goals and Milestones
a. Active project maintainership
b. Roadmapping and measurements
4. Enable Experimentation and Exploration
a. Ideate clearly for projects
5. Explore financial support options
We aim to make Labs an effective and respected unit within Container Solutions and beyond. As well as improving our own staff skills and satisfaction, we want Labs to play a positive role in the wider Cloud Native community. We hope that by both sharing the goals themselves and our process for arriving at them publicly we can provide something that might be interesting and useful to the wider community. We would also, of course, welcome your feedback on them to, and will continue to share updates as the work progresses.