Last week I gave a talk about onboarding the next generation of Drupal engineers at DrupalCon Europe in Lille. This is one of the top priorities for the Drupal community right now, which was also recently highlighted by the Drupal Association. In this blog post, I’ll recap and break down the main points from my talk, which you can also watch here.
Credit to Bram Driesen for the photo
Junior Drupal developer – now vs. in the past
Let me start with a bit of my personal background. I’m the development director at Agiledrop, having first come into contact with Drupal some time around 2010 when I was working for a company that was switching from a proprietary CMS to Drupal. I made my drupal.org account in 2012 and made my first contribution in 2016.
Now let me introduce our engineer Admir who joined Agiledrop in July of 2023, went through our highly refined Drupal Onboarding project, and is now already making contributions to Drupal, with currently 22 issue credits on drupal.org, his first one being in September.
If we compare my learning journey with Admir’s, I was:
Self-taught
Producing low-quality output during my first projects
Learning a lot from my mistakes
Attending Drupal events to expand my knowledge
Only starting to apply best practices after several projects
Learning the hard way alongside the work I was doing for a living
In contrast, Admir:
Has a dedicated mentor
Is able to learn Drupal specifics & best practices from experienced developers
Is able to take time during his daily work to learn & contribute
Is versed in & adopting best practices from day one
Just looking at this it is immediately obvious how valuable dedicated mentorship and onboarding can be in launching the next generation of Drupal developers and helping them to quickly get involved with the project and its community.
Problems that PHP & Drupal have today
One of the biggest obstacles to attracting new generations of developers to Drupal is the unfavorable perception of PHP and Drupal.
PHP is not exactly the hype of today, and many developers consequently fall for the myth of PHP being “dead”, which is further perpetuated due to many old PHP-based projects on poor codebases being kept alive and giving the language a bad reputation.
On top of that, jobs in more “niche” languages such as Rust and Go tend to come with higher salaries, and the problems the code solves there tends to be of higher value.
This makes these languages more attractive to newer developers, who ignore the steep learning curve and the experience in older, more traditional languages (such as PHP) required to become proficient and provide real business value in those niche languages, where value per developer is also higher in startups and product companies compared to agencies and IT services firms.
With Drupal, the entry to the technology has become harder, and versions 8+ requires more knowledge such as using Composer, OOP, etc. It’s become more geared towards the enterprise and is as such much less suitable for hobby projects. In addition, a lot of new frameworks such as Laravel are providing a great experience for developers.
So, what can Drupal companies do to overcome these obstacles and make Drupal/PHP more attractive to younger generations?
What Drupal shops can do
The key thing for agencies is to commit to promoting Drupal and teaching people how to use it; it’s not enough to just post a job ad for a PHP/Drupal developer. You need to actively look for people who are still exploring their interests and impress them.
Step 1: Find people that can become great developers
Mainly look for junior/mid-level developers who are exhibiting talent & are fast learners
Organize workshops & local meetups
Be active in local universities and other educational institutions
This is something that pretty much all agencies are able to do locally. And, to re-emphasize: prioritize finding newcomers rather than developer rockstars.
Step 2: Inject your required skills and experiences directly into their veins, fast
Actively mentor developers & teach them best practices and industry standards
Provide adequate help on their first project(s)
Teach soft skills alongside hard skills to help developers become more independent
As a company, contribute a custom module or take over the maintenance of an existing one to make it easier for developers to start contributing.
All of these are key steps in Agiledrop’s Drupal Onboarding project which we have refined over the years to better suit any type of developer.
Step 3: Make this a process that runs like clockwork all the time
Make workshops, meetups and university presentations regular
Block the time of your seniors for reviewing and helping juniors
Build & nurture a company culture where everyone is encouraged to help
Find effective ways to give praise & reward the team members who help a lot
Mentor new mentors
Results
At Agiledrop, we’ve successfully integrated this process into the core of our company culture, and we just keep streamlining it as we learn over the years. Here are some of the top highlights that this dedication has yielded:
Over the past seven years, we’ve hired more than a 100 developers
At our peak, we had 6 people going through the Onboarding project at the same time
Since 2017, we’ve organized 22 external Drupal workshops
We started a more advanced PHP Masterclass workshop
We’ve hosted and organized several Drupal, PHP, Laravel and other open-source meetups in our offices
We were active & present at other events, such as the local JobFair for University students
Conclusion
By employing the three steps outlined above, you’ll greatly minimize the most typical challenges for new developers and provide them a great employee & developer experience from day one. I hope my session and this blog post give you a better idea of how to approach and how to streamline your onboarding process.
For anyone looking to learn more or having any other questions, you can find me on social media (@boshtian) or reach out to Agiledrop directly for anything specific. I wish you lots of success in all your future Drupal onboarding initiatives!
Posted by Bostjan on 23 Oct 2023 in Drupal,Development,Community