Open source, community, development – talk at KubeCon
This week I’m attending the KubeCon conference in Seattle. The conference’s full name is KubeCon + CloudNativeCon North America 2018. I’m taking notes from some of the sessions I attend. Any mistakes in these notes are my own, and all credit goes to the presenters.
Craig McLuckie, one of the Kubernetes founders, talked about how the Kubernetes project approached the community at the start of the project, and how that approach has shaped the future and success of the project.
“If it can be open sourced, it should…”
If you want to build a widely-accepted infrastructure technology, it has to be open sourced.
Open community from the start
Open source is important, but just as important is open community. Craig talked about how well Docker succeeded with this philosophy of focusing on the community, and how the Kubernetes team decided to follow the same philosophy. At the beginning, the team didn’t know exactly how to do this, though they had some ideas. They spent a lot of time thinking about how to build a magic community. The Kubernetes team were fortunate in that the team “clicked” – they worked very well together.
RedHat, Google, CoreOS all brought a lot of DNA in an open manner. The original group didn’t try to hold on to power. They realised that this wouldn’t scale, and they created the structures that would enable them to step back. Craig sees this as remarkable – he hasn’t seen it anywhere else.
Code and design in the open
Ship early and iterate quickly. This is like presenting an open design philosophy in code. Don’t worry about losing secrets to competitors. Iterate quickly and share the design and results with your customers. Share the roadmap in the open too. Your competitors will work with you.
What is the role of the foundation, CNCF?
It’s vendor neutral, provides structure, creates resources. But there’s another critical function: the foundation is a referee. It creates an environment where the end users can watch the creators and report any problems. The End User Community represents the people who have to live with the decisions of the rest of the foundation.
Balancing the pros and cons of open source
Open sourcing a project brings you adoption and engagement, but has disadvantages too. You lose some control and velocity, and gain some operating overhead. It’s always a matter of weighing adoption on the one side against the vectors on the other side, particularly if you want to commercialise the product.
If you develop something in a closed environment and surprise people when you launch it, be aware that people may surprise you in turn. If you develop in the open, you get useful feedback.
Marketing a launch
Don’t you lose a promotion and advertising opportunity if you develop at a slow burn? Not necessarily. There’s an advantage to a long buildup of news too.
Practical tips on how to design in the open
This was a question from the audience.
A friend of Craig’s, Evan from Knative, contributed to these points. The Knative team started thinking about Knative about six months before making the announcement. They wanted something to show rather than coming in with an open slate and asking the highly-opinionated community for comments. The team thought about who they wanted to bring on board as partners. They came up with RedHat who had similar offerings in OpenShift and Cloud Foundry. For the first 5-6 months, most of the development was done by Google, although there were other contributors too.
Consider another example, Istio, who threw the gates open very early, and that slowed things down at the beginning.
For small projects, on the other hand, it’s unlikely you’ll be deluged with ideas and contributors. So in that case, it’s a good idea to talk about it in the open and engage interest.
Having a roadmap and knowing what you want to do is very important.
When in doubt, remember that it’s better to ask for forgiveness than for permission.
Conduct experiments. Try things in low volume first. Stop when something isn’t working.
Thanks to Craig for an interesting look at the philosophy of open source community.