{"id":26685,"date":"2021-05-18T10:50:47","date_gmt":"2021-05-18T08:50:47","guid":{"rendered":"https:\/\/www.sms77.io\/?p=26685"},"modified":"2024-03-22T12:43:54","modified_gmt":"2024-03-22T11:43:54","slug":"how-do-we-develop-a-plugin","status":"publish","type":"post","link":"https:\/\/www.seven.io\/en\/blog\/how-do-we-develop-a-plugin\/","title":{"rendered":"How do we develop a plugin?"},"content":{"rendered":"<section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_top type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h2>From the idea to the finished extension &#8211; Our plugin development in five steps<\/h2>\n<p><strong>You probably know them already: Plugins. Small programs that you integrate into another software to add a very specific function.\u00a0<\/strong><\/p>\n<p><strong>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!<\/strong><\/p>\n<p><strong>In today&#8217;s blog post, we&#8217;d like to tell you how we develop these little helpers. We&#8217;ll go through the individual steps \u2013 from the selection of the software to the release and finally tell you what makes our developers really happy&#8230; besides lots of good coffee, of course.<\/strong><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small color_alternate\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>The first step: Which plugins are in demand?<\/h3>\n<p>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 <a href=\"https:\/\/github.com\/seven-io\" target=\"_blank\" rel=\"noopener\" data-schema-attribute=\"\">GitHub<\/a> and <a href=\"https:\/\/www.reddit.com\/r\/webdev\/\" target=\"_blank\" rel=\"noopener\" data-schema-attribute=\"\">Reddit<\/a>, and on reports about new software in general.<\/p>\n<p>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.<\/p>\n<\/div><\/div><div class=\"w-actionbox no-border color_secondary controls_bottom\"><div class=\"w-actionbox-text\"><div class=\"w-actionbox-description\"><p>Are you using a software that you would like us to have a plugin for?<br \/>\nTell us about it!<\/p>\n<\/div><\/div><div class=\"w-actionbox-controls\"><a class=\"w-btn us-btn-style_8\" href=\"mailto:support@seven.io\"><span class=\"w-btn-label\">Ask for plugin<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small color_alternate\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>The second step: Formalities, prototypes, workload<\/h3>\n<p>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.<\/p>\n<p>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.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-8 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>The third step: The actual plugin development<\/h3>\n<p>Regarding the process of the actual development, our developer Andr\u00e9 says the following:<\/p>\n<p>&#8220;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 &#8216;single point of truth&#8217;.&#8221;<\/p>\n<p>To make sure everything works well, the extension is tested during development, of course. Once Andr\u00e9 is satisfied, some final tests round up the process. &#8220;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&#8217;s operation.&#8221;<\/p>\n<p>Software testing can be tedious and repetitive, but it is in fact one of Andr\u00e9&#8217;s favorite tasks. &#8220;It gives me the confidence that we won&#8217;t trigger side effects in future updates. I like to make sure that a newly gained feature doesn&#8217;t interfere with existing features,&#8221; he says.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-image align_none\"><div class=\"w-image-h\"><img decoding=\"async\" width=\"600\" height=\"600\" src=\"https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood.png\" class=\"attachment-large size-large\" alt=\"Plugin development requires a lot of flexible and well structured work\" loading=\"lazy\" srcset=\"https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood.png 600w, https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood-300x300.png 300w, https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood-150x150.png 150w, https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood-350x350.png 350w, https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood-250x250.png 250w, https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood-400x400.png 400w, https:\/\/www.seven.io\/wp-content\/uploads\/blog_plugin_mood-200x200.png 200w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/div><\/div><div class=\"w-separator size_custom\" style=\"height:10px\"><\/div><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><p style=\"text-align: center;\"><em>Plugin development requires good planning as well as flexibility<\/em><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h4 style=\"text-align: center;\">Our most popular extensions are used in:<\/h4>\n<\/div><\/div><div class=\"w-separator size_small\"><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-iconbox iconpos_top style_default color_secondary align_center no_text\"><div class=\"w-iconbox-icon\" style=\"font-size:45px;\"><i class=\"far fa-cart-shopping\"><\/i><\/div><div class=\"w-iconbox-meta\"><h4 class=\"w-iconbox-title\">eCommerce Solutions<\/h4><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-iconbox iconpos_top style_default color_secondary align_center no_text\"><div class=\"w-iconbox-icon\" style=\"font-size:45px;\"><i class=\"far fa-clipboard-list-check\"><\/i><\/div><div class=\"w-iconbox-meta\"><h4 class=\"w-iconbox-title\">Automation Software<\/h4><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-iconbox iconpos_top style_default color_secondary align_center no_text\"><div class=\"w-iconbox-icon\" style=\"font-size:45px;\"><i class=\"far fa-handshake\"><\/i><\/div><div class=\"w-iconbox-meta\"><h4 class=\"w-iconbox-title\">Collaboration- and Helpdesk Software<\/h4><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>The fourth step: Going live and listening to our customers<\/h3>\n<p>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&#8217;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.<\/p>\n<p>By the way, during the development period, Content Management looks at what&#8217;s in development and starts putting together a page for the plugin in question. This will then be uploaded to our <a href=\"https:\/\/seven.io\/en\/solutions\/integrations\/\" rel=\"noopener\">integration page<\/a> after publication, so that our customers can get an overview of which software they can already easily integrate our service into.<\/p>\n<p>So, the day is finally here: Our plugin is available.\u00a0In the first few days after the release, we usually receive the most feedback, which we implement as soon as possible, depending on the urgency.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small color_alternate\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-8 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>The fifth, sixth, seventh step: Maintenance work<\/h3>\n<p>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.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"ult-just-icon-wrapper  \"><div class=\"align-icon\" style=\"text-align:center;\">\n<div class=\"aio-icon none \"  style=\"color:#52c0fa;font-size:85px;display:inline-block;\">\n\t<i class=\"Defaults-exclamation-triangle warning\"><\/i>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small color_alternate\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>The challenges and the positive examples<\/h3>\n<p>As we promised in the introduction: We asked Andr\u00e9 what he particularly likes in plugin development and what frustrates him the most.<\/p>\n<p>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.<\/p>\n<p>On the upside, plugin development is especially fun when the conditions are the other way around. When asked about his favorite module, Andr\u00e9 said: &#8220;The Shopify plugin* is pretty easy to integrate, because it has excellent libraries for JavaScript and these are also documented in a clean way. The development has probably been the most fun for me so far. However, Shopify&#8217;s architecture also results in the biggest disadvantage: the server side runs on our infrastructure. This means I have significantly more maintenance work than with conventional plugins.&#8221;<\/p>\n<p><em>*Our Shopify plugin is currently under revision (as of February 2024). As soon as it is available again, we will link it here.<\/em><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3>Many influencing factors<\/h3>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>Do you have any questions about our integrations, plugins or clients? We are looking forward to your <a href=\"mailto:support@seven.io\">message<\/a>.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-separator size_medium with_line width_default thick_1 style_solid color_border align_center with_text with_content\"><div class=\"w-separator-h\"><h6 class=\"w-separator-text\"><span>All the best<\/span><\/h6><\/div><\/div><div class=\"w-image align_center\"><div class=\"w-image-h\"><img decoding=\"async\" width=\"289\" height=\"38\" src=\"https:\/\/www.seven.io\/wp-content\/uploads\/2017\/07\/unterschrift-1.png\" class=\"attachment-large size-large\" alt=\"Your sms77 team\" loading=\"lazy\" \/><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_small\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_top type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><p style=\"text-align: center;\"><i data-stringify-type=\"italic\">Header picture by\u00a0kreatikar auf\u00a0<\/i><i data-stringify-type=\"italic\">pixabay.com, edited color.<\/i><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"From the idea to the finished extension &#8211; 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.\u00a0 We too develop such extensions to provide you with a simple way to integrate our services into third-party software. This allows...","protected":false},"author":1,"featured_media":27223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[424],"tags":[5311,5312,5313],"class_list":["post-26685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cooperations-integrations","tag-integrationen-en","tag-plugin-entwicklung-en","tag-plugins-en"],"_links":{"self":[{"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/posts\/26685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/comments?post=26685"}],"version-history":[{"count":25,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/posts\/26685\/revisions"}],"predecessor-version":[{"id":92299,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/posts\/26685\/revisions\/92299"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/media\/27223"}],"wp:attachment":[{"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/media?parent=26685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/categories?post=26685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seven.io\/en\/wp-json\/wp\/v2\/tags?post=26685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}