Plugins are tools to extend the functionality of WordPress. In an email exchange I asked a leading plugin developer, Brian Groce of Watershed Studio, his thoughts on developing WordPress Plugins and how publishers should approach having a plugin created.
How did you get started working with WordPress?
I was part of the exodus from MovableType back in 2004 due to the sudden licensing changes that occurred. After looking around at all of the PHP based open source blogging and content management options I opted for WordPress since that appeared to be the direction most people were headed and the development community seemed to be pretty strong and focused on delivering a solid product that didn’t add any fluff to the core code.
What is a plugin? And what are the advantages to using a plugin?
Plugins are extensions to the main WordPress functionality which enable the use of additional features. The advantage to using plugins is that you can easily add new features that you need while leaving the core WordPress code as simple as possible, which in turn allows for easy future software upgrades of both the core WordPress software and plugins.
In what circumstances should someone use a plugin or have a developer build a custom one?
Plugins should be used when there is a feature you’d like to see added to either the administration or presentation side of WordPress. There are numerous freely available WordPress plugins, but in the event that you can’t find what you’re looking for, having a developer create a custom plugin is your best bet unless you are already familiar with PHP and possibly SQL.
What are the biggest misconceptions about plugins?
I think the biggest misconception about plugins is that if you can think it, it can be done. While that is often the case, there are instances in which a certain feature isn’t available to be “plug into” via the API. Luckily the WordPress development team is on top of it and is adding new “hooks” as versions are released. Also, there seems to be a misconception that every plugin will work on every server setup, which isn’t necessarily the case. If a plugin uses a PHP or MySQL function that is not available or activated on the server, it will not function correctly. Related, plugins may work with one version of WordPress and not another.
Which plugins have you developed?
Of the plugins we have developed, the WordPress Email Notification plugin is by far the most popular, and we’re currently working on a new version which adds a handful of new features and improved functionality. We have also developed and maintain the WordPress Category Posts plugin & WordPress Versioning plugin and assisted in the creation of the Sphere Related Content Widget. Beyond those plugins, we have created custom plugins for clients.
In your experience what are the biggest mistakes publishers make when looking to build a plugin?
The biggest mistake from what I have seen is not looking at the big picture and painting yourself into a corner. Take the time to brainstorm and think about any possible future updates and additions that you’d like to make. By doing so, the plugin can be built with the future in mind and you’ll be able to avoid adding unnecessary additional development time down the road.
What are your favorite plugins?
My favorite plugin by far is PodPress. Anyone who has ever gone the non-plugin route to setup a podcast/vidcast can tell you how much time this plugin saves you. I also like Alex King’s Share This plugin as it is very helpful in allowing readers to share a particular post with others.
Plugin update notifications are now built into WordPress. What impact will that have on developers of plugins and their users?
I think that this will help out tremendously in allowing developers to inform users of new updates. Previously this was a manual process unless the plugin author built in a mechanism to check for updates.
From a plugin developer standpoint, what improvements or changes would you like to see with WordPress?
I would love to see some more hooks added to the API. Specifically, I would like to see a hook which easily allows for the addition of buttons to the editing toolbars in both the WYSIWYG editor and in the Code View editor. Also, I would love to have a way to see what blogs are actually using your plugin(s). With the new update notifications built into WordPress 2.3, this information should be fairly easy to collect.
What tips would you give publishers looking to have a plugin developed?
First, I would suggest looking to make sure that what you’d like to do hasn’t already been done, or at least check to see that something similar hasn’t been done. If you need some additional features or tweaks to an existing plugin, contact the plugin author to see if they can create a custom version for you and if so, how much it will cost. If they can’t (many plugin developers have full-time jobs), get in touch with a seasoned developer who can. Since most WordPress plugins are licensed under the GPL, this shouldn’t be a problem.
Second, if you need to have a plugin developed from scratch, be sure to write down and possibly diagram how you want the plugin to function. Once you have that completed, contact a plugin developer and let them know what you need. Additionally, if you have a delivery deadline, budget requirements or any other special considerations, you should share these with the potential developer as well.
Typically, how long does it take to develop a plugin from start to finish?
It truly depends on a multitude of factors, but in general the total development time depends upon the complexity of the plugin and the communication times between the client and the plugin developer. It is possible that simple plugins can be written, tested and “shipped” within a week. More complex plugins can take weeks to months before the final version is in hand and quality communication is especially vital when working on more complex plugins.
What should publishers be expecting from a cost perspective when hiring a plugin developer?
The cost of having a plugin developed comes down to the amount of time involved, thus a simpler plugin will cost less that a more complex one. In addition, developer rates and time estimates may vary quite a bit. With that said, you should expect to set aside a minimum of a few hundred dollars (USD) for a simpler plugin and into the thousands of dollars for a more complex plugin.
Brian Groce is the founder, President and CEO of Watershed Studio, LLC. Watershed Studio specializes in installing & customizing WordPress for blogs, podcasts and as a content management system (CMS).