I felt like working in a niche until November 2011. I did not believe there was anyone else beyond me in my local area who's seriously using Drupal. But — it was on my walk to the grocery store when two strangers suddenly crossed the street, bumped into me and said "Dude, are you sun from drupal.org?"

How wrong I was. I started my local user group shortly after, in November 2011. Out of fucking nowhere, 12+ people attended the first meeting! With a huge interest in Drupal and fostering a local user group.

Meanwhile, the Drupal User Group Karlsruhe is close to its 1st anniversary. And, we've adopted the DrupalCon spirit recently: We are meeting once a month. We're meeting in a different location each time. The location is different, just like our members are. We want to learn about new things. And the location shouldn't be excluded.

We want to share and exchange knowledge, about Drupal and the world. But how?

The cause.

We originally started to organize our meetings in a Facebook group, via Doodle events, and groups.drupal.org. Plenty of organizational overhead and problems with that:

  • Facebook groups, even though "public", are only public within Facebook, but cannot be accessed nor found from the outside world. Many people understandably do not want to sign up due to data privacy concerns, and have other good reasons to stay away from it. Inaccessible, in terms of accessibility.
  • Doodle events are not found anywhere to begin with.
  • groups.drupal.org has groups and events. But not even long-term users are able to figure out how to use the site in a way that allows to locate and distill the events of actual interest. How are new users supposed to do that then? But nevermind, ~80% of my group members didn't have a drupal.org user account in the first place! (geez, what? — Effin' register now if you're using Drupal but don't have one yet!)

Conclusion: We need our own web site.

We need to be found on the net. And in search results. We need to make it trivial for interested people to join. We need our own mechanisms to figure out the next meeting location. We are our own local Drupal sub-community. We need to feel home, and we need a way to communicate with each other. This matters.

There's excellent shit for that. — But wait.


What's the problem?


How many things can we attack by asking the right questions?

  1. A concrete use-case.

    Jeff Eaton preached it all over again at DrupalCons and camps all over the world. Dries Buytaert repetitively stated it in keynotes. And even Drupal usability team leads Roy Scholten and Bojhan Somers want it: Installation profiles and distributions.

    Tailored to a specific use-case.

    Since Drupal 5 in 2007, the installation profile functionality in Drupal core was heavily improved. Given these improvements, the community tried hard to reach consensus on the fact that profiles and distros are a good thing.

    Years of discussions later. Under the working title Snowman [also: "Onramp"], a concrete scope and use-case for an installation profile to be shipped with Drupal core was developed:

    Small groups collaborating on a project who want to tell the world about it... and convince others to join in.

    A solid and focused use-case.

    Given that, the Drupal community dived into shitloads of discussions on which functionality would be required in core that doesn't exist yet. And we looked into potential consumers and adopters for that use-case. For example, the global Occupy movement.

    Missing the obvious. Not realizing that we have the identical and perfect match of a use-case within the Drupal community ourselves:

    Hundreds of local Drupal User Groups all around the world have a SHARED INTEREST!

    We want to communicate with each other and the world about Drupal, and our interest is to on-board new people into our local groups. Transferring and sharing knowledge. Taking Drupal to the next level.

    Is there any better incentive to work on Drupal?

  2. Missing Drupal resources.

    You hear the same story. Shuffle. Repeat: Some contributors find their way to contributed projects, but have no idea and are scared of Drupal core. People are not able to find skilled Drupal service providers — they're swamped with work already. And companies that are relying on Drupal and employing people don't manage to increase their skills.

    Dries depicted the Drupal Learning Curve in 2007. I revised that into the Real Drupal Learning Curve later — showing the giant gap between people who stay in custom code forever and those who make the massive leap of contributing to Drupal core.

    Once you take that path, your skills drastically improve. On all levels.

    Hundreds of local Drupal User Groups all around the world have PLENTY OF PEOPLE.

    Did you know that even a single Drupal core patch makes a significant difference on your resume?

  3. Mentor Drupal talent.

    Did you ever consider to contribute to Drupal? Did you ever consider to help someone to contribute to Drupal? Did you know that there are thousands of people who are only seeking for some minimal guidance?

    Have you been inspired, influenced, or brought into Drupal by someone else? People who explained stuff to you, but actually didn't have any reason to waste their time with you? And did you learn something new?

    As of today, you are able to give credit your mentors in your drupal.org user profile. Use it!

    Truth is: You weren't in the position you are today, if there wouldn't have been others from who you've learned. That applies to you, me, and everyone else.

    It only takes the effect of a fucking dead pixel on your screen to understand the impact of a single link in the chain. Let's pretend the one who taught you about Drupal was that pixel — you'd be excited about his/her exceptional behavior compared to all others, but would you give a shit?

    But what if you were that dead pixel, the dead link in the chain?

    You are.

    And you can give a shit. But you can also start to make a difference. Whatever know-how you gained and have, you can truly pay it forward. You can ask yourself where to start. But did you know?

    Hundreds of local Drupal User Groups all around the world have a SHITLOAD OF TALENT!

    Stop fucking ask yourself where to start. Go to your local user group (or initiate one). Grab yourself some attendees and mentor them in contributing to Drupal. Pay it forward.

    They'll be excited to learn about what's going on with Drupal and how they can contribute to Drupal. Bridging the gap? Totally no better way to do that.

    If you need more support, there's an entire Drupal Core Mentoring effort to support you. A true guide for new contributors to find appropriate tasks for their skill level, with a shittonne of stunning results!

    Help them to contribute to Drupal. So they are going to educate, help, and train others to become better, in turn!

  4. Sanity testing.

    Drupal 5 was the last release that was deployed on drupal.org during development. Gone are the times in which we ate our own dog food before releasing the fancy new shit — determining bugs and revealing nonsense early — when things can still be changed, before publicly releasing to the masses.

    Today, drupal.org is driven by 100+ contributed modules. There's no way to keep that code in sync with the daily API changes that are happening for Drupal core.

    But real world testing is important. Most of us don't have an incentive to use the latest and greatest code. We're missing an essential feedback mechanism to learn about mistakes early. We need qualified feedback from people. Before it is too late. Guess what?

    Hundreds of local Drupal User Groups all around the world can TEST!

    We can restore true production site testing and the lack of that feedback mechanism.

    Whose sites would be better suited than those of local Drupal User Groups? What kind of fancy functionality do you have on there that couldn't be restored within minutes on a fresh site? All we need and all we should need for that use-case is Drupal core... [rewind and circle back into the above]

    (And if all fails, what other data than the user accounts do you really need?)

    Rumors are, some Drupal hosting providers will happily hand your local user group one of their managed full stack environments if you decide to contribute to Drupal core in this way, so your group doesn't have to deal with infrastructure/devops shit and can focus on contributing!
    [Providers: Feel free to state your offer and how to apply in comments!]

  5. Focus on user needs.

    Some initiatives are driving some major architectural changes for Drupal 8 in dedicated working groups. Exciting! Everyone of us is on fucking steroids to get those done! But.

    There are almost no new features that make a difference for users.

    Check. A Wysiwyg editor in core, native inline/in-place editing, user profiles, E-mail fields, Link fields, Date fields, a Token UI, a post-module installation guide, native SMTP support, and whatsoeverfucking nonsense, check.

    There's a lot that needs to be done. And for the most part, there's even agreement that it should be done. But everyone's swamped already!

    This is where you and your local Drupal User Group come in. You have the real needs. You are able to shift the focus, onto features that none of the usual suspects has time to work on.

    Hundreds of local Drupal User Groups all around the world can MAKE THAT SHIT HAPPEN.

