Hiring Drupal professionals, part 1: Know what you need
(This is the first installment of a multipart series.)
As a Drupal trainer and consultant, I've been getting a lot of phone calls lately either asking if I have trainees to recommend or else hoping that the "consultant" in my job title is a synonym for developer. (It's not: I'm the kind of consultant who helps you figure out what to do rather than the kind that does it for you.) People are having a really hard time finding experienced Drupallers to hire.
At the same time, I've become aware of more and more Drupal projects that went horribly awry because the freelancer or shop hired, though perfectly good PHP coders, didn't really know or understand Drupal. (In just in the last few months, I've personally had not one but two clients who were site-rescue refugees from the same freelancer!)
Unfortunately, the increasing popularity of Drupal can add up to a double whammy for those trying to hire Drupal help. Not only is there a shortage of experienced Drupallers, but there is an increasing number of inexperienced Drupallers offering their services. And these difficulties are compounded by the fact that many of those seeking to hire, quite naturally, don't know very much about Drupal.
So how do you find good Drupallers so your project actually gets the power, flexibility, and ease of use for content creators/managers that led you chose Drupal in the first place?
The first step is to ask for the right thing. There are different kinds of Drupal professionals and most clients and companies seeking to hire Drupallers don't understand or ask for the kind they need.
Besides end users, there are three broad categories of Drupallers: themers, site builders, and module developers. Of these, only module developers actually need to be PHP ninjas
Themers are responsible for the site's graphic design, which in Drupal is independent from the site structure and content. A Drupal site's entire visual design can be completely changed with literally just a couple mouse clicks. (For a demonstration of the independence of content and theme, visit Drupal Gardens —note how the content remains constant as you change from theme to theme.)
Themers come in two flavors: those who customize existing themes (subthemers) & those who create entirely new themes. Only the latter need significant PHP skills, but even then, graphic design and CSS mastery are much more important. For subthemers, PHP doesn't hurt, but isn't vital; often only custom CSS is needed.
Site builders put together the site's structure —the data types, displays, menus, navigation, entry forms, access control, administration, and other functionality for the site's content.
Site builders have even less need for mad PHP skills. Much more important is information architecture, usability, accessibility, and the like. Very complex, feature-rich Drupal sites can be built using only existing core and contributed modules. Indeed, while having familiarity with PHP can help, you actively do not want someone whose first instinct is to code to solve problems. For Drupal, custom PHP should be the last resort, not the first. Re-coding the wheel defeats the purpose and advantage of using Drupal!
If custom PHP is needed for a site —that is, if there is some functionality needed that can't be achieved using existing contributed modules— then it should go in a custom module, which is where module developers come in.
For module developers, of course, PHP is a must. But to be a good module developer, you also need to have good site building skills; you need to understand and appreciate The Drupal Way and also have mastery not just of PHP, but of the Drupal API (and certain contributed module APIs).
I should clarify that there aren't impenetrable divides between these three broad groups. Many themers are also site builders, many site builders are also at least subthemers, etc. and naturally there are various specializations that overlap or even fall somewhat outside these broad three, such as performance optimizers who get into server configuration, etc.
Unfortunately, clients and companies new to Drupal rarely know much about Drupal beyond that it is a CMS based on PHP and databases. So they understandably, but detrimentally, focus on the PHP bit, advertise for "Drupal developers", and emphasize PHP skills in their criteria.
But in a labor market where any kind of experienced Drupaller is in short supply and where there are more good site builders than good module developers, advertising for module developers (which is effectively what advertising for a "Drupal developer" with PHP skills is) when what you need is a good site builder is not the best recipe for success. Good site builders know when to bring in a themer or module developer, but trying to hire a module developer before you even know if you actually need one just frustrates everyone.
Worse, remember those decent PHP coders who don't really know Drupal? They tend to be attracted to "Drupal developer" positions that emphasize PHP skills, too. And that's how sites end up with custom PHP code that is not only totally unnecessary but located in the wrong place (e.g., hacked core/contributed modules or everything in a single theme page.tpl.php file instead of in a custom module where it belongs) and an unsustainable site that doesn't work properly.
You're much more likely to be successful finding and hiring a good Drupal professional if you know what kind you need and ask for it by name. If you're new to Drupal, start by looking for a "Drupal site builder" and emphasize Drupal knowledge and web best practices, not PHP skills. If you already have a site builder but need a graphics professional for your visual design, look for a "Drupal themer" and emphasize graphic design and CSS skills as well as Drupal theming knowledge. If you already have a site builder but determined that existing modules can't do what you need, then it's time to look for a "Drupal module developer" (not just a "Drupal developer") and emphasize Drupal module development knowledge, especially Drupal core and contributed module APIs and best practices.
So, you're advertising/searching for the kind of Drupaller you need, now what? How can you know if you've found them? See the next installment in this series: Hiring Drupal professionals, part 2: Know who they are
[Added 5 Jun 2012] Especially for larger projects, a more expansive discussion of the different roles involved in creating (Drupal) websites can be found in Randall Knutson's great blog post Why Web Development is Like Building a House over at LevelTen. (Just make sure to translate their use of "Developer" to "Site builder"!)
Comments
Right on target!
Sharon, as a struggling Drupaller, I would like to point out one more skill that a successful Drupaller needs to at least have access to.
I fall into the site builder category. And I have built a number of successful sites on my laptop — mockups just waiting to be deployed and populated with their respective spectrums of users, each in an appropriate role. But the snag for me has always been getting the site deployed. Each ISP seems to offer different support and have different constraints. For someone who is not familiar with the various methods of allocating memory and controlling security, and perhaps others, that are crucial to deploying a complex website, the seemingly simple step of getting the site to operate once deployed to the ISP can pose a frustrating barrier. It's like playing a video game where, not only do you not know the point of the game, but also you can't even see the screen!
Fortunately, only one of these sites was work for a client. It was pro bono work, but, still, you want to be able to do your best to meet their needs. Otherwise, why even get involved? And it's frustrating when your best is so nearly, but not quite, enough to help the client have a website that works for them instead of their current electronic billboard.
I have sought help. Several folks with the client wouldn't help because they didn't do Drupal. One Drupaller told me that the problem I was having didn't exist. (Well it sure did for me.) And I couldn't get the ISP's support line to understand that the problem I was having had nothing to do with my configuration of Drupal (which was outside the scope of their support), but merely with some kind of access permissions on their server. (And, yes, I had set the htaccess settings to what they were supposed to be, but the server still balked.)
Perhaps that is what you meant by "access control," but I view that type of access control as being a completely different beast from access control within Drupal. I can handle Drupal administration. I can handle Drupal's permissions. But I haven't yet figured out something about the way access is controlled on Web servers, and it seems to snag me at the most inopportune times.
Getting past that obstacle might have simply taken the right person looking over my shoulder (in person or virtually). And that person probably wouldn't have needed to have known a thing about how Drupal works. I'm pretty sure I had that covered.
Hosting issues
Yes, good point. I agree that a site builder also needs to know something about how to choose a hosting service and troubleshoot getting Drupal to work on a hosted server. Unfortunately, sometimes the answer is that a particular hosting service just won't work with Drupal (hence Choosing a hosting service for Drupal sites!)
On a practical note, when you just can't get an already-developed Drupal site working when moved to a hosted server, there are a few things I would try:
(By the way, i, too, consider these hosting isues something different from "access control", by which I do mean controlling access to the site's content and in-Drupal administration.)
Well...
First thing, I really don't want to hear of a shortage of Drupallers until the hiring companies stop demanding on-site presence. A recruiter once said that the better Drupallers all work from home. Keep in mind, too, that we are not migrant workers; we don't want to move every three months. If your city doesn't have a lot of Drupal work, then there is no incentive for us to move.
I'll keep saying it, stop asking for someone with 4+ years of experience with Drupal. I know people who claim more than 5 years and I wouldn't hire them on a bet. I contributed my first two modules in my first year and by then was one in the top ten handbook contributers with countless forum posts helping others. (No, I'm not trying to toot my own horn.) What you need is someone who has made an effort to learn Drupal, so it is a good idea to ask their Drupal.org userid (if they don't have one, skip to the next person). The hiring company has to do some work; and one good place to start is DO. If the company doesn't want to know anything about Drupal, then hire someone to do the basic research; it will save you money in the long run. Even relative newbies can do that.
If you're hiring a development company, request names and IDs at proposal time so you can check out all the participants (you might also catch sub-contracting). And, no this is not an uncommon practice; the government always does it.
Unfortunately "site-rescues" are apparently not uncommon, especially for smaller companies (and individuals). There aren't many bargains out there; you get what you pay for. However, that doesn't necessarily mean that a $180 per hour person is three times as good as a $60 per hour one. But if you're not willing to pay at least $50 per hour (for a US person), I dare say you will be the next "rescue." But billing rate is not necessarily an indicator of quality work either.
Themers/Subthemers: There are very few sites that really need a completely new theme. Drupal offers a number of starter themes from which a perfectly good site theme may be quickly developed. However, there is another specialty that may also fall into this category, or be separate: that is the Designer. An alternative to hiring someone in this role is to contract with a company that specializes in design (most good designers are terrible at site building and vice versa). Just look for one that understands Drupal design. If you take this route, you may not need a real themer.
Be aware that some site builders without any PHP skills may also be prone to seek non-coding solutions when they are not the best idea. For example there are a lot of things that Views can do, but they are not always best done in Views because of the overhead.
A good module developer should also have CSS skills, thereby possibly being able to substitute for a [sub]themer on smaller projects (say, under $100K). But not all module developers actually code as their first instinct. And most did start out as "site builders."
Lastly, on larger projects, you definitely need a project manage. As far as I know, no one has yet published a decent Drupal methodolgy, so look for one who knows at least a little about Drupal.
Good advice
Thank you, you make a lot of excellent points!
Assuming that by "designer" you mean graphic designer, I agree with everything you say (well, except for the shortage thing — but then, the companies calling me aren't insisting on on-site presence).
In particular, it is very worth emphasizing that a good site builder will know when to call in a themer and/or module developer.
Likewise, I absolutely agree that good module developers do not code as their first instinct. Indeed, just as some site builders also theme and vice versa, some module developers also work as site builders and/or themers. As I note in my post, module developers "also need to have good site building skills" —whether they currently work as site builders or not. This is part of why there are more good site builders than good module developers.
The reason why you don't want to advertise to hire a module developer (or, worse, "Drupal developer" emphasizing PHP skills) when what you need is a site builder is not because all module developers code as their first instinct; indeed, as said, good module developers —by definition— do not code first. They will tell you when you don't need a custom module but instead can use existing ones.
The problems with advertising for a module developer when what you need is a site builder are:
In addition to the above, the problem with advertising for a "Drupal developer" and emphasizing PHP skills is that it will also attract more PHP coders who don't really know Drupal and so are neither good site builders nor good module developers. At best this wastes your time, at worst it costs you money with nothing to show for it but a broken site that needs rescuing.
More...
The designer may, and probably will, do some graphic design. But their primary job is the site's "branding." One of their main tasks is to specify how the theme looks and acts as the user navigates through the site. Then the themer (who may also do this role) makes sure that the site LOOKS like that. However, the builder and/or developer may also have to supply other funtionality to make it function that way.
An example is http://blogs.forrester.com. The Marketing department designed the look of the site - the branding. I then created a theme (using Zen as a base). But if you watch, for example, the heading as you go deeper into the site, you will see that parts of the header require knowledge of context, which required custom code. I don't think the Context module existed when the site was started, or I would have considered learning it. The block configurations also needed more context sensitivity than is available in core Drupal.
For the most part I would classify myself as a developer, but my project management background, I hope, also makes me a good builder. And, while I can do it, you will probably never hear me describe myself as a themer. I also think that design requires an artistic temperment and that is largely contrary to a functionality temperment. If you visited my apartment, you would know instantly that I am far more the latter.
Another Link in the Chain
Sharon, thank you for a well written topical discussion "Hiring Drupal professionals, part 1: Know what you need"
Your thread is applicable to all aspects of this industry (and every other) not only Drupal. Poor service quality is detrimental to every service based industry. The explosion of so called professionals offering totally unrealistic undercut rates is something every reputable provider has to overcome. These chancers give an impression that an entire industry is run by fly by nights (we only have to consider the auto service industry). to me, price is never the deciding factor - I neither look for talent basd on prce, nor compete on a price basis. As an example, the pre-press repro services Graphicline provides are offered at 'our rate' which are among the highest in our local market (South Africa). This does mean we do not get every job we quote on, however we have a high retention rate of SATISFIED clients who know that our finished work can be relied on, and carries a guarantee of quality. As the owner of a relatively new small business, peers have often criticised me for not being more price competitive. I would rather take an extra couple of years to build the business based on superior service, than make a quick buck by providing cheap low quality work to the masses.
I would like to add another category to those you mentioned e.g. Themers, Site Builders, Module Developers - which is the one I fall into: Oversight Manager: I choose this term in preference to Project Manager as it better describes my outlook. (I own and manage a small company with interests in publishing, DTP and web advertising) My business is primarily geared towards in-house products, rather than providing clients with a service, although this, especially dtp, does form part of our activity, and remuneration)
I am a newcomer to Drupal, which I have found an absorbing and interesting platform. My main reason for getting involved with the application is to gain a fairly in-depth knowledge and understanding of how the system works, to be in a position to understand what is going on 'under the hood'. I do not see myself, at least not for some time, undertaking site building for clients, however my company will in all likelihood offer this service to customers at some point down the line.
Back to my reasons: I have a couple of medium to long term projects in early development stages requiring 'major site' functionality (Multiple groups of different user roles, and so on), and the sites will be built drawing on skills from several specialised areas of Drupl expertise, such as 'Site Builders', 'Themers' and more than likely a 'Module Developer' to integrate a CRM system. I have an ironclad policy of 'Total Oversight' which carries through to every aspect of my businesses activities. In this regard I require myself to know what my sub-contractors or service providers are doing and the language they are speaking. For example, I do not need to know how to build a module for a specific task, but I do need to know, when I look at e.g. the php files, what the code means.
Perhaps this outlook is more than most business unit managers would expect of themselves, SADLY, as this lack of oversight is something I come across everyday among peers. Perhaps I am lucky in having a technical background (in RF design) and an abiding interest in technology, along with an ability to absorb and understand such things.
To this extent, I require myself to be able to create a 'mock up' of the sites I will require to have built. I do not expect the final site builders to fix or debug my rough and ready efforts, but to start afresh. The only way I will gain the knowledge I require is to actually build a few sites, break them and fix them (You know the process, I am sure), and in the first month - yes, it's only been 3 weeks since installing a desktop development platform, have already discovered a few pitfalls, and have managed to fix a few mistakes made. One of these is live' 'under-construction' as a subsite on my domain. Eventually, after many changes and mistakes, it will become a 'client zone', and a source of information; and will be entirely my own efforts. once this client zone is working with the features required, I will feel I have sufficient knowledge to be able to provide the oversight for the bigger projects to come, to create the work specification, and direct the projects effectively. Until I have this minimum level of understanding, my company will not be able to offer Drupal system building via associate contributors.
Back to your site: This is one I have bookmarked, and would like to use to refer anyone looking to have a site system built in Drupal, to read before they hire 'an expert'
I must also mention your posting in the thread "Drupal Horror Stories" regarding fixing a broken site. Last year I was approached by the owner of a company (I had sold my share of this same company the year before) to fix their website. I had originally built this site in HTML; by the time I left, it was due a major rebuild. The new owner had hired a so-called .asp 'experten' based I can only assume on 'lowest quoted price' to undertake the facelift, and failed to deliver - leaving a severely broken site. One look at what had been done was enough to tell me the only practical way to 'fix' it, was to start afresh, and provided a flexible ESTIMATE (no way was I going to provide a hard quote in this instance) based on consultation with the appropriate associate, which was definitely not 'lowest possible price'. No, my estimate was not accepted, and the company had a broken site for another 6 months. I am sure the customers paying to advertise on this site were not too happy. My successor in that business may well have better skills in sales and PR than I do (definitely), but does not have the oversight to know when a tech-head is not 'up to scratch'.
I look forward to reading future articles on this site
Mike
Besides themers, site builders, and module developers there are
porters - those who port an existing site, to Drupal. This includes those who are just upgrading from D6 to D7 for instance. We had a lot of trouble going from D5 to D6 and are now going from D6 to D7 (way too slowly). There are just two of us and a sophisticated site with thousands of pages. One of us know theming well enough to have gotten the theme working. But just following the update instruction is far from sufficient. We have had to search the forums for fixes to modules, even core, that have not been applied yet. Currently we are looking at changes on D6 to aid getting to D7, then the update, then many changes in D7 before we can go live because too many things are still broken.
This is the problem we also
This is the problem we also have, people who don't know much about drupal try to be drupal developers. When outsourcing something don't hire someone if he hasn't at least 5 perfect drupal website, otherwise you will have a site that is full of hacks.
Re
I've been working for a long time with freelancing Drupal developers. For the last project wich was a e-commerce website we decided to work with a specialized development company. I can say the experience was much better. The feedback was better received and they made fewer errors during the project...
drupal development is becoming more popular
Actually i am very glad Drupal is ahead any cms (personally for me). I have worked on Wordpress some times ago, but it is for those projects that needs to be developed very quickly, but dirty. Drupal will take a bit longer but will give you quality.
About this topic
This is really a great post about the drupal professional hiring. I really appriciate !
From:
happymonk.co
I just aware that site
I just aware that site buitder is amazing, Maybe just like you, at first I didn't have a darn clue about how to build a website, nevermind write half a line of code if our life depended on it! I wanted to build a website to start a side business or just for fun like this http://www.watchonline.red is a full movie site, this is a site where you can eatch full movie, i buit it just for fund
developers
I don't think most employers are aware of all the categories.