Early last month I released my first premium WordPress plugin. As with most projects, it was not without some learning.

Here are five lessons I’ve learned in the first month of developing, releasing, and maintaining a premium WordPress plugin:

1. Have a Methodology

If you’re a programmer or software engineer by trade, you’re likely familiar with at least one methodology in your day-to-day work. Smaller projects deserve the same treatment – it makes development and maintenance much more efficient.

When I was working on WP Social Icons, I took cues from some of the methodologies I’ve previous used and adapted them for this specific project:

  • Tracked all required features and attempted to prioritize them based on the order of dependency
  • Created a test plan from the start of the project
  • Setup development and staging environments with a variety of themes on which to run the tests
  • Maintained all work in source control

The tools you use to do this don’t matter as long as you do them. Although I believe all are necessary, I’d argue that if you only do two of these, I recommend having a test plan and have a number of themes in development environment.

2. You Will Miss Something

Regardless of how much you plan and test, you can’t capture every use case or desired feature and you will miss something after the plugin is released.

Case in point: WP Social Icons is sitting at version 1.0.5 internally. That means that I’ve released five bug fixes before releasing version one. That’s five fixes in less than a month.

Five. That averages to more than one fix per week in the first month.

You can plan and test as much as you want but nothing yields greater feedback than getting your work into the wild. Thankfully, the web is a lean environment – you can get a support request from someone, update the code, test, and deploy all within a reasonable amount of time.

3. The Hidden Truth of Support

WordPress is based on the GPL so any derivitive work of the platform is GPL, too. This means that all WordPress-based projects are inherently open-source.

The thing to remember is that open-source is not equal to free, but users aren’t paying for source code as much as they’re paying for support and possibly future upgrades. The WP Social Icons Premium License grants:

  • Access to the support forums
  • Future upgrades for life

Simple, right? But this means that if you purchase the standard license, you’re getting the plugin as it stands with no help from now on. There’s nothing wrong with that, but give your users options.

Personally, I argue that support is a must. But the hidden truth about support is this: you’re going to hear from people that are having problems. Overtime, this can give the illusion that your project is weak or broken.

This is not true.

You’re only going to hear from people that are having issues with your work. Rarely are you going to receive a message hearing how much they are enjoying it.

After all, how often do you call a service provider just to give props? :)

4. Not All Sites Are Created Equal

You can test your plugin against as many themes as you want, but you’re not going to capture every potential issue. People have a variety of hosts, versions of WordPress, themes, and plugins that may conflict with your work.

It’s fine to place this in a disclaimer, README, or other documentation, about this but it never hurts to ask users to include their environment information when submitting a support request. This way, you can attempt to recreate the environment on your local machine to trace the problem.

That said, the truth is that 9 times out of 10, Chrome Dev Tools or Firebug will identify the problem and it’s usually related to CSS.

5. You Can Prune Your Customers

There’s the old cliche that “the customer is always right,” but I’d argue that this isn’t true and I don’t think anyone that’s lead a project or a business could say that with a straight face.

I know, it’s simply a way of arguing that you should cater to your customers after they’ve paid for your product but there are times when customers are jerks and refunds are a great option.

I’ve received very little negative feedback, but I have heard some. Usually, I’ll converse with the customer via email and go the extra mile to try to solve the issue but some people are more concerned with negativity and putting you down than they are with actually getting help.

There’s an opportunity cost here: Is the amount of time spent trying to satisfy a person like this worth the money they spent on your work? If not, issue a refund and be done.

It’s that simple. When you stop trying to please everyone and focus on the people that genuinely like your work, you’ll be happier.

You may not have a team around or you and you may not be developing the next enterprise-level software package, but creating small, premium applications are subjected to the same rules as larger counterparts.

These are five lessons I’ve learned this far. I’m sure there are more to come.