The solution.

Attend your local Drupal User Group meetings. Don't tell me you can't. Don't tell me you're above that level. Don't fucking tell me anything. Attend them! :)

Explain to everyone how awesome it is to change the system while we can. Tell them how adjusting it for their needs makes their lives so much fucking easier.

Build your local Drupal User Group web site on Drupal 8. Don't be scared. Take the challenge, learn and help to create something new with others!

  1. Help to build the Snowman installation profile for Drupal 8, for your very own user group.
  2. Attract new Drupal people by just appearing in your local user group.
  3. Solve the Drupal talent problem by mentoring someone (or two)!
  4. Ensure Drupal 8 works, by testing it live.
  5. Make Drupal awesome by solving actual user problems.

You can contribute on so many levels. Don't make the mistake that it was about coding only. There's usability, design, project management/coordination (pushing shit forward), front-end/JS/CSS, manual testing, performance testing, and tons of other areas!

What you get. For free:

  • Native HTML5 output.
    (a.k.a. html5 and html5_tools in core)
  • A new configuration system.
    (a.k.a. Configuration staging [and a bit of Features] in core)
  • A new RESTful HTTP router system?
    (a.k.a. Services in core)
  • A fully multilingual and translatable system?
    (a.k.a. i18n and Entity translation in core)
  • A native layout, page building, and blocks system?
    (a.k.a. Beans, Panels and Page manager in core)
  • Views in core?
    (a.k.a. Views in core)

And after explaining all that fancy new shit to others ;) ...you'll notice how you're suddenly right in the middle of mentoring someone in how to contribute to Drupal.

Do it. Pay it forward.

"You", in all of the above, means you.


Brilliant, and beautifully said.

Thank you.

I got distracted by all the fucking swearing.

I am in the process of learning to contribute to core and i feel very ashamed by the low number of contributors shown ont he HP. I would love to help others enjoy the feeling when the patch is finally commited :).

This post is the great final kick to help me do it. THANKS.

BTW i tried to start some discussion about the snowman here : http://groups.drupal.org/node/253078.

thanks for the inspiration. I hope to start contributing to core soon.


Thanks again, for all your efforts. I always find your posts eminently sensible, in spite of you sounding like a fucking sailor home on shore leave. ;-)

I think I'll start on the West Midlands DUG site using D8 right now, as I'm on holiday and can at least get started and get darthsteven to help.

Well done, Daniel!

All the best,

aka siliconmeadow on d.o