Barry Hughes Interview

Barry Hughes is a Scottish WordPress developer, based in in Canada. Barry was kind enough to answer some questions about himself and his work.

Hello Barry. Thank you for doing this interview. Please start by telling a little about yourself.

Well, I’m a very, very happily married father of two who is lucky enough to spend most days writing code and drinking coffee. I live on Vancouver Island on Canada’s Pacific coast – but actually I hail from Scotland and I continue to confuse people here daily with my accent.

At the moment I’m pretty wrapped up in WordPress. I make sites using WordPress, maintain and repair sites that use WordPress, create plugins, support other people’s plugins and generally have a great time. Outside of software and WordPress I like to go running over the hills with my dogs.

I’ve been an independent developer for around 6 years and before that I served in the armed forces – but my love of dabbling with computers and seeing how software works pre-dates all of that and goes back to being a small boy with an old Amstrad CPC home computer. That was fun.

What made you look in to WordPress and when?

When I was starting out in this business I barely even considered static HTML sites as a viable option. The benefit and draw of database-driven content management systems was and is too considerable.

Of course, when you’re starting out it’s hard to tell which CMS is “best”. And I still see a huge amount of discussion out there about just that topic: which CMS is best? Is Joomla or Drupal faster? Can WordPress be used as a CMS or is it just a blogging platform? Even now the same stuff is being chewed over.

So anyway, all those years ago I was reading these comparison articles and testing things out for myself. I knew I wanted one of the popular CMSs running on the PHP/MySQL stack and my experience was simply that I could go from flash to bang a lot faster with WordPress than I could with, say, Joomla or Drupal.

I dabbled with Drupal and ModX in particular for a while (before ModX Revolution really got going) and even completed some projects with both of those – but for a variety of reasons both seemed to confuse my clients more than was the case with WordPress and both I found to be a little more restrictive for the client if they wanted to go off and manage things by themselves. Giving the client free reign is a double-edged sword, of course, but it’s also a good selling point.

You joined the Shopp team (a well-known WordPress E-Commerce shop plugin) in June 2012. How has that experience been for you so far?

Yes – and actually I was working with Ingenesis, the company behind Shopp, before that as a member of the support team. Right now I’m a volunteer so the amount of time I can spend on it ebbs and flows, but it’s been a great experience.

On the support team there was no shortage of opportunities to troubleshoot and work hands-on with a huge variety of different hosting environments and WordPress installations, each quite unique. That alone has been massively useful. On the development team, it’s been fantastic to have a chance to work directly with project lead Jonathan Davis and to kick ideas around with him – and just to engage with the community at large.

E-commerce is a quite gigantic field and no software package I know of covers every aspect – so being a part of the Shopp ecosphere has also been great from my perspective as an independent developer: I am regularly approached about building bespoke customizations or extensions where the core plugin itself doesn’t provide coverage, which can throw up lots of interesting and unique challenges.

Are you working on PC, Mac? What kind of software do you use? Notepad? 🙂

I’ve been a long time fan of Ubuntu but I always kept Windows in the wings because of the great tools that exist for that operating system. Recently though I’ve switched entirely to using Ubuntu, I just love it.

In terms of software, I use IntelliJ IDEA by JetBrains as my primary IDE and I can’t envision switching to anything else, except for those languages that IntelliJ doesn’t support directly – like C#. The majority of my time is probably spent flipping between that (IntelliJ) and Chrome. I’m a big fan of IDEs and like many others I’ve experimented with quite a few – Eclipse, Netbeans and PhpEd (which I’d mark out for especial praise, though it’s Windows only so I no longer use it) all come to mind.

A special mention should also go to XDebug. I don’t just debug to troubleshoot when problems arise, I use it as a means of familiarizing myself with software. A good debugger makes it so, so easy to take applications apart and see how they tick under the hood. Debugging is simply fantastic.

You develop in PHP, C# and .NET. Do you think it makes you a stronger developer, or is it better to focus on a single language?

I think it does have an impact on how I write. If I’m writing in PHP I do often miss strong-typing, for example, and find myself working around that. Is it best to focus on a single language? Possibly, yes, because when you take a language together with its standard libraries there is a lot of richness and depth that is hard to master if you are constantly flipping between different languages.

Of course focusing on one language isn’t the same as using one language exclusively and I can’t imagine there being too many plugin authors, for instance, who don’t also know at least a smattering of SQL or JS.

What kind of testing do you have/use for your WordPress development?

It depends on the project, how quickly I need to get it out the door and the scale of the thing. I’m not a unit testing zealot and should probably do more of it. That said, unit testing isn’t a silver bullet and it all hinges on the quality of the tests themselves.

For instance, I’ve seen unit tests that check to see if a template-tag style function returns a string – and the test will pass even if the string is empty. I don’t think that is particularly helpful and sometimes it looks like an exercise in code coverage without considering why that coverage is needed.

WordPress as a platform. What do you consider the advantages and disadvantages of WordPress?

It’s ubiquitous. That’s a big advantage for everyone, developer and end-user alike, because – with such a big community and lots of developers in the ecosystem – extensions, services, learning and support resources are all plentiful, as is the capacity for a site owner to move from one developer, agency or web host to another. It’s also free and open source, which means it gets extra points in my eyes, and doubtless that has also been instrumental in its rise to greatness.

I do take issue with what I think is a well trodden argument that WordPress is easy to use. I don’t think it is all that easy to use for everyone. The dashboard for instance is a busy, busy place and a lot of it is filled with distracting content that many people have no use for, at all.

Also, for some time there’s been debate about the division of responsibility between plugin and theme – often centred on themes that pack an astonishing number of features, not all related to site presentation. So I think a further weakness is that themes and plugins are unable to declare a list of dependencies (other plugins, for instance) that could help to alleviate this cross over of concerns. This isn’t a trivial problem to solve but I do think a form of package management would be a step in the right direction here.

What good tricks do you have for other WordPress authors? Ways of working, tips and tricks, etc?

Talking to people – other authors – and finding out why they did something or solved a problem in a certain way is invaluable, whether you agree with their approach or not. Involving yourself in the community and helping out with other people’s code besides your own is also a massively useful learning exercise.

What could be improved in WordPress, speaking from a developers point of view?

Package management! Plugins and themes should be able to say, “We depend on Plugin X!” and the installer should magically take care of it all. We’ve covered that already a little and it’s unlikely to be an easy problem to solve. Beyond that, better control of the dashboard – turning it into something useful and clearing out the chaff would be a good move.

What kind of future do you see for WordPress as a whole?

It’s definitely growing and adding features, but there seems to be something of a counter-movement aimed at keeping it simple and not letting it grow too unwieldy. It’s going to continue to be a strong CMS for many years, I’d imagine, but beyond that it’s difficult to say.

What are your plans for the future?

Right now I mostly work on self-hosted sites, or write bits of code that people can use on self-hosted sites. I’d like to spend more time looking into creating web services that standalone, though, and perhaps engaging my brain in a project that uses a quite different language or set of technologies from those I am used to. That’s partly because I get bored easily, but also because I just love exploring the software universe.

I suspect I’ll keep returning to WordPress as a familiar stomping ground, though.