Drupal skills and roles

June 29, 2012 - 6:11pm -- John Locke

There's a huge range of skills that come to mind when somebody asks for a web developer, and when you start looking for Drupal developers, it gets even more complicated.

Drupal developer, module developer, back end developer, what does that mean?

Here's how we break down the skill sets into roles:

* Site Builder/Architect: responsible for architecting the information on the site, deciding what goes in a content type vs a vocabulary vs a new entity type, etc. At entry level, this is building fields, views, permissions, etc.
* Front-end/themer: responsible for taking a design, picking a base theme, implementing the CSS/HTML/templates, considering mobile/responsive design, building sprites, etc.
* Back-end/module developer: Creates custom modules as necessary, creates integrations with other systems, handles data import, spends a lot of time in the debugger tracking down the source of bugs. Also more advanced Javascript/browser work, form API, etc.
* System Administrator/performance engineer: handles deployment issues, performance and scaling issues, profiling, configuration management.

We see a fair amount of overlap between these roles, but when I'm hiring, I'm looking to find somebody who can become a strong resource for the rest of the team in one of these areas. They do all seem to come with quite distinct personalities.

We're a small enough team that we encourage learning the other roles, but each of these areas has a leader who defines our shop standards in that area.

Graphic Design is separate from front-end/theming, and typically our clients provide that.

Testing/QA could probably be another role -- but we're making that part of everybody's job description for the time being, to create test cases relevant to their areas (and then actually doing the testing is turning out to be a great way to train people new to Drupal in what can be done with it, where to find things, and generally the Drupal way...)

Each of these roles also has a growth/development path. We start out with people who have some basic skills in at least one area, but there's always a ton of things for each role to learn to really master that role.

For example:

* Site Builder: starts with content types, taxonomy, views, and planning URL structures. Mid-level - features, views arguments, ubercart/commerce, simple rules, context. Advanced: Panels, rules, workflow, Maestro, messaging/notifications, SOLR, etc.
* Themer: basic: HTML, CSS, grid-based designs. Midlevel: Sprites, responsive design, video/media. Advanced: UI/interaction design, animations, Facebook apps, custom widgets, mobile
* Back-end: basic: Form API, Database API, Schema API, ability to debug, custom filters. Midlevel: Bulk node operations, data synchronization, Rules components, views handlers, Services, drush scripting. Advanced: node.js, dojo toolkit widgets/AMD, query altering, core development
* System admin: basic: Linux shell, server management, drush, git, mysql/mariadb, apache/postfix, ec2/Cloud Servers, DNS, firewall rules, DOS mitigation, backup management. Midlevel: database indexing, slow queries (explain select), multi-server deployments, database replication, load balancing, disaster recovery planning, PCI compliance, monitoring setups. Advanced: diagnose hacked sites/servers, High availability setups, security planning, offline self-contained appliances, penetration testing, memcached/varnish, CDN setups, HIPAA documentation

At least, that's how our current team is organized, and a partial list of the kinds of things each person does.

The main site building role in Drupal needs no PHP or programming knowledge whatsoever, and can get quite a lot done. Our back-end developers don't need CSS knowledge. Our front-end developers can get by with rudimentary PHP skills, as long as their CSS is strong. Finding a person who can do everything above well is probably not going to happen.

But as a team, we can be strong across the board, and get as technical as we need to to solve the problem.

How can we help solve your problem? Drop us a line or leave a comment below!

(Most of this post I originally wrote for a discussion on groups.drupal.org, here.)

Industry: 
Story Type: 

Comments

Very good Tutorial. Thanks for that. A session at DrupalCon Munich about putting classes (almost) everywhere would be amazing. Hope I'll see you there :)

Add new comment

  1. If you are a user of business software and are interested in finding out more about open source options for your business or office, you may be a little bit frustrated about the lack of introductory-level information on this topic... The best single source of such information that I have found so far is John Locke's "Open Source Solutions for Small Business Problems." It provides an excellent introduction to the concepts, advantages, and disadvantages behind open-source.

    Julius Walczynski
    Sourcio user review

Need More Freelock?

About Freelock

We are located in Pioneer Square, in downtown Seattle. 83 Columbia Street #401 Seattle, WA 98104  USA [P] 206.577.0540 Contact Us/Directions | Site Map Get Updates ©1995-2014 Freelock Computing