I Didn't Build It

Back in late Feb when we were at OpenStack Rocky PTG Dublin, a question was raised to me by a friend that how did I transform myself from a developer to an architect like role, for example building the Cyborg project. Well I never thought myself in that regard due to the very answer fitted to the question:

I didn’t build it

I didn’t build it as a some kind of major architect who will envision the whole thing and put out a mandate to have people build a project exactly like I instructed. When Cyborg was conceived there was no code, only idea brainstorming.

This is still a general but huge misconception among the companies, including tier one players, that you gotta have an architect put an “awesome” design (which usually means finished product) out and the open source team hopefully manages to “sell” that to the community. For companies that are contributing to open source community and trying to monetize by building product upon it, this could not be more wrong.

Open Source Community Is About Whiteboxing The Architect Role

I think this is the key for people to truly understand the economics and the dynamics behind open source community developments. For the companies that find it hard to see how open source could help reduce their cost, they often forget they still try to design an inhouse prototype upfront and want the community to accept the whole deal based upon the reasoning set by probably the company’s MKT team, and while the prolonging persuasion falls apart, it has to struggle to make alignments with the inhouse design and the community version, thus the pain.

Well there is no painkiller unless you start to actively participate, have an active and open discussion and let the many great architects in the community crowd source the design with a consensus reaching mechanism.

Yes, of course I didn’t mean the architect role will go away. What I meant is that the single architect type-a personality will go away and the community architect team will take its place. Moreover, consensus reaching means defacto standard effect immediately (note: your customer is watching the community too). Just think about the time and money a company usually needs to invest to make its product a widely accepted and adopted industry standard.

The Value Is In The People

The rationale behind the “Whiteboxing Architect Role” is very simple: communities like OpenStack, got tons of brilliant developers that it makes no sense not to take advatange of that. When you have so many great minds in a single place, what you only need to do is present a valid case, and then let the discussion flow. Everything will follow through like magic. In OpenStack we have something called “four opens”: open design, open discussion, open development and open source. For people still can’t get their head around open source development, it means just vague meaningless words. But for people do get it, this is the core engine that will pump your open source machine which builds your product in a cost-effective manner.

The ultimate value, is not in the software design and the code implementation that somehow you could claim a patent on, but in the people. It is the least important thing to show a community how badass you as an individual could be. The most important lesson I learnt from the OpenStack community is that first you have a great team, then you have a great project built by this team, and then a great ecosystem which will bring both value to the community and the company you are working for.

So yes, I didn’t build Cyborg project by myself, I build it together with developers in the community. The only thing I try my best to do is to build an environment that could inspire people to bring forward great ideas, have great debates and discussions, and have people not worry about all the non-tech related matters.

One More Thing

For the first time I will run as a candidate for the OpenStack Technical Committee. It might be a long short given the amazing qualities of the other candidates, but more importantly I want to have a chance to work with a great team and build a great community together :)

If you are an active contributor in Pike and Queens release, please vote for me and other candidate that you would like to support. If you are not, you could also participate in the openstack-dev mailinglist [election] discussion or just have a chat on twitter :)