What are Plugins and are they right for me?
You may have heard the term plugin used before, in the main if you have ever interacted with tech companies, but do you understand everything they are talking about or does it sound complicated? In this blog post, I will explore what plugins are, their good points, their bad points and relate this to some real-world examples.
By the end of this article, you will have a good understanding of plugins and be able to make a more considered assessment if this approach would support your organisation’s next IT/software project.
So, what are plugins?
In short, plugins are isolated pieces of computer code that add specific features to an existing piece of software.
Software, in the above definition, could be a website, an operating system like Microsoft Windows, a mobile app on your phone or tablet, an accountancy package you use in your business, or even the software that runs the media system in your car.
Why do we need plugins?
Over the last 20 years, we have seen the world become smaller and more connected through innovative IT systems, both hardware and software. It’s never been so easy to do business with someone on the other side of the world or connect with family members in the next town without leaving the house. The more consumers embrace technology and software, the more the demand for software to provide functionality that fits a specific use, be that personal or business.
Everyone’s personal or professional challenges are slightly different. For software vendors, this means providing a product that can be flexible enough to meet this vast range of needs and remain generic to appeal to a bigger consumer market. (Solve a generic consumer problem, for example, track company stock movements or count daily steps).
By providing the ability to introduce plugins into software, it allows vendors to focus on their core product offering (the generic problem to be solved) and allows an easy path for consumers to define their specific requirements. It also gives vendors a fast and easy way to roll out new features to a consumer market ever hungry for the next feature.
The Good, The Bad and the Ugly
The introduction of plugins in many software offerings provides flexibility to consumers and an addition. Plugins are not a magic bullet to solve all issues and in some circumstances are entirely the wrong approach to take.
The Good – The Pros of Plugins
1. They are fast to develop
Plugins are there to provide specific additional functionality and are much faster to develop than creating entire software systems. Additionally, they often benefit from access to existing functionality so, they don’t need recreating.
What does this mean to you? Well, less time means less resource, which means lower cost.
2. Easier to Maintain
Because the plugin is much smaller than a full piece of software it is often much easier to maintain it in isolation meaning changes, fixes and updates, can be applied quickly with minimal (sometimes zero) impact on the software system.
As with the initial development of the plugin, it significantly reduces the cost of an update as less time is needed to implement changes. It also provides minimal downtime and, the operational cost of system downtime and lengthy updates is reduced or entirely mitigated.
3. Add Additional Functionality / Supplement Existing Functionality
Plugins offer flexibility and lots of possibilities, providing the ability to add in specific functionality you need or modify/supplement existing functionality.
For example, if you need to connect to your accounts package to retrieve order information, a plugin can do that. Maybe you need to slightly alter the way the software calculates the shipping surcharge you apply to orders over a given value, again, a plugin is a solution.
More importantly, these changes only affect you or your business and are specific to your use.
4. Software Developers
In most instances, software vendors publish how to create plugins for their platforms enabling consumers to have a choice as to who builds your plugin, including, having someone suitably skilled internally to do it for you. In short, you are not tied to the software platform vendor to create this plugin for you.
5. Community / Ecosystem
Many large-scale platforms have built up a community of enthusiastic users/partner vendors who share their plugins commercially or for free. It is potentially useful in so much as a plugin might already exist for the feature you are looking to implement; however, it also provides some potentially significant drawbacks which we discuss below.
The Bad & The Ugly – The Cons of Plugins
1. Not ALWAYS Suited to big Features
When large scale change is made, plugins can often become complicated, buggy, and overwhelming. Some platforms actively encourage significant additional features as plugins, and these require much more effort, come with higher cost and require a much stricter development approach to ensure high-quality output.
2. Forced Updates / Breaking Changes
Vendors will overtime update their platforms. It is a positive thing generally as it means the vendor is proactively fixing bugs, improving features, updating security and keeping up with modern advances in technology. However, it can mean that functionality within the platform that your plugin relies on gets changed behind the scenes resulting in your plugin not working as expected any more. You may not have an option if you upgrade to the latest version of the platform or choose not to as is the case with many Software as a Service (pay monthly for access) offerings.
Often software vendors release update notes to offer guidance on changes made in their latest software releases. In some circumstances, they give their communities of partners and users a “heads up” about things that are changing to allow developers to update their projects. It doesn’t negate the fact that there is a chance of having to have a plugin rebuilt to work with new versions of a vendor’s platform, and it can result in additional cost.
3. Writing Code
One of the best benefits and ironically drawbacks to plugins is the fact that they require someone to create bespoke code. While this provides 100% flexibility on how and what is implemented, it also offers the following issues:
A) The potential for bugs and security issues inherent in all code projects.
B) Writing code takes more time than configuring features.
C) Extending functionality outside of the core platform can, in some circumstances, have a detrimental effect of performance of your business system.
D) There is a reliance on the technology, as technology changes and evolves, old code can become obsolete unless kept up to date. Keeping old code projects up to date can become difficult and time-consuming.
The above points are serious considerations from a project perspective when considering plugins as a method of achieving a specific outcome. They should be largely mitigated when engaging with a good quality developer internally or externally.
4. Reliance on Developer Quality and Availability
When engaging on any development project, whether it be for a plugin or any other piece of software, there comes a reliance on a person with the expertise to implement the code you require.
If this person is outside of your business, then a question of quality is raised as a consideration. Ensuring that you engage with a developer that has a good reputation and understands the technology you are looking to work with is critical. It will ensure that many of the concerns around writing code are covered.
But the risk when relying on a developer is that one day, they aren’t available. It could be because they leave your company or the 3rd party you used does not operate any more. There are many numbers of legitimate reasons this could happen, but this could prove costly if you cannot find another developer to take over maintenance of your code and you end up having to have it re-written.
Some Examples of Plugins
By now, I hope I have given you at least some insight into Plugins, but to re-enforce the discussion here are some examples of plugins that you may find inside businesses:
- A plugin that connects to Companies House and performs a search against a Company Registration Number and returns company details. I can be used as part of a due diligence process.
- A plugin that takes what the user has typed into the screen and makes some checks to ensure the correct format for the supplier order system. It ensures that purchase orders can be processed with zero human intervention.
- A plugin that connects to the specific company website database and pulls all latest orders into the company ERP system and synchronises stock levels the other way.
- A plugin that connects to the company bank accounts and gets all latest statement entries to help with accounts reconciliation.
Conclusion
In conclusion, plugins can offer an IT project a huge amount of flexibility if considered correctly and implemented the right way but are not a risk-free way of achieving project objectives. In conclusion, plugins can offer an IT project a significant amount of flexibility if considered correctly and implemented the right way but are not a risk-free way of achieving project objectives.