Drupal Association CTO - Year 1

My first day as Chief Technology Officer for the Drupal Association was the 31st of March 2014. I like to joke that I started a day before April Fool's Day on purpose.

As the first CTO for the Drupal Association, I'd like to highlight a few of the lessons I've learned and the accomplishments of the Drupal.org Product and Engineering Team over the past year.

Learning

In my first week... I learned... and learned... and learned. Listening is an important skill for any leader, but it is never more important than when you are picking up the 13-year history of the website you are inheriting as your responsibility.

I have been actively building and managing teams that build with Drupal since the early days of Drupal 6. Even before beginning to use Drupal, I've been focused on growing product and engineering teams that build big complex sites. It excited me to get involved with Drupal, doing what I feel I do pretty well, at a whole new level. I felt I knew a lot about the software, but had a relatively shallow experience with the site that powers the community.

In that first week, I learned that I had an amazing team of four—two of which were new to the team themselves—to help me learn the ropes. I also learned that they were overworked, more than overbooked, and still recovering from the Drupal.org upgrade to Drupal 7 that occurred in the fall of 2013.

I learned that Drupal.org is not built solely on Drupal. It is an intricate combination of technologies of which Drupal is only a fraction of that whole. Drupal.org is over 16 websites, CDN services, Git repositories, some Python in interesting places, some Puppet and some Jenkins and so much more. The volunteers that built our infrastructure were—and continue to be—amazing. They also have very, very understanding employers.

I learned that the Drupal Association is a phenomenal group of professionals (16 when I started) that are truly committed to our open source community.

Expect the worst, but assume the best

In my second week, we bled—not literally, mind you. Heartbleed was my trial by fire. It was an excellent opportunity to meet key infrastructure and security team volunteers. They are an amazing group of professionals.

In that process of securing Drupal.org from a threat that was rocking the Internet, I found the mantra that would come to define how to look at a site the size and scale of Drupal.org. Expect the worst, but assume the best.

Whether it be security, spam, or regressions on deployment, the best way to make sure your site can respond is to expect the worst possible behavior by untrusted users. At the same time, we are an open source community that aspires to be inviting and to grow. We have to assume every new user of Drupal.org is a potential future Drupal contributor that wants to make us better. That is quite the dichotomy to operate within as a team of technologists.

Grow, grow, grow

I mentioned that when I started, I had a team of 4 in an organization of 16. The Drupal.org product and engineering team is now 11.5 members strong—and the association just hired its 34th employee. That is incredibly rapid growth for a small organization to go through in one year.

Over the past year, we have spent a lot of time setting or norms and forming our culture. As a developing team, we had to pick our tools for communication and project management. We implemented new processes for defining the priority of our work. We established patterns of communication to make sure we regularly involved in the community—working groups in particular—in our iterations of getting things done. We have also been an incredibly productive team for one forming so quickly.

Governance, communication and the community

Governance for Drupal.org was established in early 2013. When I started, a good portion of my first few months was figuring out how to integrate myself and the team I was building into the working groups.

These working groups had gone through a couple of years worth of ideation processes and had a strong communication focus with their work. What the working groups did not have was enough sustained volunteer contribution and support to build the tools they were identifying as a need. Additionally, they were in a tough place where they had the authority to make decisions, but they didn't necessarily have a way to make sure those decisions were implemented.

My goal since beginning this work was figuring out a way to get all the cool community ideas implemented faster. A the same time, it is also my role to figure out how to make Drupal.org and the tools and infrastructure our community funds through the Drupal Association sustainable. These tools have to help us grow our community and help increase the skills of the learners in our community that will one day become the experts in our community.

My team's biggest challenge is continuing to make our ecosystem better as fast as we can while letting the community know where we are focusing our energies and getting the community to get involved when they have the time and interest.

With the guidance of the working groups and the Drupal Association Board, we were able to establish a strategic roadmap that helps communicate what is coming next for Drupal.org.

