With every passing interview that we do for the WisdmLabs’ blog, I am amazed how much there is to learn from people and their diverse thoughts, opinions and interests.
For instance had I not interviewed Tom McFarlin I wouldn’t have known that along with being a good… oops I meant great developer, he is also a musician in his own right.
Here’s what he said about it
“I’ve also been interested in music for as long as I remember. I first started learning to read music and play instruments in the 6th grade and eventually found my way to the guitar which is my (as well as many) primary instrument. For a short while in high school, I had considered forgoing college and trying to make a career out of playing in a band.
Though I still play today, the majority of my audiences consist of my wife and our two daughters which is just as well 🙂”
That’s not it. I asked him a host of questions and Tom was extremely forthcoming with the answers.
Here’s what my tête-à-tête with Tom McFarlin – Software developer, Guitarist, Blogger, Speaker and a WordPress guy you should be following – led to.
How did software development happen to you?
I’m someone who has been into computers since I was about 9 years old. My family had an Apple IIe when I was a bit younger, but it wasn’t until we got our first PC, a 386 (shortly before upgrading to a 486 and then 486 DX) that my interest in computing sparked. The two games that got me hooked on computers were Wolfenstein 3D and Doom 2.
From there, everything kind of spiraled out into wanting to learn how, what I was seeing on the screen was getting on the screen, and how software was actually written. I spent the majority of my teenage years continuing this interest and ultimately went on to college to study computer science (with a focus in software engineer).
What according to you is the difference between a good developer and a great developer?
I think good developers are able to get things done and able to do so in a timely manner, but I think great developers are keenly aware of what they don’t know, may never be truly happy with the solution that they present but are pragmatic in delivering their solutions.
Ultimately, I think it comes down to knowing what your limits are, working within them, and always seeking to expand them.
Tell us your thought process when you start developing a plugin.
When I build a plugin, the idea normally comes from one, of two places: Either a client asks for one to be developed or I have a specific need for one (or an idea for one) that I think could serve other people.
From there, I usually quickly prototype something – sometimes on paper, sometimes via wireframes, often times via some quick code – to make sure I’ve got the core idea captured, and then I’ll refine the actual solution from there.
How elaborate is your testing process for a plugin you’ve built?
This largely depends on the nature of the plugin. Sometimes, there will be unit tests and front-end tests that go along with it (which is often the case with client projects). Other times, it’s basically user testing to make sure that the ideal scenarios for the plugin are captured and perform correctly.
Usually, the smaller the plugin, the lesser inclined I am to write automated tests for it. The lesser the complexity, the lesser a change is going to break it, so I don’t worry about it too much. If it’s a larger plugin, though, then the rules are a bit different.
How do you keep updating your knowledge on WordPress?
Mostly reading what’s going on through sources such as Post Status, WP Tavern, and the Make WordPress blogs. I also continue to spend the majority of my week building stuff with WordPress often hitting up against something that I’m not quite sure how to do or how to properly do.
In those cases, I try to go through Core or the Codex and determine how I can best approach the solution.
Does the plugin make the author or does the author make the plugin?
The author makes the plugin. I think I could probably chat about this one for a while, but I’m going to stick with that as my short answer 🙂
Which of these personalities would you choose to be for a day – Matt Mullenweg, Joost de Valk or Toni Schneider?
Ah, this is a tough question as they all have interesting and valuable qualities that they bring to the table, don’t they? Unfortunately, I can’t pick just one of ‘em. I think I’m dodging this question 🙂
Name a WordPress plugin you are a fan of and tell us why?
I really like Andy Fragen’s GitHub Updater because it makes it really easy to manage and distribute plugins via GitHub (versus Subversion). From a theme and plugin developer standpoint, it’s really well-done and super easy to use.
Rank the following in order of importance – Users, Revenue, Popularity, Quality
Ultimately, I think this may depend on what your end game is but assuming that you have a project with which you’re looking to make money
You first need Users, but Quality can make or break that. Sure, there are some poor plugins that are very popular and terrific plugins that aren’t, but I think quality is something that is understated in WordPress and it’s something that should be expected more than it currently is. Anyway, I digress. The more users that you have, ideally, the more Popular it will become and the more Revenue you’ll generate.
So Users, Quality, Popularity, and Revenue.
5 Secret ingredients for a great plugin?
- A user interface that fits in naturally with the WordPress dashboard
- An experience that is intuitive and takes little to learn
- Proper sanitization, validation, and security of data that it manages
- Properly sets itself up and cleans up after itself upon installation and uninstallation
- Solves a problem that the end-user is experiencing with their WordPress-based site.
My personal favourite part of the interview is Tom’s explanation of a good and a great developer. His explanation is simple, lucid and covers the crux of the question.
Is there something that you like particularly? If yes, then let me know.