From the idea to the finished extension – Our plugin development in five steps
You probably know them already: Plugins. Small programs that you integrate into another software to add a very specific function.
We too develop such extensions to provide you with a simple way to integrate our services into third-party software. This allows you to focus on what you want to do and not be distracted by having to log in to our site. Your experience gets less complicated and you save some time. Sounds good? Well, it is!
In today’s blog post, we’d like to tell you how we develop these little helpers. We’ll go through the individual steps – from the selection of the software to the release and finally tell you what makes our developers really happy… besides lots of good coffee, of course.
The first step: Which plugins are in demand?
The decision which plugin to develop depends on several factors. First of all, we become aware of platforms for which we develop plugins in various ways. Usually, we identify a need in our customer base or in the market itself. Frequently, extensions and add-ons are also requested by our customers. In addition, our developers keep an eye out on platforms like GitHub and Reddit, and on reports about new software in general.
Sometimes, the developers of the platform themselves ask us if we would like to contribute a module. Occasionally, however, we also simply develop an extension because we think the software itself is great. We believe that this mix means that we can offer our customers a diverse and meaningful selection, which we continue to expand.
The second step: Formalities, prototypes, workload
You will not be surprised: Not every platform that is requested actually receives an add-on from us in the end. First, the developer checks the effort and builds a prototype if necessary. Then the effort is weighed against the benefit. For example, plugin development can be very costly if licenses have to be purchased in advance or if there are few or no guidelines for developing the extension. That means that such an extension must offer a greater benefit to us than one that is quick and easy to make. If the benefits prevail, the actual plugin development can start.
By the way, the time it takes to develop such an extension varies greatly from software to software. How long this period is, is determined by a number of factors, for example, the documentation of the software, the scope of the extension and the communication of those responsible on the side of the software manufacturer. One of our plugins was developed in just under an hour. However, it can also happen that modules are stuck in development for several weeks or cannot be released because of the factors mentioned above.
The third step: The actual plugin development
Regarding the process of the actual development, our developer André says the following:
“I first look to see if the platform already offers software development kits that make my work easier. This increases the effort in the beginning, but it always pays off in the long run. I also always make an effort to avoid duplicate code. Just the other day, I needed our shared inbound numbers in multiple projects. Instead of hard-coding these into the code master, I published it as a central package. When our numbers change, all I have to do is change the parent package and follow up with the versions in the child packages. You could say that this results in a ‘single point of truth’.”
To make sure everything works well, the extension is tested during development, of course. Once André is satisfied, some final tests round up the process. “For many plugins, automatic software tests are created. These are costly, but make later changes more secure. Sometimes browser tests are also performed. Here, a browser instance is fed with operations that simulate a user’s operation.”
Software testing can be tedious and repetitive, but it is in fact one of André’s favorite tasks. “It gives me the confidence that we won’t trigger side effects in future updates. I like to make sure that a newly gained feature doesn’t interfere with existing features,” he says.
Plugin development requires good planning as well as flexibility
Our most popular extensions are used in:
The fourth step: Going live and listening to our customers
When all tests have been passed, our plugin is ready to go live. Our developers then look at ways to distribute it. In some cases, for example, the module is offered directly in the software’s app library. Ideally, we set up a demo that interested parties can have a look at. Demos are also available to our support staff so that we can help our customers as effectively as possible if they have questions.
By the way, during the development period, Content Management looks at what’s in development and starts putting together a page for the plugin in question. This will then be uploaded to our integration page after publication, so that our customers can get an overview of which software they can already easily integrate our service into.
So, the day is finally here: Our plugin is available. In the first few days after the release, we usually receive the most feedback, which we implement as soon as possible, depending on the urgency.
The fifth, sixth, seventh step: Maintenance work
Once the plugin is published and in use, however, the work of our developers is not yet finished. Most extensions require regular maintenance to ensure their security and functionality. Updates in the software may cause malfunctions in some circumstances. Therefore, our developers must always stay up to date and are notified of upcoming updates via mailing lists by he software vendors and find out about updates on GitHub or Reddit. When an update is announced, they make changes in the extensions to fit the latest version of the software. As you can see, the work on a plugin is actually never finished with the release.
The challenges and the positive examples
As we promised in the introduction: We asked André what he particularly likes in plugin development and what frustrates him the most.
Frustrating, as has certainly become clear in the previous points, is when the documentation of the platform for which we are developing a plugin is outdated or incomplete, or when there is no documentation at all. Fortunately, that last situation happens very rarely. Incomplete documentation prolongs working time and makes it much more difficult to find bugs. In these cases it is impossible to get into a flow when developing an extension.
*Our Shopify plugin is currently under revision (as of mid-June 2021). As soon as it is available again, we will link it here.
Many influencing factors
So, there are several steps that need to be completed from the idea to the finished plugin. The success of plugin development also depends on many different factors.
If we find an extension possibility that is sensible, its development is planned. It is especially important how good the documentation of the original software is. Depending on how elaborate the development is, it can take only a few hours from the idea to the finished module. If the development is difficult, it can take several weeks until we are ready to go live. Now matter how long it takes, though: We are always happy when a new plugin is being launched. Rest assured: We are always working on expanding our integration options for you.
Do you have any questions about our integrations, plugins or clients? We are looking forward to your message.