{"id":26542,"date":"2021-05-18T10:50:11","date_gmt":"2021-05-18T08:50:11","guid":{"rendered":"https:\/\/www.sms77.io\/?p=26542"},"modified":"2023-02-21T11:07:09","modified_gmt":"2023-02-21T10:07:09","slug":"wie-entsteht-ein-plugin","status":"publish","type":"post","link":"https:\/\/www.seven.io\/de\/blog\/wie-entsteht-ein-plugin\/","title":{"rendered":"Wie entsteht ein Plugin?"},"content":{"rendered":"

Von der Idee zur fertigen Erweiterung \u2013 Unsere Plugin-Entwicklung in f\u00fcnf Schritten<\/h2>\n

Wahrscheinlich kennen Sie sie bereits: Plugins. Kleine Programme, die Sie in eine andere Software integrieren, um diese um eine ganz bestimmte Funktion zu erweitern.\u00a0<\/strong><\/p>\n

Auch wir entwickeln solche Erweiterungen, um Ihnen eine simple M\u00f6glichkeit zur Verf\u00fcgung zu stellen, unsere Dienstleistungen in Drittanbieter-Software einzubinden. So k\u00f6nnen Sie sich ganz auf Ihr eigentliches Vorhaben konzentrieren und werden nicht dadurch abgelenkt, sich separat noch auf unserer Seite einloggen zu m\u00fcssen. Ihr Erlebnis wird unkomplizierter und Sie sparen Zeit. Klingt gut? Ist es auch! <\/strong><\/p>\n

Wie wir die kleinen Helferlein entwickeln, m\u00f6chten wir Ihnen in unserem heutigen Blogpost erz\u00e4hlen. Wir gehen dabei die einzelnen Schritte durch \u2013 von der Auswahl der Software bis bin zur Ver\u00f6ffentlichung und erz\u00e4hlen Ihnen zum Schluss noch, was unsere Entwickler wirklich gl\u00fccklich macht… neben viel gutem Kaffee, nat\u00fcrlich.<\/strong><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Der erste Schritt: Welche Plugins werden gebraucht?\u00a0<\/span><\/h3>\n

Welche Plugins entwickelt werden, h\u00e4ngt von mehreren Faktoren ab. Erst einmal werden wir auf unterschiedliche Arten und Weisen auf Plattformen aufmerksam, f\u00fcr die wir Plugins entwickeln. In der Regel ermitteln selbst einen Bedarf in unserem Kundenstamm oder am Markt an sich. Immer wieder werden Erweiterungen und Add-Ons auch durch unsere Kunden angefragt. Unsere Entwickler halten dar\u00fcber hinaus auf Plattformen wie GitHub<\/a>,\u00a0Reddit<\/a> und bei Berichten \u00fcber neue Software im Allgemeinen die Augen offen.<\/p>\n

Es kommt au\u00dferdem vor, dass uns die Entwickler der Plattform selbst fragen, ob wir ein Modul beisteuern m\u00f6chten. Gelegentlich entwickeln wir aber auch einfach eine Erweiterung, weil wir die Software selbst so toll finden. Wir denken, dass wir auf diese Art und Weise unseren Kunden eine vielf\u00e4ltige und sinnvolle Auswahl bieten k\u00f6nnen, die wir immer weiter ausbauen.<\/p>\n<\/div><\/div>

Sie w\u00fcnschen sich, unser Gateway aus einer ganz bestimmten Software heraus nutzen zu k\u00f6nnen?
\nErz\u00e4hlen Sie uns davon!<\/p>\n<\/div><\/div>

Jetzt Plugin w\u00fcnschen<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Der zweite Schritt: Formalit\u00e4ten, Prototypen, Arbeitsaufwand<\/h3>\n

Es wird Sie nicht verwundern: Nicht ausnahmslos jede Plattform die angefragt wird, erh\u00e4lt am Ende auch tats\u00e4chlich ein Add-On von uns. Zun\u00e4chst pr\u00fcft der zust\u00e4ndige Entwickler den Aufwand und baut gegebenenfalls einen Prototypen. Danach wird der Aufwand gegen den Nutzen abgew\u00e4gt. Eine Plugin-Entwicklung kann beispielsweise dann sehr aufwendig sein, wenn im Vorfeld Lizenzen erworben werden m\u00fcssen oder wenige oder keine Richtlinien zur Entwicklung der Erweiterung vorgegeben sind. Ein solche Erweiterung muss also einen gr\u00f6\u00dferen Nutzen f\u00fcr uns bieten, als eine solche, die schnell und leicht zu programmieren ist. \u00dcberwiegt der Nutzen, kann die eigentliche Plugin-Entwicklung losgehen.<\/p>\n

Wie lange es dauert, eine solche Erweiterung zu entwickeln, ist \u00fcbrigens von Software zu Software stark unterschiedlich. Wie lang dieser Zeitraum ist, wird von verschiedenen Faktoren bestimmt, beispielsweise von der Dokumentation der Software, dem Umfang der Erweiterung und der Kommunikation der Verantwortlichen auf der Seite der Softwarehersteller. Eines unserer Plugins wurde zum Beispiel in einer knappen Stunde entwickelt. Andererseits kann es auch vorkommen, dass Module wegen der oben genannten Faktoren mehrere Wochen in der Entwicklung h\u00e4ngen oder nicht freigegeben werden k\u00f6nnen.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Der dritte Schritt: Die eigentliche Plugin-Entwicklung<\/h3>\n

Zum Ablauf der eigentlichen Entwicklung sagt unser Entwickler Andr\u00e9 Folgendes: \u201eIch schaue erst einmal nach, ob die Plattform bereits Software Development Kits anbietet, welche meine Arbeit erleichtern. Das erh\u00f6ht zwar anfangs den Aufwand, zahlt sich auf lange Sicht aber immer aus. Ich schaue au\u00dferdem, wie ich duplizierten Code vermeiden kann. Neulich erst brauchte ich unsere geteilten Inbound-Nummern in mehreren Projekten. Statt diese fest in den Codestamm zu verankern, ver\u00f6ffentliche ich es lieber als zentrales Paket. Ver\u00e4ndern sich unsere Nummern, muss ich nur das Mutterpaket \u00e4ndern und die Versionen in den Kinderpaketen nachziehen. Man k\u00f6nnte sagen, dass sich daraus ein einzelner \u201asingle point of truth\u2018 ergibt.\u201c<\/p>\n

Damit alles gut funktioniert, wird die Erweiterung nat\u00fcrlich auch schon w\u00e4hrend der Entwicklung getestet. Ist Andr\u00e9 zufrieden, folgen noch einige letzte Tests. \u201eF\u00fcr viele Plugins werden automatische Software-Tests erstellt. Diese sind zwar aufwendig, machen sp\u00e4tere Ver\u00e4nderungen aber sicherer. Manchmal werden auch Browser-Tests durchgef\u00fchrt. Hier wird eine Browserinstanz mit Vorg\u00e4ngen gef\u00fcttert, die die Bedienung eines Benutzers simuliert.\u201c<\/p>\n

Das Software-Testing kann aufw\u00e4ndig und repetitiv sein, geh\u00f6rt aber zu Andr\u00e9s Lieblingsaufgaben. \u201eEs gibt mir die Sicherheit, bei zuk\u00fcnftigen Aktualisierungen keine Nebeneffekte auszul\u00f6sen. Ich stelle sicher, dass eine neu gewonnene Funktion nicht bereits vorhandene Funktionen beeintr\u00e4chtigt\u201c, sagt er.<\/p>\n<\/div><\/div><\/div><\/div><\/div>

\"Plugin<\/div><\/div>
<\/div>

Die Entwicklung von Erweiterungen erfordert gute Planung, aber auch Flexibilit\u00e4t<\/em><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Am beliebtesten sind unsere Erweiterungen f\u00fcr:<\/h4>\n<\/div><\/div>
<\/div><\/div><\/div><\/div>
<\/i><\/div>

eCommerce-L\u00f6sungen<\/h4><\/div><\/div><\/div><\/div><\/div>
<\/i><\/div>

Automatisierungs-Software<\/h4><\/div><\/div><\/div><\/div><\/div>
<\/i><\/div>

Kollaborations- und Helpdesk-Software<\/h4><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Der vierte Schritt: Die Ver\u00f6ffentlichung und der Gebrauch durch unsere Kunden<\/h3>\n

Wenn alle Test bestanden wurden, ist unser Plugin bereit f\u00fcr die Ver\u00f6ffentlichung. Unsere Entwickler schauen dann nach M\u00f6glichkeiten zur Distribution. In manchen F\u00e4llen wird das Modul beispielsweise direkt in der App-Bibliothek der Software angeboten. Im Idealfall richten wir au\u00dferdem eine Demo ein, die Interessierte ansehen k\u00f6nnen. Demos stehen aber auch unserem Support zur Verf\u00fcgung, um unseren Kunden bei Fragen so effektiv wie m\u00f6glich helfen zu k\u00f6nnen.<\/p>\n

W\u00e4hrend der Entwicklungszeit schaut \u00fcbrigens das Content Management nach, was in der Entwicklung ist und f\u00e4ngt an, eine Seite f\u00fcr das jeweilige Plugin zusammenzustellen. Diese wird dann nach Ver\u00f6ffentlichung auf unserer Integrationsseite<\/a> hochgeladen, damit Kunden einen \u00dcberblick dar\u00fcber erhalten, in welche Software sie unseren Service bereits unkompliziert integrieren k\u00f6nnen.
\n<\/i><\/p>\n

Dann ist es endlich soweit: Unser Plugin steht Ihnen zur Verf\u00fcgung.\u00a0In den ersten Tagen nach der Ver\u00f6ffentlichung geht h\u00e4ufig das meiste Feedback ein, das wir, je nach Dringlichkeit, so zeitnah wie m\u00f6glich umsetzen.<\/span><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Der f\u00fcnfte, sechste, siebte Schritt: Die Wartungsarbeiten<\/h3>\n

Wenn das Plugin ver\u00f6ffentlicht und in Gebrauch ist, ist die Arbeit unserer Entwickler aber noch nicht beendet. Die meisten Erweiterungen m\u00fcssen regelm\u00e4\u00dfig gewartet werden, um ihre Sicherheit und Funktionalit\u00e4ten zu gew\u00e4hrleisten. Updates in der Software k\u00f6nnen unter Umst\u00e4nden zu Fehlfunktionen f\u00fchren. Daher m\u00fcssen unsere Entwickler immer auf dem neusten Stand bleiben und werden \u00fcber Mailing-Listen der Softwarehersteller \u00fcber anstehende Updates benachrichtigt und informieren sich auf GitHub oder Reddit \u00fcber Updates. Wird ein Update angek\u00fcndigt, passen sie die Erweiterungen auf die neuste Version der Software an. So ist die Arbeit an einem Plugin eigentlich niemals mit der Ver\u00f6ffentlichung abgeschlossen.<\/p>\n<\/div><\/div><\/div><\/div><\/div>

\n
\n\t<\/i>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Die Herausforderungen und die positiven Beispiele<\/h3>\n

Wie in der Einleitung versprochen: Wir haben Andr\u00e9 gefragt, was ihm in der Plugin-Entwicklung besonders gut gef\u00e4llt und was ihn am meisten st\u00f6rt.<\/p>\n

Frustrierend ist es, wie in den vorherigen Punkten sicher schon deutlich wurde, wenn die Dokumentation der Plattform, f\u00fcr die wir ein Plugin entwicklen, veraltet oder unvollst\u00e4ndig ist oder es erst gar keine Dokumentation gibt. Der letzte Punkt kommt gl\u00fccklicherweise nur sehr selten vor. Durch l\u00fcckenhafte Dokumentationen verl\u00e4ngert sich die Arbeitszeit unn\u00f6tig und die Suche nach Fehlern wird deutlich erschwert. Ein richtiger Flow kommt hier in der Entwicklung nicht auf.<\/p>\n

Besonders viel Spa\u00df macht die Plugin-Entwicklung hingegen, wenn die Voraussetzungen anders herum sind. Andr\u00e9 sagte auf die Frage nach seinem Lieblingsmodul: \u201eDas Shopify-Plugin*\u00a0ist schon ziemlich gut zu integrieren, da es hervorragende Bibliotheken f\u00fcr JavaScript hat und diese auch astrein dokumentiert sind. Die Entwicklung hat mir wahrscheinlich bisher am meisten Spa\u00df gemacht. Aus der Architektur von Shopify ergibt sich aber gleichzeitig auch der gr\u00f6\u00dfte Nachteil: Die Serverseite l\u00e4uft auf unserer Infrastruktur. Dadurch habe ich deutlich mehr Wartungsaufwand als bei konventionellen Plugins.\u201c<\/p>\n

*Unser Shopify-Plugin befindet sich zurzeit in \u00dcberarbeitung (Stand Februar 2023). Sobald es wieder verf\u00fcgbar ist, werden wir es hier erneut verlinken.<\/em><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Viele beeinflussende Faktoren<\/h3>\n

Es sind also einige Arbeitsschritte, die von der Idee bis zum fertigen Plugin absolviert werden m\u00fcssen. Der Erfolg der Plugin-Entwicklung wird au\u00dferdem von vielen verschiedenen Faktoren beeinflusst.\u00a0<\/span><\/p>\n

Finden wir eine Erweiterung, dessen Nutzen den Aufwand \u00fcbersteigt, wird seine Entwicklung geplant. Dabei ist besonders wichtig, wie gut die Dokumentation der Hersteller ist. Je nachdem wie aufwendig die Entwicklung ist, k\u00f6nnen von der Idee bis zum fertigen Modul nur wenige Stunden vergehen. Gestaltet sich die Entwicklung schwierig, kann es selten auch einmal mehrere Wochen dauern, bis alles klappt. Wir freuen uns aber immer, wenn ein neues Plugin einsatzbereit ist. Sie k\u00f6nnen sich sicher sein: Wir arbeiten immer weiter daran, unsere Integrationsm\u00f6glichkeiten f\u00fcr Sie auszubauen.<\/p>\n

Haben Sie noch Fragen zu unseren Integrationen, Plugins oder Clients? Wir freuen uns \u00fcber Ihre Nachricht<\/a>.\u00a0<\/span><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Mit besten Gr\u00fc\u00dfen<\/span><\/h6><\/div><\/div>
\"Ihr<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>

Headerbild von kreatikar auf\u00a0<\/i>pixabay.com, Farben ver\u00e4ndert.<\/i><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"Von der Idee zur fertigen Erweiterung \u2013 Unsere Plugin-Entwicklung in f\u00fcnf Schritten Wahrscheinlich kennen Sie sie bereits: Plugins. Kleine Programme, die Sie in eine andere Software integrieren, um diese um eine ganz bestimmte Funktion zu erweitern.\u00a0 Auch wir entwickeln solche Erweiterungen, um Ihnen eine simple M\u00f6glichkeit zur Verf\u00fcgung zu stellen, unsere Dienstleistungen in Drittanbieter-Software einzubinden....","protected":false},"author":1,"featured_media":26571,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[423],"tags":[5310,5308,5309],"class_list":["post-26542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kooperationen-integrationen","tag-integrationen","tag-plugin-entwicklung","tag-plugins"],"_links":{"self":[{"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/posts\/26542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/comments?post=26542"}],"version-history":[{"count":51,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/posts\/26542\/revisions"}],"predecessor-version":[{"id":87687,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/posts\/26542\/revisions\/87687"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/media\/26571"}],"wp:attachment":[{"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/media?parent=26542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/categories?post=26542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seven.io\/de\/wp-json\/wp\/v2\/tags?post=26542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}