My brother sent me this image of a steam turbine shipped from GE plant in Firenze (aka Nuovo Pignone) to a customer. It’s so cool to see massive, modern, mechanic equipment being shipped around the world with Brunelleschi’s masterpiece of Italian engineering in the background.
Updates from February, 2014 Toggle Comment Threads | Keyboard Shortcuts
The OpenStack Foundation has always tried to increase genders diversity in our community: we joined the Outreach Program for Women, established clear policies for our summits and in general we’ve been actively promoting good behavior across the board. A few weeks ago I realized that we were lacking of a decent way to track our progress in gender diversity in the OpenStack developer community and decided to improve the situation.
When Anne asked me for the number of women or non-male developers in OpenStack, I realized that we don’t have that number. When people register to become OpenStack developers they need to become members of OpenStack Foundation and have an account on Launchpad. Neither of them track gender information. The best number I had to offer was the t-shirt kind requested at our Summits. If you don’t measure it you can’t improve it, the saying goes. So we thought we need to offer the option for Foundation’s members to tell us their gender, if they want to. How do we ask for gender without being disrepectful to non-binary genders?
We did some research, discussed them on the bug and adapted the best practices to our case. We wanted to keep the choice short and not to offend anybody by leaving out options. An open entry form leads to hard to use data (people have very creative ways to spell just about anything), using pronouns would have made translations a nightmare. We need a way to restrict options so we can easily count them in the database so the binary options male/female were set first and ‘Prefer not to say’ was soon added as another option, since it’s really not mandatory to disclose that information. For non-binary genders using “Non-binary” sounded too geeky to me; using ‘other’ sounds weird, borderline offensive. We came to a consensus on my suggestion to have an open entry prefixed by “Let me tell you”. I liked this phrase because I feel like “Let me tell you” empowers the member to own their own gender definition. The new form is now live so you can now register or edit your OpenStack Member profile and add your gender (if you want to).
A few days ago, I asked 55 OpenStack developers why they decided to submit one patch to OpenStack and what prevented them from contributing more. The sample polled people who contributed only once in the past 12 months, looking for anecdotal evidence for what we can do to improve the life of the occasional contributor. To me, occasional contributors are as important as the core contributors to sustain the growth of OpenStack in the medium/long term. Since it’s possible that the community has already already hired the best candidates among Python developers and system operators, to sustain the growth of OpenStack we need to tap into the wider Python community and experts of large distributed systems coming from other languages (Java, for starters). Knowing what hurdles new contributors face when they first join OpenStack is a first step to make onboarding easier and multiple contributions more frequent.
People who replied are for the most parts users of OpenStack, that is developers and dev-ops people working on deployments of OpenStack for internal usage and system integrators who develop and deploy OpenStack for their customers. A third group of occasional contributors are developers of projects that use or are used by OpenStack, like Docker or Ceph.
The top reasons to submit a patch went from the practical convenience of having patches maintained upstream, to fixing bugs (discovered during a proof of concept or in more advanced phases of a deployment) or to add/fix funcionalities to better integrate OpenStack with other projects. Finally, people contribute patches for personal growth and to enrich resumes.
Why don’t they submit more? There are three main stumbling blocks. Legal hurdles delayed contributions, and even prevented (at least) one. The reasons for the delays range from NDAs with customers to incompatibility with corporate policies to release software under open source license and sign a Corporate Contributor License Agreement. Another group of reasons for the delay is the long time it takes for contributions to travel the review queue. The time it takes for patches to get in OpenStack repositories was mentioned more than once. Finally, the lack of simple issues to fix in the spare time: apparently the community fixes simple bugs too rapidly.
The results cannot be considered representative but they seem to confirm that legal hurdles and speed of the reviews are preventing more casual contributions. While there are already many discussions on how to improve reviewing times, changing the way we handle contributions legally requires a massive endeavour to change OpenStack Foundation’s bylaws. The fact that simple issues to fix are hard to find is new to me: it may indicate that there are lots of people joining the community fixing these ‘low hanging fruits’ or something else. I think more analysis is needed in this area.
No doubt that OpenStack is one of the largest open source development efforts existing at the moment, with Linux, Debian and few others. What can be improved to make the OpenStack community grow faster? How can we help new contributors become productive more rapidly?
Whatever dimension you look at, the growth of the OpenStack developers community is astonishing. I’ve looked at the reasons for this growth and I’ve identified four main causes summarized in my presentation at Linux Conf North America and Open World Forum in Paris last year:
- One clear mission to solve a hard problem
- One initial core team with strong motivation to solve that problem
- One team dedicated to recruiting new team members
- One clear path to onboard new members in the team
The first two points are pretty clear already and don’t seem to need much tweaking: those ain’t broken, so no need to fix’em. The other two are not broken either but they’re the kind of stuff you want to stay on top of because once you notice they’re broken, the cost to fix them will be higher. Recently I started to ask myself what margins of improvements there are in recruiting and onboarding new members in our communities.
I quickly realized that while we know a lot about the top contributors to OpenStack, we don’t know much about the ‘long tail’ of contributors. It’s fairly easy to understand why the people responsible for 80% of OpenStack code and documentation work on the project. But who are the occasional contributors and what are their motivations to join the community? I embarked on a quest to get to know this long tail in an effort to understand how we can improve recruiting and onboarding new developers.
After a conversation with Asheesh Laroia, of OpenHatch fame, I selected 55 random developers from the list of those who submitted a single change to the integrated OpenStack programs during the past 12 months. These people went through quite a huge chunk of trouble only to submit one single patch: besides learning enough of the quite complex OpenStack code, they had to sign the Individual CLA (maybe the Corporate CLA, too), learn about git review and the other tools, go through the code review process. I would expect that whoever goes through that process, does it with the intention to stick around. So I asked the sample two simple questions:
- What made you decide to submit a patch to OpenStack?
- What prevented you to submit more patches?
I’ll wait a few days for their answers and share more details. Feel free to answer the questions leaving a comment here, too.
Why people contribute to OpenStack | ][ stefano maffulli, stefano, Kevin Fox, and 1 other are discussing. Toggle Comments
I have noticed this morning another article/blog post mistakenly trying to extrapolate hard facts about a company’s involvement in OpenStack using one of the reporting tools built for the community. The reporter went to Stackalytics (but it could have gone to Activity Board, it would have been the same) to check if Oracle had made any contribution to the OpenStack codebase. That’s the wrong way to use these tools: numbers regarding companies contributing to OpenStack published daily cannot be trusted.
Both Stackalytics and Activity Board depend on data that is entered voluntarily by the contributors to OpenStack, therefore they cannot be trusted. Stackalytics has a mapping file in its repository that is kept up to date by developers themselves (those that know its existence). Activity Board pulls data straight from the OpenStack Foundation Members database: when you sign up as Member of the Foundation (a precondition to become a developer) you’re asked to enter data about who pays for your contribution. The bylaws of the Foundation also require that you keep that info up to date, but we know as a fact that few people log back in their member profile and even fewer update their affiliation. Therefore we know that the data about the affiliation in all reporting tools is not 100% reliable at any point in time. It’s good enough if you’re looking at the top contributing companies where the volumes are high enough to remain fairly valid despite small percentage errors. But when a reporter goes to check if a total newcomer to the community has submitted any code, that number is very likely to be wrong (and close to zero): the new developers may have not understood what the Affiliation field is and not filled it out (I see a lot of those on a weekly basis) and they’re very unlikely to know about the mapping file in git for Stackalytics.
The data that I trust most (but still not 100%, especially for ‘long tail’ contributors) are the reports published with Bitergia at release time: every OpenStack release we do a lot of manual cleanup of the data in the Foundation database, ask people to update their affiliation, normalize names of companies and circulate the report for comments before making them public. Still, those may contain errors which we track on Launchpad.
As far as I know the reporter didn’t ask the Foundation nor Oracle if anybody could point at actual commits done by Oracle employees and that’s what he should have done.
OpenStack prouds itself for being an open community and I’ve been the first proposer of having a public way to see the various activities inside the project, in real time and including the information about companies, not just individuals. I think we need to discuss how we can provide better data and avoid giving false illusion of precision to casual visitors to these sites.
I’ve always been an Ubuntu fan for the past 10 years since the distribution came out with the promise of a usable deskto, with a promise of openness, regular releases, great integration between different and separated projects, great vision for world dominance. I loved all of that and I loved the execution, including the latest evolution. I love HUD and how it uses screen real estate, allows me to be more effective at commanding window-based application without having to touch the mouse. I love most of Unity, the dash and the lenses although I don’t use most of it.
Lately I’ve gone from concerned fan to very sad: I’m considering switching to another distribution. What I don’t really like is the lack of investments from Canonical on productivity tools that we live for: an email client and a calendar client. I already ranted about the sad state of free software collaboration tools and unfortunately Canonical decided to invest time and energy in supporting not a desktop for productivity but as a gaming platform, a cloud operating system and a mobile system. Canonical is devoting its engineers to develop things I really don’t care about. All I wanted was a good, solid desktop operating system for my daily computing needs: email, calendar, web browsing, audio/video collaboration tools and a decent way to exchange ‘office’ documents with peopls stuck in 1998 way of producing content. Sadly Ubuntu is not going to provide that in the near future, it even backed out from offering the most basic tools like an email client and a calendar client.
When I look at the alternatives though, I am even more sad and want to cry. GNOME seems to be stupidly following all the things that Apple does, including the obvious mistakes like the broken behavior of ALT-TAB (I expect GNOME developers to invert the way we scroll pages any time now, because Apple did that with absolutely no logical reason). GNOME also lacks a modern email client, addressbook and calendar client, with Evolution being stuck in 1998. And spare me to mention KDE: great technology, just no decent UI for it.
I’m sure Ubuntu will look great in a couple of years on TVs, phones, clouds but all I wanted was my desktop and I fear that for the next couple of years I’ll be stuck with a broken one, being it Ubuntu or Fedora or something else.
Linux kernel community has long been considered the greatest of all the open source communities. Linus Torvalds and his team has set the ground for open source development, defined processes and tools adopted and shared by other successful projects. The Linux kernel mailing list with its public review of patches and git, the tool to manage the incredible flow of code among thousands of people in tens of different branches laid the ground for many other open source projects. Even OpenStack doesn’t get close to those number (although OpenStack is only a three years old toddler and the kernel is old enough to vote and drink.) Linus has built an incredible community and an impressive culture around it. A culture where technology rules everything and also profanity and insults are common. And the results are clear: it worked for Linux kernel.
This doesn’t mean that any community can live and prosper like the Linux kernel with the same culture of harsh criticisms, middle fingers or what Linus calls management by perkele. In fact, I think nobody else can afford managing open source communities the way Linus does. Torvalds can get away saying things like “trying to come up with some ‘code of conduct’ that says that people should be ‘respectful’ and ‘polite’ is just so much crap and bullshit”. I certainly can’t and chances are you can’t either.
Now if you ask me if Torvalds should change his attitude my answer is: no, he is what he is and he’s made what he’s made because (or despite, who cares: results matter) of what he is. Should his lieutenants be assholes too? Of course not, and that’s why the kernel is still one of the most successful open source projects out there.