Last week, I published my thoughts on Software Craftsmanship and WordPress. For what it’s worth, that particular post was one that I’d been thinking about for quite some time, I just never took the time to sit down and actually draft my thoughts on it.

The post resulted in a short, but interesting discussion both in the comments and on Twitter, but one comment in particular really got me thinking more about the topic.

Seeing the terms “WordPress” and “software craftsmanship” in the same sentence makes me LMAO. I just downloaded 3.5.1 to see if it was as bad as I remember. It’s worse. I remain convinced that WordPress was developed wholly by monkeys randomly hitting keys on a keyboard.

The point of this post is not to go back and forth on whether or not the author is correct in his statements. Instead, the comment got me thinking about craftsmanship in the context of the work we do on top of pre-existing systems regardless of the language, platform, and/or framework that you’re using.

Specifically, it got me thinking more about quality WordPress products and projects and whether or not form follows foundation.

A Foundation For Web Application Development

First, I’ve shared my opinions in numerous posts on using WordPress as a foundation for web application development:

I reference these for those of you who are stumbling across this article, who are just getting into building applications with WordPress, and to provide a little bit of background as to the amount of time I’ve spent thinking and writing about this.

In retrospect, perhaps it’s too much time ;).

Anyway, back on topic.

One of the great things about WordPress is that it’s built by people all over the world thanks to the nature of open source. But the point of this post isn’t to offend or defend the actual quality of the code of the WordPress application.

Instead, it’s more about the quality of products that are built on WordPress. I recognize that, with any platform, it’s easy to argue about the quality or lack thereof of products built on top it.

You can make a statement, do a quick Google search to pull up results to back up the claim, and then have your case. But come on: finding a handful of poorly built products doesn’t do anything build a case against the products that exist of high quality.

Simply acknowledging that negatives exist without acknowledging the positives isn’t an argument.

Foundations May Influence, But They Don’t Define

But it comes down to this: The foundation on which something is built doesn’t always negate the quality of things built on top of it.

Whether or not WordPress has a low-quality codebase does nothing to deter other developers (or myself) from writing clean, well-organized, readable, and maintainable code that also effectively and elegantly solves a problem for someone.

Furthermore, there’s always going to be work to be done on software. Sure, we can do a number of things from the project outset to make sure we engineer a solution the best that we can, but the deeper we get into solving the problem using code, the more likely it is that we’re going to find that we’ll need to refine, refactor, and re-organize some of the components of the application.

If this wasn’t true, we wouldn’t have half the strategies, design patterns, refactoring techniques, and testing tools that we have.

Ultimately, the quality of foundations and frameworks are one thing, and though we should work to make sure we’re building those with the highest level of quality possible, the same is true for building products – including quality WordPress products.

It’s just that the foundations on which we’re building our products don’t fully dictate the quality of code that we’re writing on top of it.