In the last three posts, I’ve spoken a bit about the salaries of WordPress developers, why they may be lower than traditional software developers, and some of the expectations that come with what a WordPress developer may be (depending on their role).
- A WordPress Developer Salary Should Be…?
- WordPress Developer Salary: Manage That Content
- Of Salaries and Software Development with WordPress
In the last post, I talked a bit about the responsibilities and expectations of a traditional software developer and how that may relate to WordPress. And earlier, I briefly talked about the terms a “developer” and an “implementer” both of which I think are applicable in the WordPress space.
But first, it’s worth noting that many WordPress developers are people who are building themes and/or plugins. At this point in WordPress’ history, people still aren’t seeing it as something that can be used to build web applications (let alone mobile applications) so it’s seen more as something that bloggers, frontend developers, and maybe some middle-ware developers are used to doing.
And all of that is correct – but there is more to it than what’s listed above.
The Roles of WordPress Developers
As mentioned, someone who works with WordPress may be someone who:
- Manages content or writes for a blog
- Creates themes or manages frontend work for an existing organization
- Writes plugins to create custom functionality for an existing organization (or for others to use)
At this point, hopefully it’s obviously that those aren’t the only roles that are possible when it comes to work with WordPress.
The Expectations For WordPress Developers
With that said, I think it’s worth taking a slightly deeper look at what each role requires and/or how it may be understood within the industry and with how it relates to WordPress.
If a person is capable of building a theme from the ground up by implementing, say, a set of PSDs, then I would assume they are familiar with the templating system, the template hierarchy, partials, and the template tags that go along with building a theme.
I would also assume a level of frontend development experience with all the usual languages, and some PHP experience – at least enough to work with the standard hooks in WordPress or to know where to look them up and how to take advantage of the documentation.
It’s not that churning out themes is mindless (no more than a person makes it, and those who care don’t make it so) – it’s that there’s a methodology to it. A pattern, even (because we all love patterns, right?).
There are some incredibly beautiful and even complex themes that are out there. Those aren’t built by people who don’t care about the work they do.
When it comes to plugins, I would assume a level of experience and knowledge that exists about the available WordPress hooks. I don’t assume a person to have memorized them all (I mean, maybe they should – if that’s the case, then I’m in trouble), but I do assume that they’ve an understanding of how it works, how to implement their own, how to remove those that exist, and how to take advantage of those that exist.
Furthermore, I also assume they’re familiar with the two ways of writing plugins (that is, procedural and object-oriented programming), and they know the tradeoffs that each offers.
For more advanced plugin developers, I would assume anything from a level of application-layer to the presentation-layer (so not “full stack” as they say – just “half stack” :), all the way to an understand of everything from the database upwards.
Plugins can be as simple as a few functions or as elaborate as a variety of classes, libraries, and various pieces working together to create the entire experience for the user. In fact, I’d argue that many plugins can be considered to be “apps for WordPress.”
That’s something for another post, I suppose.
If someone is capable of building applications with WordPress then I would assume they are familiar and even capable with everything that’s listed above, and more.
I think this person should have a solid understanding of classical software development, perhaps experience in another set of languages, tools, frameworks, and so on, and should also be able to think in terms of solving a problem in platform-agnostic terms and then being able to translate that solution into “the WordPress way,” or “the Rails way,” or “the .NET way,” and so on.
It’s about being able to architect and engineer solutions in terms of abstractions and then being to concretely implement them given a languages, foundation, or framework.
There Is Probably More
Obviously, this is more of a cursory look at some of the different types of developers or different types of roles that exist within WordPress – this isn’t meant to be some type of job description post listing the requirements for each role.
If anything, it’s meant to help shape the conversation around what the expectations of a WordPress developer are based on the type of work they’ll be doing. So I know there are things that aren’t covered and I know things aren’t as detailed as they could be, but this meant to be a start.
Besides, I’m interested in anything the rest of you have to add because you’ve likely more experience than I do especially as it relates to having to hire a variety of people or work with a large team of others in WordPress.