In an interview with TechRepublic, Dries Buytaeart said, "In some ways Drupal is a victim of its own success with demand for Drupal experts to build and support sites using the CMS currently outstripping supply. The biggest challenge that we have right now is scaling. The demand for Drupal is so high that we need more Drupal experts in the world."
As someone who manages and trains Drupal developers, I've been thinking why, with the current job shortage in the United States and abroad, the popularity of IT careers, and a good supply of Drupal training, how we could have such a shortage? We as a community continually feel an ongoing lack of seasoned experts, and it is, by some accounts hurting the growth and development of the Drupal project. So what exactly is the issue that we as a community can identify? And what can we do to improve things now so that the shortage is not an ongoing theme in the future of Drupal?
So my thoughts turned into inspiration, which led to some research and a few ideas I thought I would share, along with a bit of a call to action.
I’ve divided this blog post into a two-part series that covers what prompted this line of thinking, how and where I went for a few answers and perspective, and how we can perhaps harness the power of the Drupal Community to help solve the issues.
Since these posts may a bit of a long read, I figured I’d start off a tl;dr version; the Drupal community is doing a great job of ramping up training programs for people interested in learning Drupal, but experience with a group of interns, some digging online, and a quick survey to test my perceptions demonstrates that there’s clearly more work to be done with junior developer programs to provide valuable (and often necessary) work experience to get people up to the experienced developers level.
My First A-Ha Moment
As part of the Drupal Career Starter Program (DCSP), we took 18 skilled IT workers and spent 10 weeks (7 hours/week) teaching them the basics of Drupal site building. At the conclusion of the workshop session, we placed 15 of the students in internships with Drupal-related organizations around the country.
Now that some of the internships are coming to an end, we're seeing that a very small percentage of the interns are being offered full-time work by the organization that they interned with, and we're asking ourselves why. I believe that part of the issue was due to some lessons we learned since this was our first long-term training course, but it was also our first aha-moment that there’s is an important issue in the Drupal community that needs to be addressed: transitioning new developers to experienced developers.
Our 18 students were all recently laid-off workers from Kennedy Space Center. With the retirement of the space shuttle fleet, over 7,000 workers lost their jobs. A significant percentage of those were skilled IT workers, proficient in various platforms and languages, but very few of them with any working knowledge of Drupal or PHP. Through an application process, we selected 18 students (from 70 applicants).
As this was our first attempt at the DCSP, we were bound to make some mistakes - it is now our job to learn from them. Part of that learning process is to share our experience with the community. Clearly, we need to do better in a few key areas:
- Provide additional instruction on using version control systems (and how to utilize them to get a local version of a Drupal site up-and-running on a local machine under a variety of circumstances).
- Provide additional instruction on using Drush.
- Provide potential intern employers with additional structure and information about what would make for a good intern experience.
I could also add that we trusted the Microsoft Windows environment too much, as we were witness to numerous (seemingly random) issues in getting local sites up-and-running and behaving. Of our 18 students, 17 were on Windows, and much classroom and internship time was spent dealing with all the issues (I've since discovered Drupal Quickstart and am falling in love...)
All of these items are fixable by us and will be addressed in future editions of the DCSP.
The other issue is that the Drupal community has what I’m calling the "experience gap", where newly trained, but unexperienced developers are often left to fend for themselves.
Back in 2007, Dries Buytaert posted his take on the Drupal learning curve. This graphic has been referred to by many people in the Drupal community over the years since it was posted, so I'm going to borrow it to demonstrate my point.
Developers new to Drupal want to get to the "I kick ass" threshold. Once there, I'm assuming it is safe to say that these people can be considered experienced developers. For many new Drupal developers, the first step along the path is some sort of training. Whether it is self-taught, a <shamelessplug>commercial workshop</shamelessplug> (there are currently 12 commercial Drupal workshops listed on http://training.acquia.com/events alone), peer-based learning through meetups and camps, or any other form of training, more often than not, this is the beginning of the path. Let's call anyone at this beginning point "students".
I'm guessing that for the vast majority of new Drupal developers, the time they spend on the "student" portion of the path is self-financed. Granted, there are some organizations that will pay developers to learn Drupal, but I'm assuming it's a small percentage, but I don’t have any hard facts to base this one, so let me know how wrong (or right) I am in the comments below.
Tomorrow I’ll publish part two of this post with some insight that came out of Drupal jobs research, conclusions that came out of survey responses, as well as a few ideas on how we can all help close the gap.
If you're heading to DrupalCon Denver, there will be a Drupal Workforce Development Programs BoF at 1pm Wednesday.
Thanks to the following people for reviewing and providing input to this article: Ryan Price, Andrew Riley, Heather James, Jacob Singh, Chris Shattuck, Erich Ludwig, Don Vandemark, and Dave Terry.
"Mind the Gap" image from Pommiebastards http://www.flickr.com/photos/pommiebastards/4061144276/
Interesting write-up. Looking forward to part 2.
Agreed, the gap is huge between the items listed in the "I Suck" category and the "I Kick Ass" category. But I think there is a big difference between knowing the mechanics of how to build things in Drupal and knowing how to analyze a list of site requirements to understand the implications of one site architecture build path versus another. And I'm not sure how you go about teaching a sense of how to anticipate such problems with a potential site build plan like dead-ends, limiting structures, etc. Part of this is just experience, which means simply trudging through it. Sometimes, I try to impart site build philosophy nuggets to people new to Drupal. However, I am never surprised when a few weeks or months later they voice a problem they're having with a site and it's over something I tried to warn them about, but they simply didn't have the experience to understand what I was warning them about at the time--it makes sense when they go back and look at their notes, but by that time, it's already too late to have saved them. It seems that some things just require the heavy-handed lessons of experience.
Thanks for sharing your experience with DCSP. I imagine that it is hard for a business to hire Drupal devs with little experience on a full time basis with the US economy in the shape it's in. I think the real need is for experienced Drupal developers and that gap will take some time to fill.
It will be interesting to see where you go in part II, but one thing to consider is that the gap and resulting lack of experienced developers is a good thing (kinda sorta). If someone wants to get across that gap they need to be highly self-motivated, constantly teaching themselves new things, and constantly pushing themselves past their level of comfort. If you learn how to do those things and you reach that experienced developer level, then I want you to work on my team; If you can't learn those things, or get taught those things through a training course, I'm much less likely to consider you as a viable candidate.
@dalin I totally understand your point, but part of my argument is that we might be leaving some potentially talented developers behind by not providing enough structured (non-contracting/consulting) opportunities for gaining experience.
[...] part 1 of this post I shared how I got started on the line of thinking that we as a community are planting a lot of [...]
I really think that there should be another Threshold. I call it the "I Rock Threshold".
While I can use Custom Content Types and Views, work with Actions, Triggers, Rules and Workflows and have done some Tweaking modules, I do not yet have the chops of creating totally custom modules or contributing to core.
So while I may "Kick Ass", I am definitely not "Certified to Rock" at this point.