Getting things done

So what have we done in the past year? While growing a team and building new norms and processes, we were able to accomplish quite a lot...

Support for semantic versioning

We updated Drupal.org processes to support semantic versioning. 8.0.0 here we come! This also means we will be able to have more frequent Drupal releases reducing the time between new versions—8.1.0, 8.2.0 on deck.

Better infrastructure and deployments

We improved page load times—doing this included changes such as CDN-fronting our infrastructure and upgrading hardware that was long overdue for a refresh. The infrastructure is amazing, but there are few volunteers that understand it enough to keep maintained at the level the community needs. We now have dedicated DevOps engineers that are making sure our technology stack is performant and stable.

There are over 400 behavior driven design (BDD) tests that now allow us to more confidently make deployments to Drupal.org.

And we make a lot of deployments to Drupal.org... about 68 a month to just Drupal.org customizations. (About 3 commits per month are volunteers with the balance made by staff.)

Credit for organizations that contribute

Recently, users were given the ability to attribute their comments in the issue queue to the organization that gave them the time to make the contribution (their employer) or paid for the contribution (a customer). That is a huge leap for our community. It is going to give us a path to tracking how Drupal core, contributed modules and themes are made possible by the awesome organizations that are using Drupal.

There is an excellent UI for maintainers to give credit to the users can commit, and we are expanding this to allow that credit to extend to the organizations involved.

Improved account creation and new user experience

We have done a huge amount of work making creating a new account easier for users—and harder for spammers. We made it much easier for a user to create their Drupal.org profile from a subsite. These were important steps toward better user profiles.

A label now appears beneath the user picture of new users for the first 90 days they are on Drupal.org to help us welcome them and get them involved.

Coming soon, users that have contributed significantly to Druapl.org will get the "community" role on Drupal.org will be able to confirm new users to make it easier for them to post. This will make it easier for sprint organizers to help us engage with new users

User profiles are getting better

User profile pictures have been implemented—which seems small, but it has a big impact in a comment thread. You now have a decent URL to hand out for your Drupal.org profile (e.g. drupal.org/u/joshuami). Mentor fields also show the pictures of mentors. We made it easier for us to synchronize data between Drupal.org subsites.

By moving our crediting system to issue comments—rather than just commits—we are expanding what the definition of "contribution" is for our community.

With better data about our contributors, we'll be able to better highlight how people are involved.

Launch of Drupal Jobs

In August of 2014, we launched Drupal Jobs to help connect Drupal employers with job seekers. It continues to grow and we are now up to over 1,000 job seekers. We average over 200 open positions per month on Drupal Jobs.

Responsive updates to Bluecheese (Drupal.org's theme)

As a special New Year's present to the awesome volunteers that helped add responsive elements to our theme, our team merged those changes to the Bluecheese theme making Drupal.org much easier to use on mobile devices.

Launching and maintaining 3 Drupal Cons sites and the new Drupal Events

DrupalCons Austin, Amsterdam and Latin America all had sites built on Drupal to launch, maintain and archive. DrupalCon Los Angeles is the first site on our new Drupal Events platform that is totally changing the way we approach our ticket and registration process. Also, this site will allow us to maintain a single living archive of all Con session presentations and profile data.

User research

Starting at DrupalCon Austin, working with user research coach Whitney Hess, the team interviewed more than 30 community members of all types. That research was turned into the research that made up our skills acquisition model for our new personas.

Content strategy

Forum One was selected to help us build out a new content model, site map and governance plan for Drupal.org.

Next steps

The summary above does not come close to covering all of the great work. The Drupal.org product and engineering team has an awesome roadmap planned for the coming months.

More profile improvements for users and organizations

New content model and governance from the content strategy work

Drupal.org style guide and design system

DrupalCI - next version of continuous integration testing for Drupal.org

Issue workflow improvements to make contributing and maintaining easier

Better search and discovery

Improved data to help find and select modules, themes and distrobutions