fromMarch 2012
Column:

The Farmischt Freelancer

A Bridge Too Far?
3

I had my ear pierced today. Ow! All right, I concede that on a scale of one-to-ten, the pain measured only two, two-point-five, but that moment when the burly employee in the Claire’s smock assaulted my earlobe with a nail gun, it did hurt.

BridgeThis theme is interwoven with my past...pain, that is, not burly Claire’s-smocked employees. I’ve stumbled when traversing joists in the attic, and in grabbing a rafter, came into contact with a bare light bulb and “melted” my arm; I had a horse rear up at the moment I was removing a wrap from his leg, dislocating my shoulder when his hoof introduced itself to my armpit; another dislocation—same shoulder—when landing in a handstand on the pavement after a short flight initiated by a car hitting me; and one more dislocation when colliding with another skier, both of us at high speed. I’ve also been stung by all types of flying insects possessing no sense of humor.

So I’m no stranger to various types and levels of pain; most of them resulted from performing an activity I pursued by choice. While in most of those cases, I had no idea that ultimately pain would be involved, I can’t say the same for choosing to get my ear harpooned.

I tried to find a moyel to do it, because they typically perform their work painlessly—as I recall. The first one I phoned laughed at me, and the second became incensed, mumbling something about how a wuss should be doing Joomla.

Why would someone choose a path along which pain is assured? There are several possible reasons, including fearlessness, senselessness, insanity, and belief in the destination being more important than the pain encountered along the way.

The activity of assured pain, which I want to talk about today, is the journey from being a Drupal 6 freelancer to one adept at Drupal 7 and beyond.

I studied and worked with Drupal for two years before I felt completely confident doing heavy lifting. Despite its elegance, or perhaps because of it, Drupal has a very large and complex architecture. There is sometimes only one way of doing something with Drupal, but many times there are several ways, some non-intuitive. When several ways, there are ways to do it that are better than others, and what makes one better than another can vary based on context and circumstances. See? Even a description of why it is complex is complex!

For someone newly come to Drupal 7, the learning curve is probably about the same as it would have been for Drupal 6. There is more to the architecture, and more functionality, but the architecture is more elegant and the documentation is better. There is a certain level of pain associated with absorbing it all and using it properly, but unless the learner is having a trial by fire, the pain is tolerable.

However...

Let’s look at a different situation, one that is recognizable to many. If you are a Drupal 6 developer and your clients all have Drupal 6 sites, you might be starting to sweat these days. Many installations have been waiting for the community modules to mature before considering a migration, and ‘migration’ is a key word, because there is no upgrade from Drupal 6 to Drupal 7. That maturity is here now, and people are going to migrate, because when Drupal 8 is released, it’s bye-bye to Drupal 6.

The point is that if you have been working heads down as a Drupal 6 developer, you’re already behind the curve. Learning Drupal 7 through and through when you are expert at Drupal 6 is much more difficult than coming into Drupal 7 as a newbie. I believe it’s more difficult because of the need to understand all the differences between the two. If I never had to look at another Drupal 6 site, then it would be much less of a problem, but working on both requires much more knowledge. New functionality is one thing, as are API changes, but there’s a massively large number of things that are simply (or not simply) done differently, and knowing what they are, let alone internalizing them, is painful.

Looking back at the possible reasons for undertaking an activity that assures pain, several would apply to why a Drupal 6 freelancer would want to undertake Drupal 7, especially if it has to be done on their own penny, but what is the alternative? You have been hired because of your Drupal 6 expertise. When Drupal 7 development or theming is required, you want to be the person being hired. You don’t want to be shelved because your knowledge has dead-ended. There are things listed in Figure 1 that you can do to lessen the pain in learning Drupal 7 and in advance of Drupal 8, so happy Drupaling!

A Few Ways to Stay Current

  • Attend Drupal Camp
  • Attend DrupalCon
  • Attend local user group meetings
  • Subscribe to Drupal mailing lists
  • Join Drupal groups on sites such as LinkedIn
  • Subscribe to Drupal 8 groups/lists. Discussions of what to do in D8 often are based on what is done currently in D7
  • Install Drupal 7 and step through it in a debugger
  • Use a diff tool to compare D6 and D7 versions of contributed modules

Comments

I agree with you the change from 6 to 7 can be tough, two awesome resources that have helped me are the pro drupal development 7 and drupal 7 module development books. I dont hear / read about them much but they've been invaluable resources to me. I also like to browse the drupal forum periodically to read what's tripping people up and how others are suggesting fixes / solutions...

I think it's a bit silly to focus on being a "Drupal [version]" developer. Drupal has long ago become a content management framework - a tool to build Content Management Systems - and any programmer should be able to jump back & fourth between versions with no more difficulty than jumping between versions of a different framework (CakePHP, CodeIgniter, Zend, etc.) or even different versions of PHP itself. Drupal's documentation is quite thorough, and while there are some significant API differences between different Drupal versions, competent programmers shouldn't have any difficulty switching between them. There's no need to become an 'expert' in a Drupal version; instead, developers should focus on becoming better *programmers*. API calls may deprecate, but skills carry over.

From the article: "Learning Drupal 7 through and through when you are expert at Drupal 6 is much more difficult than coming into Drupal 7 as a newbie."

Umm... excuse me?! This seems completely wrong to me - I'm sure most Drupal devs would agree that the longer you've been using Drupal, and the more versions you're familiar with, the easier becomes the learning curve with each new version. I've been developing with Drupal since the 4.5 days, and for me, the D6 to D7 jump was easier than many previous version jumps were.

Granted, there is always an unnecessarily high level of pain involved in learning a new version of Drupal, due to its continuing policy of changing any and all APIs between versions, and of zero backward-compatibility / zero deprecation process. However, after you've been around for a while, you start to absorb "The Drupal way", and understanding that is more important than knowing all the specific nuts-and-bolts of a given Drupal version.

Also, it's a given that the more years (and the more Drupal versions) of experience you have, the more employable you are in the Drupal industry - this is more important than whether or not you've already become an expert in the latest version, and employers assume (usually rightly so) that you'll get it under your belt soon enough and easily enough.