Lots of articles online discuss the ‘sexy’ side of development, such as coding strategies, framework choices, and other ‘fun’ elements. The more practical side of planning and developing WordPress solutions is less on display, although it can be just as interesting (and is absolutely vital).
For example, honing and refining an idea into a laser-focused concept can often be very rewarding – especially when you discover how much this can benefit your actual coding. In addition, while many of the rote tasks involved in plugin development can seem unnecessary at first glance, putting in the work upfront can result in a project completed more quickly than usual.
In this post, we’ll take a look at some of the requirements for developing a WordPress plugin, focusing on the key practical elements. Let’s get started!
A Brief Overview of the Development Process as You Already Know It
As we alluded to above, you’ll find that many resources on plugin development simply talk about the coding aspect. However, this is only one element in a fairly complex process. In fact, you may find that the actual coding is the least time-intensive task you’ll carry out. This is especially true if you’re already an experienced developer.
Even so, you may want a refresher, or simply a look at how we’ve covered plugin development in the past. With that in mind, here’s a selection of the pieces you can refer to when coding your plugin:
- 17 of the Best Code Editors for WordPress Developers and Users
- Become a Better WordPress Developer with These Local Development Plugins
- Want to Create a WordPress Plugin? Here’s What You Should Know
- How to Test Your Plugins with the Upcoming Gutenberg Editor
These articles should get you on the right track. Plus, if you’re new to plugin development, you’ll likely want to look at our five-part guide to creating a plugin from scratch. This covers almost everything you’ll need to begin, including using a ‘boilerplate’ to speed up the process, and all manner of other handy tricks and tips.
A Practical Guide to Developing a WordPress Plugin (4 Key Considerations)
Now that we’ve covered the basics, we’re going to tackle the non-coding aspects you’ll need to consider when developing a WordPress plugin. Before we begin, it’s worth noting that these aren’t linear steps per se (although they can be treated as such), and you’re free to jump around based on your own specific project.
However, we do recommend making sure you have a focused idea in place before you do anything else. Let’s take a look at that element first!
1. Brainstorm and Research Your Idea
Before you begin coding, you’ll naturally need an idea of what you want to create. The brainstorming and research process is essential when it comes to developing a focused workflow for your project. In addition, you’ll usually want to rein in your initial eagerness and settle on realistic aims before you begin.
Coming up with plenty of ideas and goals for your eventual completed project helps to create focus. It also provides an ‘anchor’ for your decision-making throughout the project’s lifecycle. In other words, you can avoid a lot of decision paralysis simply by referring to your overall desired outcome (ideally boiled down to a mission statement, or an otherwise short soundbite).
If the plugin is being developed for a client, you’ll likely be collaborating on this step, and they may even have an idea development stage in place. This simplifies the process somewhat, as you’ll effectively be working from a template created through joint effort.
Regardless, to begin, you could simply use the old-fashioned pen and paper approach, and outline what you’re looking to achieve. Taking things a step further, mind maps (such as those implemented via a tool like Mind Doodle) can be very helpful.
Finally, a full brainstorming session can work wonders. Writing all of your ideas down without filtering them means you can refine them later, and you may also stumble upon some unique solutions.
2. Ascertain How Much Time You Have for the Whole Project
Time is many things – a healer for one, but also a leveler. In other words, you can only work with the time you have available, so it makes sense to find out just what you have available, and plan your project accordingly. If you have grand designs about what you’d like to achieve, but time is short, you’ll probably need to scale back your ambitions.
This is most pertinent if you’re working with a client. It’s not necessarily a problem, however, since restrictions can be a boon for productivity. The most prominent elements to consider here include:
- Whether your project is personal or for business.
- The end goal you set during the research phase.
In other words, if you’re creating a plugin based on a ‘hunch’, and the outcome doesn’t affect your income, time is on your side. However, for more serious work, you’ll likely want to use metrics such as the Cost Of Doing Business (CODB) to help guide your decision-making.
3. Consider Your ‘Versioning’ Process
Versioning is something even the most non-technical of users has come across:
While version numbers themselves are usually somewhat arbitrary, the versioning process can be quite strict depending on your internal organization and project. You’ll typically want to use a Version Control System (VCS), especially as the team you’re working with grows. In fact, some marketplaces and other repositories have their own requirements as to how you proceed here, meaning this decision may largely be out of your hands.
For example, WordPress uses Subversion (SVN) for production versioning, although Git is a strong option for everything else. For more on this topic, we encourage you to check out the Core Handbook entry for SVN, the Plugin Handbook’s guide to using it, and the WordPress Codex for some alternatives that may be useful (depending on your application).
4. Decide How You’ll Create, Complete, and Store Your Plugin’s Documentation
Documentation can be a make or break aspect of developing a plugin, regardless if it’s for end users or developers. Think about all of the times when you’ve needed some extra guidance on how to use a particular tool or service. If the self-help channels aren’t comprehensive and understandable, it’s going to negatively affect the User Experience (UX).
Of course, if you’re developing for a client, providing solid documentation is even more vital. This is because:
- Clients will use you as the de facto support channel if they don’t have self-help available, which could impact your ability to work on other projects.
- You may take a hit to your reputation if you don’t provide the right resources. Consider a complex plugin with minimal documentation. If the client has to constantly ask you why something works the way it does, or how to complete an otherwise fundamental task, they may consider your work to be sloppy. This obviously doesn’t bode well for winning future work.
The answer is to provide clear documentation for your plugin, regardless of its complexity. That way, you can leave the client to their own devices, knowing that they’ll only contact you further if there’s a real issue that needs righting.
While there are plenty of tools that can help to automate the process of documenting your plugin, having a strong template as a framework is always helpful. After that, taking a deep dive into the actual nuts and bolts of writing, storing, and delivering your plugin’s documentation will serve you well, as the effects are cumulative over time.
If you conduct even a cursory search on developing a WordPress plugin, you’ll often come across advice centered only around the coding aspects. This is obviously an important step, and you’d be right to absorb as much information on this as possible. However, organization is vital before you crack open your coding editor.
This post has looked at four other steps that are vital when developing a WordPress plugin. Let’s quickly recap them:
- Brainstorm and research your idea.
- Figure out the time frame you have for the project.
- Consider your versioning process, and how that impacts your delivery method.
- Have a system in place for developing your plugin’s documentation.
Do you have any questions about how to ensure that your next plugin development project goes smoothly? Let us know in the comments section below!
Featured image: Free-Photos.