Throughout the last few posts, I’ve been talking a little bit about WordPress Developer Salaries, but have also done so by taking a look at exactly what it means to be a WordPress developer.

If you’re just catching up, the previous posts are:

  1. A WordPress Developer Salary Should Be…?
  2. WordPress Developer Salary: Manage That Content
  3. Of Salaries and Software Development with WordPress
  4. The Roles of WordPress Development

There have been a lot of awesome comments and I’ve enjoyed hearing the different perspectives and opinions that everyone has brought to each post. There’s one more aspect of WordPress development that I want to look at before ending the series.

I’ve already mentioned this throughout several of the previous articles (and it’s been bought up in the comments, as well), but I thought it’d be worth outlining it here not only to share my concrete opinions on the matter but hopefully as an attempt to provide a reference or even maybe some food for thought for those who are looking for WordPress-related jobs, and those who are looking to staff WordPress-related jobs.

Specifically, it’s about looking at the term “WordPress Developers” and trying to give an explanation as what that really means.

After all, we’ve already said that the term developer is overused to the point of having no meaning, right?

Types of WordPress Developers

A couple of years ago, I was talking about this very thing with a friend of mine who is someone who does great work with WordPress. The thing is, he isn’t a developer.

This does not change the fact that he’s put together some really good sites for other people. This also doesn’t mean that he’s a type of a programmer or developer – something he, himself, acknowledged (that is to say, I’m not the one saying “nice work, but you’re not a programmer” ;).

Professionally, he calls himself a title that he gave himself: An implementer. I thought that was a really great, creative, and honest title. It explains what he does, differentiates the idea from a programmer, and manages to set an expectation for others when they hire him.

That’s something we should all be after.

The Implementer

By our industry standards, most people would probably argue that he’s a developer, but if you’re truly looking for someone based on a set of skills, then there are qualifiers that exist – there are things that differentiate us from one another. This is not a good thing, this is not a bad thing – this is simply nature of the beast, so to speak.

So anyway, he considers himself an implementer because he’s relatively comfortable taking mocks and converting the designs into themes, and then using plugins to fill in the gaps of functionality that a site needs that he knows he can’t build.

I love that. He knows his strengths, he knows his weaknesses, the plays to the former, and he leverages the strength of others for the latter. And he does so with good results.

But how does this different from a programmer?

The Programmer

When you look at the skill set of a typical programmer, it’s much wider than that of an implementer. Again, this is a neutral thing – it’s not meant to be spiteful or disrespectful. Whereas implementers fill in their gaps with pre-existing solutions, programmers should not only be able to fill in the gaps with solutions that they derive, but should be able to think creatively about a problem such that they not only understand the business domain but that they are able to write tools, functions, and general code that solves said problem.

By this, I mean that where as implementers see, say, Custom Post Types as a way to create a new type of post, programmers may see them as a combination of a model and a view. It’s a shift in architectural perspective.

Where Does This Leave Us?

Perhaps a better of of explaining it at a general level is basically this: Given a problem to be solved with WordPress – either setting up a generic website or some type of CMS that collects emails of site visitors – programmers and implementers will approach this differently:

Implementers will most likely:

  • Select a theme from a reputable and trusted source
  • Customize the theme using artwork provided to them
  • Take advantage of some of the theme options to tweak the look and feel
  • Install a few plugins to improve the core functionality of the site
  • Perform the necessary feedback loops and iterate until ready
  • Launch between their local machine and production
  • …and probably a little more that I’m missing.

A programmer (well,  a good programmer), on the other hand, will likely do something more like this:

  • Partner with a designer to come up with some comps for a design
  • Get sign off on the client’s favorite design
  • Create a custom theme based off of the approved design
  • Identify the points of the theme that don’t have to do with presentation, but are necessary for the site and either use a premium plugin, a high-rated plugin, or build the functionality themselves
  • Maintain the work in source control tagging each iteration
  • Have deployments from development to staging, and staging to production
  • Perform the necessary feedback loops and iterate until ready
  • …and probably a little more that I’m missing.

There are even finer points to be discussed such as build tools, pre-processors, minification, and so on, but you should get the idea from the terms above the difference in how the types will approach the problem.

What’s arguably the most interesting is that from a business standpoint, it may look as if it’s a better business decision to hire an implementer. You can still get good work, probably faster, and cheaper. If you hire a programmer, the work will take longer, and be more expensive (after all, time is money, as they say).

And in some cases, that’s true and perfectly legit. I’m not here stating one is any better than the other.

But the difference lies in how the two types approach problem solving. Programmers – especially those with a computer science background – have been trained to approach problems from a general perspective and then work to use whatever tools are given to them in order to provide solutions.

This is not to ignore or disrespect some of the self-taught – some of the best programmers that I know are those who have trained themselves. They’re just that smart. Not all of us are so lucky :). But I digress.

Implementers on the other hand may be trained in a set of tools or applications (or they may be self-taught – it doesn’t matter), and know how to take advantage of all of them on a more advanced level. Perhaps they’ve been trained through a course, perhaps they’ve trained themselves. Whatever the case, they’re good at what they do.

So where does the difference really lie?

Personally, I think that it comes down to how the problem is approached, the business domain is understood, and how the ultimate solution is implemented.  There’s likely more rigidity that comes with implementers; whereas, programmers often have the ability to make things happen beyond what implementers are capable of, and have a different process for doing so.

Each role has its trade offs. What doesn’t, anyway?

Anyway, there’s more than could be said about each of these roles especially as it relates to personality types and how that can impact a business relationship, but that’s beyond the point of this series of posts.

For now, this is just the general survey of two types of ways to get things done with WordPress. Whatever you opt to choose largely depends on your budget and perhaps how flexible (or how “custom”) you want you solution to be.