Tipps für Plugin-Entwickler von Josh Crawford
Coding
Zum einen sei es völlig in Ordnung, Fehler zu machen und diese mit der Zeit auszubessern. Es ist nur wichtig anzufangen und es einfach zu tun.
That fear of not being able live up to the standards of other developers is definitely something that holds devs back from actually getting in there and giving it a go. We can often forget that they only got to their level with a loft of time and hard work. - Javan Griffiths
Wenn ein Craft CMS-Plugin entwickelt wird, sollte es so aussehen, als sei es ein Teil von Craft. Die Craft UI sollte verwendet werden, anstatt eine eigene dem User aufzuzwingen, da diese Konsistenz Vertrauen in die Plattform stärkt.
Auch wäre es ratsam, PHPStorm zu verwenden, da diese IDE einige Vorteile gegenüber normalen Editoren wie VS Code oder Sublime Text hat. Zum einen gibt es Auto-complete für alle Dinge, eine Inline-Dokumentation für Funktionen, Inspektionen, um das eigene Coding zu verbessern oder Debugging und Testing. Dazu wird Craft und Yii unterstützt, inklusive deren Code-Richtlinien.
Unabhängig vom Editor, solle man aber konsistent mit Funktionen, Namensgebung und der Prozesse sein. Wenn Zweifel jeglicher Art bestehen, es einfach so machen, wie es Pixel & Tonic tut.
Auch verwies Josh auf die Wichtigkeit von Kommentare. Natürlich soll nicht jede Codezeile kommentiert werden, aber zumindest die wichtigen Stellen. Und dabei sollte man so detailliert und erklärend wie nötig sein, auch wenn dadurch der Kommentare sich über mehrere Zeilen erstreckt. Bei komplexen Problemen hilft es, erst seine Gedanken als Kommentare aufzuschreiben und danach den eigentlichen Code zu tippen.
Plugin-Ideen
Zur Ideenfindung für neue Plugins sollte man ruhig sich andere Content-Management-Systeme wie WordPress oder Statamic anschauen. Haben diese Funktionalitäten oder Plugins, von denen Craft CMS profitieren könnte? Aber auch auf bestehende Craft Plugins sollten als Beispiel dienen. Etwa mit dem Craft Plugin-Entwickler reden, wie sein Plan aussieht, um etwa eine gewünschte Funktion einzubauen. Und falls es da nichts gibt, vielleicht ein eigenes Plugin schreiben.
Branding & Marketing
Der aktive Aufbau einer Marke hilft dabei, Vertrauen zu schaffen und die eigene Reputation zu verfestigen. Dabei können persönliche Marken genauso kraftvoll sein wie Agentur-Marken. Hilfreich zum Aufbau der Marke wäre etwas zu finden, dass die eigenen Plugins verbindet. Sei es die Form/Farbe/Stils der Icons oder aber der Name.
Natürlich wäre auch eine Website wichtig, die nicht riesengroß sein muss, aber guten Inhalt haben und optimiert für Suchmaschinen sein sollte. SEOmatic wäre unter anderem ein Plugin, was diesbezüglich helfen kann. Auch sollte ein eigener Blog in den Überlegungen eine Rolle spielen. Einerseits hilft ein Blog bei SEO, aber noch viel wichtiger ist, dass er das eigene Gehirn stärkt. Einfach über den nächsten Release oder Plugin-Empfehlungen schreiben.
Als Nächstes sollten hübsche GitHub Pages angelegt werden. Diese sind erforderlich, um ein Craft-Plugin zu veröffentlichen und dann sollte man diese auch ansprechend gestalten. Eigenes Logo, Link zur Website und vor allem Screenshots vom Plugin.
Preisgestaltung
Es gibt eine Richtlinie bezüglich der Preisgestaltung von Plugins in der Craft Dokumentation. Demnach sollten kleinere Plugins, die eher kleine Utilities sind, zwischen 10 und 29 US-Dollar kosten. Komplexe Feldtypen und Integrationen zwischen 49 und 99 US-Dollar. Plugins mit signifikanten neuen System-Funktionen 149 bis 249 US-Dollar. Und große oder Nische-Apps zwischen 499 und 999 US-Dollar.
Für die jährlichen Updates nach dem ersten Jahr wird eine Größenordnung von 20 bis 50 % vom ursprünglichen Preis empfohlen.
Verbb selbst hat eine Anatomie der Preisgestaltung für sich festgelegt. Diese berücksichtigt zum einen die Entwicklungszeit und der zu erwartende spätere Support-Aufwand. Auch auf die Zukunftspläne wird geachtet, ist das Plugin zum Beginn eher einfach und wird dann später komplex? Wie viel Gegenleistung bringt das Plugin und welche Konkurrenz gibt es?
Bedeutend dabei ist, dass nicht nur die einzelnen Punkte geachtet werden soll. Vielmehr ist das große Ganze wichtig, gewissermaßen die Kombination aus allen Punkten.
Maßgeblich ist aber auch, dass man sich nicht unter Wert verkaufen und das schließt kostenlose Plugins mit ein.
Community & Social
Einfach aktiv in der Community sein, sei es Craft Slack oder Fragen beantworten auf Craft Stack Exchange. Bei Slack ist es möglich, Benachrichtigungen für die eigenen Plugin-Keywords anzulegen. Dazu Follower auf Twitter aufbauen, etwa immer twittern, wenn es ein neues Plugin-Update gibt. Das Wichtigste bei all diesen Plattformen ist, dass man aktiv und sichtbar sein sollte und nicht nur der stille Mitleser.
Um seine Community-Präsenz zu erhöhen, hilft es vielleicht, eigene Ziele zu setzen. Etwa jede Woche 30 Minuten in Slack kommunizieren. Oder eine bestimmte Anzahl an Stack Exchange-Antworten festlegen. Oder einen Blogartikel schreiben oder andere Artikel auf Twitter teilen.
Dokumentation
Um den Prozess einer guten Dokumentation zu vereinfachen, wäre es hilfreich, eine Struktur oder Vorlage anzufertigen.
Eine Struktur könnte wie folgt aussehen:
- Einführung (1-2 Sätze)
- Überblick (1 Absatz und Aufzählungspunkte für die Merkmale)
- Wie installieren?
- Konfiguration (Einstellungen, falls anwendbar)
- Einzelne Merkmale genauer vorstellen
- Events (falls anwendbar)
- Dokumentation
- Lizenz
- Danksagungen
- Support/Kontakt
Eine gute Dokumentation ist emphatisch und es ist wichtig, dass man versucht, sich von seiner eigenen Wissensblase zu trennen und sich eben in den Nutzer reinzudenken.
Statt einfach zu schreiben: "To install the plugin, run `composer require myplugin`“ eher etwas formulieren wie "There are several options to install the plugin. Use `composer require myplugin`from the command line, or search for 'My Plugin' on the plugin store in your Craft installation."
Die Dokumentation könnte dann von Vuepress gehostet werden. Vuepress wandet das Markdown in eine statische Seite um. Dadurch ist das Ergebnis zügig und selbst Algolia Suche wäre verfügbar.
Support
Guter Support ist schwierig, aber enorm wichtig für den eigenen Erfolg. Zumindest bei den kostenpflichtigen Plugins. Bei gebührenfreien Plugins kann auf Support verzichtet werden, aber dann sollte genau das von Beginn an klar kommuniziert werden.
Bei Support ist zunächst wichtig, dass es einfach ist, mit einem in Kontakt treten zu können. Das kann ein Kontaktformular auf der Website sein, E-Mail, Slack, Stack Exchange, Social Media oder Github Issues. Es wäre klug, den Support auf einer Plattform zu beschränken.
Josh empfiehlt noch den Vortrag „How I Learned to Stop Worrying and Love Support“ von Brad Bell auf der PEERS Conference 2015.