Hi Guys,
I wrote out a list of fundamental skill requirements necessary in a "Drupal Programmer", on my way home on the Go Train yesterday. It's based on my experience of what small businesses actually need in the Drupal expert they are hoping to get in one consultant. I thought a list to guide them in their search might help them avoid the pitfalls in hiring under qualified, inexperienced, inexpensive, over-promise and under deliver "Web development Experts". I'm finding most small and medium sized businesses are hiring badly in their first two attempts. Then they learn from their negative experiences and better research the core skills needed. I thought I'd try to save them some of this agony in their quest for the perfect Drupal Programmer/Drupal consultant/everything person.
The blog post is here: http://www.drupalcreations.com/blog/drupal-programmer As usual, please improve the list with your comments, criticisms, and clarifications, either here or on the blog. Off-topic rants, one-up-man-ship, and self-promotion are welcome too. You gotta have fun somehow. :)

Comments
please post your content here
please stop using these groups to try to drive traffic to and comments on your blog, if you want to have a discussion here, post your content here. Also, since your content has nothing to do with NYC please stop posting it to our group. Thanks.
Rough day eric...?
Rough day eric...?
not really
I'm just much more interested in community and discussion than self-promotion. I've found that keeping things on topic is important to the long-term health of online communities.
Sorry what was the topic of
Sorry what was the topic of this post?
Planet?
Alternatively, get the blog listed on Drupal Planet and link to it.
I second this. See See:
I second this. See See: http://drupal.org/planet
re: Alternatively, get the blog listed on Drupal Planet and link to it.
I woke up this morning (I'm
I woke up this morning (I'm in China) and saw that unfortunately, my email box was filled with posts from this discussion.
I appreciate that you're trying to protect your group from spammers but do you (or other groups out here), have some sort of guidelines that people like me who are new to groups can read about this?
I think your response to this initial post shows that one needs to tread carefully in tDrupal groups. What if we did have a blog post that we thought was appropriate for a group discussion. Are we not allowed to share it because it's from another site?
I think some clarification is necessary here.
I concur. Post content here
I concur. Post content here -- though on the appropriate board, not random regional boards. And I know this isn't constructive, but, that website is atrocious. Poorly photoshopped stock photography. Broken CSS. Comic Sans. Really? Is this a troll? Even the Brock University site is half-broken and their two-color logo has clearly visible jpeg compression artifacts. Color me confused.
Talk about kicking someone
Talk about kicking someone while they're down...
If you know your comment wasn't going to be constructive, why make it?
Post removed from NYC
I removed this post from the NYC group - it doesn't seem to have anything to do with New York, and the original post and all responses were being sent to the 1500 members that are subscribed. @rmjackson - please feel free to reach out to me through my contact form if you believe it should be included in NYC.
http://www.thomasturnbull.com
http://twitter.com/thomasturnbull
Re: Post removed from NYC
Hi Guys,
Thanks for removing from NY group being that the consensus is the post is not useful.
I'll keep this in mind in the future, maybe post directly in more appropriate groups.
In case you're interested my rationale in posting the synopsis here, I've seen consulting related posts and thought some might be interested. It's a long-winded one, and I figured sending the whole thing via a post here might be too much. Those actually interested can go to the blog. That was why.
Appologies to those who found no value.
Robbie Jackson
www.drupalcreations.com
robbiejackson@drupalcreations.com
While, I think that some of
While, I think that some of the comments were overly harsh, I think the general point in the backlash that you are getting is that you must have cross-posted this to several Drupal groups, some of which may not have been 100% on topic.
I'm not a member of the NY group, but I'm a member of the High Performance group. I'm not sure either of those are the best place to post info about what skills a good Drupal developer/engineer should have.
Unfortunately, I don't have a better suggestion either.
Either way...have a nice day and happy Drupaling.
Symetrik Design
Drupal Consulting
http://www.symetrkdesign.com
Appreciate all the feedback
For the record, my only goal was to start a conversation about the necessary skills a small business should look for in a Drupal programmer. I included many groups because I've seen great information and comments from each. I assumed that we all have a vested interest in making sure customers are well served. This way as a group we all win.
I recognize that the subject matter is inflamatory, irritating and arrogant coming from someone with such a glaring conflict of interest. This is one of the reasons I left the post on my blog. Also i didnt feel that it was right to spam people with the whole article. I presented it as a synopsis in a light-hearted way to allow those interested to comment.
This being said, this conversation needs to be had, for the benefit of the little business person hoping that Drupal can be all it can be. I've seen a lot of opportunists pretending to be upstanding Drupalers, whose only intent is the fast cash. If you agree, speak up.
There are two comments on the blog leading me to believe that at least 2 have read it. :)
Robbie Jackson
www.drupalcreations.com
robbiejackson@drupalcreations.com
Thanks
I quite enjoyed the article. As a busy drupal project manager who doesn't understand every technical drupal in and out, I found it quite interesting, although I do work with a brilliant developer who meets most of the requirements, but doesn't understand project management or graphic design and I don't feel that he needs to.
Thanks for sharing!
See you at Drupalcon.
Dayna Manning
Motion Media
http://www.heartist.ca/2010/11/drupal-websites/
I checked your website link -
I checked your website link - some nice drupal work there!
Jason Graham
http://www.PolishYourImage.com
Your website link
I like the simple, effective way you presented your work for review. Kudos!
Warren
I think posting it to several
I think posting it to several groups looks like SPAM. I did assume your primary motivation was Back-linking, and it appears some others had a similar perception.
That said, I bookmarked your article for future reference. It reminded me of a list I came across a couple years ago (I regret not bookmarking it now) of Drupal developer interview questions.
But, I actually find this debate heartening and inspiring evidence that the Drupal community seems so stringently opposed to the kind of "me" attitude that IMO results in messes like Joomla. It's great.
Jason Graham
http://www.PolishYourImage.com
But in regards to the
But in regards to the article…
First off, requiring in-depth knowledge of Linux, Apache and MySQL is one I disagree with, one because it is literally very LAMP-specific - what about hosting on Solaris or BSD? What about PostGres or SQLite? What about Lighty or Nginx? Or what about the growing number of sites deploying Drupal on a Microsoft-based stack? Also, is the "Drupal programmer" you're looking to hire also going to be in charge of managing the servers and such? I did that in my first full-time Drupal gig at a small shop, but now I'm in a place here we have dedicated server manager guys who take care of all of this for us. And even in that smaller shop, we also had dedicated artists to do the graphic design part.
And search engine optimization? Ugh, don't get me started.
In short, this isn't a guide for hiring a Drupal programmer so much as it is a jack-of-all-trades. I suppose the latter may be more valuable for a very small shop, but you'll have an easier time finding a decent focused Drupal programmer, I think.
The Boise Drupal Guy!
Re: But in regards to the
Garret,
The point is that new CMS/Drupal customers want the most service for the least cost and commitment. They apply the usual business purchasing/hiring methods in finding a supplier or employee of Drupal services. More often than not, they hire badly. This is because they don't know what quality measures to include in their search, when qualifying whether or not the firm or individual actually know what they're doing.
You know as well as I do that splitting hairs over whether or not a customer chooses MySQL or PostgreSQL; CentOS or BSD is missing the point. We provide them with general areas in which to help guide the customer search. Then we trust that the qualified Drupal shops will consult them appropriately.
70% of the customers we serve at Drupal Creations have come to us, after having been burned by sub-standard Drupal developers, promising the moon and delivering core-hack solutions. By giving customers a checklist of the critical success variables in their entirety, hosting solutions included, we improve their chances of hiring right the first time.
If you re-read the article from this holistic point-of-view, I'm sure you'll have more comments focused on helping to educate our collective and communal Drupal user base.
After all, we do inherit these core-hack solutions from panicked customers, needing to unravel the mess.
Thanks very much for getting the conversation going again. I really believe this is important or I wouldn't be spending my Saturday trying to make sense on the Drupal Groups. I'd be out skiing.
PS Very cool site front page you have there at goingon.com Love the sleek look.
Robbie Jackson
www.drupalcreations.com
robbiejackson@drupalcreations.com
While your post really only
While your post really only belongs in a couple of the groups it was posted to, I read the blog entry and in general I agree with pretty much everything what you've said. I too inherit a lot of bad Drupal code written by people who called themselves Drupal experts but were really just "people who knew enough PHP to be dangerous". As everyone here knows, simply being comfortable with PHP is not enough to make you comfortable with the internal mechanics of Drupal. That's like thinking that the fact that you speak English qualifies you to converse in every English dialect, or to write beautiful poetry.
In fact I'd probably say that the size and complexity of the Drupal sites in the developer's portfolio is probably the single most important thing a prospective client could look at.
As for your terms, I think if you generalized your specifics (languages, platforms, dbs) a little more, or if you specifically mentioned some of the commonly-encountered alternative platforms (which could be done parenthetically or in a sidebar), you'd avoid looking so much like you're advertising your own particular skillset, or advocating your own personal preferences.
Re: While your post really only
Dear As if,
Great to hear the positive agreement. This conversation is getting more to the point the longer the thread gets.
The reason we should use specifics in the list is that there are preferred solutions in all the general areas. Much like the Linux community would recommend Open Office to someone looking for an Open Source word processing application, I believe we should present MySQL as the Drupal database of choice. It's the most commonly used mission critical solution. When a small business uses it, they're more likely to find a competent consultant at competitive prices. This applies to all other areas listed. If you feel that I've chosen poorly, please correct me. I'll change them. I don't think advising a customer to use Microsoft as their hosting platform is one that we should change, do you? If we generalize, or list commonly used alternative solutions in each area, the list becomes too confusing and consequently useless for the average business person.
It's not to say that customers must use all the listed solutions. After all, it's just an article posted on a blog. It's only to give them a starting point in their search.
Have a nice day,
Robbie Jackson
www.drupalcreations.com
robbiejackson@drupalcreations.com
rmjackson; Re-reading the
rmjackson;
Re-reading the intro to your article and your post above, I now see that I may have misinterpreted the audience of your article. You were writing for the benefit of those considering hiring a freelance Drupal developer, yes? In that case, I can understand the arguments in favor of looking for a well-rounded, jack-of-all-trades developer. I was under the impression you were writing for the benefit of someone in charge of hiring for a Drupal-based development house, in which case my argument that you'll have better luck hiring a straight-up developer and not worrying so much about the system administration stuff still stands.
Still, your endorsements of specific "brands" of software could be dangerous. If I'm consulting someone and I say, "We could host on Linux, but I'd prefer to use FreeBSD," or "With a site of your size, I think SQLite may be the best choice for the database" (and indeed, I do think SQLite will be a better choice than MySQL for at least the majority of the 50% least-trafficked Drupal sites out there, particularly when ease of configuration and data back-up are taken into account), it's not fair to me if they turn around and read your article and then think I don't know what I'm talking about.
Thanks for the props for the GoingOn site, though I personally haven't worked on it.
The Boise Drupal Guy!
Not even sure where to start regarding your list
To me it looks like what Garret said above. A random list of things that are needed for having a good understanding of a web site. To not be exhaustive here:
you: "Security knowledge is a must. If the files on your Linux host have the incorrect permissions or your php.ini file allows programs to be executed by the apache user, you can end up with all kinds of new and improved cracks from all over the world. Installing up to date Drupal patches, often times isn't enough. The whole host needs to be secure and your Drupal Programmer will need to know how to check that it is. Most hosting providers will not take ownership over the security issues related to Drupal. They'll even threaten cut off service, if the problem isn't fixed immediately. For this reason and many more, fundamental security knowledge is a must. Ask them if they've ever had a website compromised and how they went about fixing it? If the answer is yes, you know you're dealing with honesty and experience."
This is incomplete, vague, and mostly useless. I cannot grok any security checklist here. Perhaps it's my fault. But then:
you: "Apache is the Web Server of choice for most designers. There are others, but where Drupal is concerned Apache is the right choice. Knowing, at least, how to configure and restart the httpd is a must. Ask them if they're ever experienced the “Can't connect to local MySQL server” issue and how they fixed it. Google the answer. It's a common one related to either the MySQL configuration or the number of processes Apache allows."
What's the rationale for saying that Apache the one true and only? I can't read any evidence above for your assertion. Oh and by the way, Apache has nothing to do with databases, unless you use a module like
mod_auth_mysql, for example. That's strictly an application layer thing, even when you run Apache with mod_php.you: "MySQL knowledge is a must. While there are Drupal modules that can be used to compensate for a lack of phpMyAdmin knowledge, there is no substitute for a fundamental understanding of command line MySQL. All Drupal data is stored in the MySQL database. Being able to sign in and manipulate that data is something that's regularly needed. A condition common to older versions of Drupal is known as the white screen of death. The Drupal website just goes white. Depending on how crazy you get with contributed modules you might even encounter it in newer versions of Drupal. Rolling back to the most recent stable database is very often the fix. Doing this at the command line on a Linux host or through phpMyAdmin is the only way to fix it. There's no way around it. MySQL knowledge and experience is a core requirement in a Drupal Programmer. Ask your candidate what their experience is with MySQL, and research the accuracy of the answer."
This is wrong in so many ways. Let's see:
MySQL AB was bought by Sun, Sun was bought by Oracle. Now MySQL is effectively an Oracle product.
In my case as a free software user I'm wary of what Oracle might do with MySQL. I don't think they bought it to let it cannibalize their business in the overpriced "enterprise" space. Have you heard of MariaDB? AFAIK, drupal.org runs on it.
Regarding phpMyAdmin don't even get me started. Do you have any idea how many advisories it had in 2010? Chive is a much better and more secure alternative. Of course the most secure way to manage a DB is the console on the DB host.
Let's leave here. No use flogging a dead horse. Your post doesn't belong in High-Performance. There are plenty of groups around so that you can be quite specific in your targeting. There's a Consulting and Business group and I see that you posted there also. No wonder you got pushback from people. I can't help thinking that your post is a thinly disguised advertisement for your services. Perhaps I just have a dirty mind. It might be.
Re: Not even sure where to start
Perisio,
Clearly you are right about this location for this discussion. Based on the comments here, this is definitely the wrong venue. My appologies to those who've had their mailboxes filled. I'll cut and paste the above comment to the blog and respond accordingly. Any interested parties can continue to follow there.
Sincerely,
Robbie Jackson
www.drupalcreations.com
robbiejackson@drupalcreations.com