Self Develop or Plugin as first option?

One of the things that attracted me to the WordPress platform was the plugin API and large selection, but more recently I have been self developing before looking for plugins, only using plugins for things that I don’t feel I would be able to complete on time and in budget.

So what do you do when you need functionality? Do you first think how you can do it yourself, or do you dive into the plugin repo straight away, the ‘never reinvent the wheel’ mentality? I think both have valid arguments.

Related posts

Leave a Reply

4 comments

  1. There are several things I consider when making such choice (in no particular order):

    • does task involve general functionality (plugin) or processing my specific content (develop)
    • is there the plugin for the task from known developer and well-maintained (plugin) or there is fractured field of numerous plugins (develop)
    • do I want full range of related functionality (plugin) or single specific tweak (develop)

    In general I will always do at least quick search through plugins to assess how likely it is to get task done with them.

    There is no rule of a thumb here. I both use plugins for tasks that can be easily coded (for example page titles) and coded from scratch some really beaten things (for example anti-spam protection).

  2. Even as a junior developer, starting with the plug-in repository is often your best bet. I’m sure, when evaluating a particular situation, you already have in mind an approach you’d take with your custom development. Finding a tested, proven, “professional” plug-in that does the same thing is the best way to compare how you’d do it with how a more experienced developer would. It’s a great way to learn as you go and pick up new techniques.

    That said, there won’t always be a plug-in available to fit your situation. In general, if you spend more than 5-10 minutes browsing the repository and can’t find the perfect solution, stop wasting your time and build your own. Then submit your new system to the repository to help out the next guy who comes along.

    Often times, I’ll find two or three plug-ins that almost do what I want them to do … but they’re missing one or two features, or for some reason break my theme when they’re installed. In these situations, I’ll still start off with the stock plug-in, but I’ll tweak it to fit my specific needs – remember, it’s open source, so this is allowed and encouraged. Then I’ll contact the original author and propose a patch to his or her project. Sometimes they accept it, sometimes the reject it, other times they ignore it. In a few cases, I’ll publish a public fork of their plug-in just to make sure my patch remains available to the community, but over time whatever work I did either gets incorporated into the system or is replaced by improved WP core functionality or another, better plug-in from another developer.

    I’m all for taking time to learn a new system and trying to build a solution from scratch, but if someone else has already done it (and tested/deployed their system) I’d encourage you to learn from their experience and build off their system rather than developing your own. You’re already building on top of a platform (WordPress) that’s developed by someone else … building off an existing plug-in to avoid ‘reinventing the wheel’ is no different.

  3. Most of my plugins are self written. I don’t have the nerves to check other peoples code for security and performance issues. If something is to complex I look at GitHub first. The average quality there is better than on wordpress.org in my experience, and it is very easy (and faster) to see the code first. The repository is my last option.

    A side benefit of writing your own plugin: You learn something, and each time you’ll be faster than before. 🙂

  4. I really don’t like to re-invent the wheel, so I start by searching Google and the WP plugin repository.

    Most of the time there’s something out there already that does what I need, or very close to it. At the least that’s a good starting point, and takes around half an hour to look around, maybe another 10-15 minutes installing the plugins I’ve found on a testing install to see if it does what I think it does.

    If I need to correct or expand on the plugin, then I try to submit my changes to the plugin maintainer.