Community Driven Development

Team of developers all looking at a laptop

For many years in the Drupal community, I’ve found that my greatest pleasure is not in actually creating the next awesome feature (and, wow, we have some awesome features coming…) but in helping to mentor those who will in the future.

Image
This year's awesome contribution mentors. Image CC BY-ND 2.0 Paul Johnson

Being part of the team of mentors at DrupalCons for the last few years has been a wonderful experience and one that has really opened my eyes to the power of being at the heart of the community and working alongside great contributors. It enables learning in a way that watching videos, reading books, or attending training classes simply cannot.

Traditional methods of learning are important but participating in building Drupal itself adds so much context to our learning.

An opportunity in Cambridge

Recently, an opportunity came up that interested me a lot. Cambridge University Press & Assessment were looking for a seasoned Drupal developer to help grow the knowledge and capabilities of the in-house team as they deliver projects built on the platform. I could hardly say no!

As we have worked together over the last few months, and recently spent a couple of weeks with them in their office in Manila, I have had the opportunity to learn about the (technical) environment in which they work, their experiences, what works well and what we can improve upon.

They are an awesome team, with good PHP (and other) experience and a great appetite to learn. A challenge is that, for many of the team, the current project is the only Drupal project they have experience of and it is a complex one, trying to meet many very specific needs of the business. On a week to week basis, they only see this site and can only judge ways of working based upon what has been done so far on that site. They have also been somewhat disconnected from our awesome community, so don’t hear how other people are approaching problems they are facing.

FInally, a key issue we face is recruitment. It’s hard, really hard, to attract Drupal developers in The Philippines. I need to find ways to change this.

The change we need to make

So, how do we take this great team forward? How can we help them to gain knowledge of how the very best Drupal teams work, how they make the technical decisions they do, and how they get support when they don’t know the answers? How do I create a place where Drupal developers in The Philippines are knocking on our door asking to join us?

The Drupal community is (part of) the solution

There are now a whole bunch of things that we are doing to address the challenges above, and more will come in the months to follow. To begin with, some of these things were purely internal but done in a non-structured way, then we looked at how we could involve the wider Drupal community in that team development.

Make learning fun

The first thing I did is take the great Drupalize.me resource they already have access to and turn learning from it into a fun exercise - we have been holding semi-regular internal “Drupal trivia quizzes” based on specific sections of the Drupalize.me training materials. An people are competitive!

As someone whose team just won the most recent DrupalCon Europe Drupal Trivia Quiz, I think maybe some of the knowledge is stuck in our heads!

See simpler projects

We then had an opportunity due to business priorities for the team to be able to step away from the main project for a week or two. I took this opportunity to set them a task, in two teams, to build a whole site to a specification in only a week.

The specification was fairly simple: to create a site for logging the capture of Pokémon. I had heard that the whole team was obsessed with Pokémon (they call the sub teams Mario and Luigi, after all) so this went down really well!

I wouldn’t tell them how to organise themselves, how to check their work, anything. Leave it up to them.

It let them build without the challenges that come from long, complex projects. I could learn more about what they do well (a lot! The sites were amazing in the time they had) and what, specifically, we can work on for the future.

Image
A screenshot of the work the Luigi team managed in a week

Listening to the reasons they made the decisions they made, on the design, the coding, and the organisation, was fascinating and helped me to plan future learning.

Build their knowledge of the community

More recently, I have been able to visit the office in Manila for a couple of weeks and really spend time with the team. I knew that I wanted them to learn good practices from drupal contributions so we looked at two things: how the community does peer review and how members contribute to the project.

The team has an overall good process for code review but, currently, that’s all it does - review that the code has no likely bugs. It doesn’t take a wider view of whether the code is actually appropriate, is performant, or has documentation that will support the team in the future.

We spent a whole bunch of time looking at how Drupal core does exactly this, via the Drupal Core Gates and we are now developing our own “Cambridge Gates” along the same lines. It’s not just code, it’s thinking about the context that code lives in.

As it happens, we are also improving the tooling that we use to support that better review.

I also arranged for the whole team to create accounts on Drupal.org and join our newly created organisation there; Cambridge University Press & Assessment.

This meant I was then able to run something with the team that I’ve been hoping to run from day 1: a 1st Time Contributor’s Workshop and a Mentored Contribution Day. The whole team was able to see how the Drupal community contributed to the project and make their first steps into this world.

Whilst being the only mentor is less than ideal, we were able to have many of the team contribute small progress to many core issues and we were all delighted the other day to see that the most recent release of Drupal Core contains a fixed issue that was worked on by one of our team - a first for Cambridge. Nice work, Noel!!

As it happens, I believe a couple more issues are just a review away from being fixed, too.

They are learning how Drupal works by building Drupal itself, whilst getting feedback on the issues they work on from the very best developers in the community – there is no better way to learn.

Help them make connections

One of the most important things that we are arranging is getting the team, or at least half of it, to DrupalCon Singapore.

Our team will be at DrupalCon Singapore

Whilst being at DrupalCon is a great place to learn directly from the people who are building the tools we use every day, the “special sauce” is actually interacting with these people, spending time understanding how they approach issues etc.

Anyone who is a regular at DrupalCon will also tell you of the importance of the “corridor track” where simply spending time talking with everyone at DrupalCon helps you build up a network of people with similar interests. This is how we will grow our support network from twenty people working in relative isolation to twenty thousand across the world.

Actually, this is where you could help me. Whilst I can send nine of the team, I cannot attend myself so I can’t make all those vital introductions and get people talking so easily. I would LOVE to introduce you to my team members so, please, if you are attending DrupalCon Singapore, reach out and I’ll put you in touch remotely.

We will, of course, be looking to attend DrupalCon Asia wherever it appears each year. We see it as a vital component in building a good team.

Finally, every DrupalCon includes a Mentored Contribution Day. Our team there will all be attending to learn and interact with the very best. Honestly, I’m amazed that some people forget to include this day in their travel plans - it’s the day with the greatest value! If you go to DrupalCon, always include the Contribution Day!

Be vocal about our part in the community

I want us to be vocal about the way we are learning together, and the contributions we make to the project, as it:

  1. Helps strengthen the culture of learning
  2. Increases morale of team members
  3. Enables learning from the best in the community
  4. Creates opportunities for collaboration as we are not the only people facing the same challenges
  5. Helps us to be seen.

That last point, about being seen, really matters. Whilst it is certainly handy to be able to say you are part of the University of Cambridge when advertising roles that are available, being able to show how we are the very best place in The Philippines to grow your Drupal career is even better. I want us to be seen across the Drupal community as the key employer in the region because people come here to learn and grow. 

I’ll be encouraging the team to also write blog posts in the future. Where that will be, we will see. And, of course, I’ll be amplifying their voices all over.

We don’t just give up on traditional learning

Of course, all of this community driven development is great but it will be supplemented by more traditional ways of development. I’ve already mentioned the excellent Drupalize.me to which we have a subscription for all team members but we will run in-person training courses, provide books (obviously including Adam’s Drupal 10 Masterclass!), etc.

Comments1