Ben Croker – Plugin-Entwicklung als Unternehmen
Wie bist du dazu gekommen, ein Plug-in-Entwickler zu werden?
PutYourLightsOn war das dritte Unternehmen, das ich gegründet habe, also hat es eine Weile gedauert, bis ich dort ankam. Und selbst seitdem - 2007 - hat es Zeit gekostet, dorthin zu gelangen, wo ich heute bin, es war eine lange Lernerfahrung.
Damals benutzten wir Flash, was sich als etwas herausstellte, das sich nicht sehr lange halten würde. Aber es war eine wunderbare Technologie und bot unendliche Möglichkeiten, insbesondere für interaktive Erlebnisse.
Dieses Unternehmen bestand etwa zwei Jahre und wuchs nicht so, wie wir es wollten, also wechselte ich zu einem anderen Unternehmen, ebenfalls im Bildungsbereich, aber diesmal im Bereich des Sprachenlernens, das ebenfalls etwa zwei Jahre Bestand hatte. Dann platzte die Dotcom-Blase, die Wirtschaft änderte sich ziemlich schnell, und wir mussten das Unternehmen schließlich verkaufen. Das war nicht unsere Absicht; wir wollten nicht schnell aussteigen, aber wir sahen, dass wir nicht in der Lage waren, es so zu entwickeln, wie wir es wollten. PutYourLightsOn war also mein drittes unternehmerisches Abenteuer.
Warum hast du PHP für dein Unternehmen gewählt?
In all diesen Jahren habe ich hauptsächlich Software mit PHP entwickelt. Schon zu Beginn fiel mir auf, wie einfach und portabel PHP war. Es gab zwar auch andere Programmiersprachen, weitere Frameworks und Content-Management-Systeme, aber die waren schwer einzurichten, und bestimmte Webhoster wollten sie nicht hosten. PHP konnte überall eingesetzt werden, und das war anfangs der Reiz.Ich habe eine Reihe verschiedener Technologien ausprobiert, Flash habe ich bereits erwähnt, aber schon damals habe ich PHP hinter den Kulissen eingesetzt. Ich verwendete das CodeIgniter-Framework, das seiner Zeit in Bezug auf seine Möglichkeiten und seine Architektur voraus war. Die Skalierung von Software ist immer eine Herausforderung, und das war für mich bei PHP immer der Fall. Aber es hat sich seither sehr weiterentwickelt, und wir haben jetzt etwas, das sehr skalierbar ist und wunderbar funktioniert.
Ich habe schnell herausgefunden, dass bei der Entwicklung von Software oder einer Webanwendung in fast neun von zehn Fällen eine Inhaltskomponente vorhanden sein muss. Und man kann sich entweder dafür entscheiden, das gesamte System zur Verwaltung dieser Inhalte selbst zu entwickeln, oder man kann auf ein Content-Management-System zurückgreifen. Nachdem ich mich für CodeIgniter entschieden hatte, entdeckte ich natürlich ExpressionEngine, da EllisLab das Unternehmen war, das beide Systeme entwickelte. Das war ungefähr in der Version 1.5 von ExpressionEngine, und kurz danach begann ich mit der Entwicklung von Plugins für diese Software. Wir benutzten ExpressionEngine, um die Sprachenlernen-Website zu betreiben, um alle Benutzerinhalte und Benutzerkonten zu verwalten. Wir hatten verschiedene Sprachschulen weltweit als Benutzer, so dass sie alles über ihre Sprachschulen über das System verwalten konnten. Ich erkannte also schnell, dass ich Plugins erstellen musste - sie wurden "Add-ons" für ExpressionEngine genannt - um diese zusätzlichen Funktionen hinzuzufügen. Die natürliche Entwicklung war, dass ich anfing, Add-ons zu entwickeln, von denen ich dachte, dass andere Leute sie benutzen könnten. Ich begann auch, diese zu vertreiben, zunächst auf meiner eigenen Website und später auf devot-ee, einem Add-on-Shop für ExpressionEngine.
Was für eine Reise!
Ja, ich habe eine Weile gebraucht, um herauszufinden, was ich wollte, ich musste diese beiden Unternehmen durchlaufen, um es herauszufinden. Ich sehe das als ein wiederkehrendes Thema – dass man es beim dritten Mal richtig macht. Beim ersten Mal findet man heraus, was man aufbauen möchte, beim zweiten Mal wiederholt man diesen Prozess und schneidet das Fett ab, und beim dritten Mal findet man heraus, was es wirklich ist. Für mich war es die richtige Größe und der richtige Umfang, und jetzt konzentriere ich mich ausschließlich auf die Entwicklung von Craft CMS und Plug-ins. Bei PutYourLightsOn entwickeln wir kostenlose Open-Source-Plug-ins, kommerzielle Plug-ins und selbst entwickelte Plug-ins. Ferner bieten wir Schulungen für Craft CMS und Plug-in-Entwicklung an, sowohl persönlich als auch über Videos. Und ich unterrichte außerdem an einer lokalen Universität in Graz. Das klingt nach viel, aber in den letzten Jahren konnte ich mich wirklich auf die Dinge konzentrieren, die mir am Herzen liegen.
Wie entstehen bei dir die Ideen für deine Plug-ins? Willst du deine Probleme lösen oder schaust du dir den Markt an und entwickelst, was er benötigt
Ich glaube, ich kann sagen, dass jedes Plug-in, das ich entwickelt habe, entweder aus einem Bedürfnis heraus entstanden ist oder weil ich einen Anwendungsfall identifiziert habe, der immer wieder auftaucht, vorwiegend für mich selbst. Ich glaube nicht, dass es Sinn ergeben würde, ein Plug-in für ein Problemfeld zu entwickeln, mit dem ich nicht vertraut bin.
Ich interessiere mich für viele Dinge im technischen Bereich, so wie ich mich für Leistung und Sicherheit interessiere. Das sind an sich schon große Themen, aber noch interessanter ist, wie sie sich speziell auf Craft beziehen. Die Ideen entstehen aus diesen Interessen und dem Bedarf an Leistung und Sicherheit in einem CMS. Ob ich diese Ideen verfolge, ist eine Sache, und ob ich mich entschließe, ein Plug-in zu bauen und zu vertreiben, ist eine andere Frage. Ich habe im Laufe der Jahre viele Plug-ins entwickelt, die entweder für mich selbst oder für meine Kunden bestimmt waren und die nicht das Licht der Welt erblickten oder an andere Personen weitergegeben wurden. Ich bin sehr selektiv und wählerisch bei der Entscheidung, welche Plug-ins vertrieben werden und welche Plug-ins zu kommerziellen Plug-ins werden, weil sie ein sehr unterschiedliches Maß an Support und Wartung erfordern.
Plug-ins wie Blitz zum Beispiel entstanden aus dem Bedürfnis und dem Wunsch, eine sehr schnelle und leistungsfähige Website zu haben, die sich leicht anfühlt, obwohl sie von einem dynamischen CMS betrieben wird. Die Idee für Sherlock, ein Sicherheits-Plug-in, war: "Wäre es nicht toll, wenn ich einen Sicherheitsmonitor hätte, der meine Website ständig überwacht und mir mitteilt, wenn etwas nicht in Ordnung ist? Und je mehr Websites man verwaltet und pflegt, desto schwieriger wird es, dies manuell zu tun. Also sollten wir Dinge automatisieren, die bis zu einem gewissen Grad automatisiert werden können.
Verwendest du nur deine Plug-ins oder auch die von anderen Entwicklern?
Die Websites, die ich entwickle, verwenden in der Regel 5 oder 6 meiner Plug-ins, dazu vielleicht 1 oder 2 von Drittentwicklern. Und ich denke, das ist bei vielen Plug-in-Entwicklern der Fall, wie bei Andrew Welch von NYStudio107. Er verwendet seine Plug-ins hauptsächlich, weil sie die Bedürfnisse erfüllen, die er im Allgemeinen hat. Das soll nicht heißen, dass jeder Plug-in-Entwickler eine Reihe von Plug-ins entwickeln sollte, die alle seine Probleme lösen, aber es ergibt Sinn, dass dies ein Ausgangspunkt sein könnte.
Warum hast du dich für deine Plug-ins auf Nischen-CMS wie Craft oder ExpressionEngine verlassen? Wäre es nicht lukrativer, wenn du dich auf WordPress spezialisiert hättest?
Möglicherweise. Ich habe es bis zu dem Punkt geschafft, an dem ich hauptberuflich in der Plug-in-Entwicklung tätig bin. Und ich würde infrage stellen, ob Craft immer noch ein Nischen-CMS ist oder ob es schon so weit gereift ist, dass es sich einen gesunden Marktanteil gesichert hat. Es scheint das Unternehmen, das dahintersteht, Pixel & Tonic sowie ein ganzes Ökosystem von Entwicklern zu unterstützen, sodass ich sagen würde, dass Craft in diesem Stadium mehr als nur ein Nischen-CMS ist.
Ich war auf der Suche nach einer Technologie, einem Team und einer Community, an die ich wirklich glaubte, und das sah ich bei Pixel & Tonic von Anfang an. - Ben Croker
Die Liebe zum Detail und die Qualität ihrer Arbeit sind hervorragend. Außerdem haben sie sich von Anfang an auf die Erweiterbarkeit konzentriert. Es gab immer eine Plug-in-Architektur für Craft, sogar von Version 1 an. Darin liegt auch mein Interesse, denn ich möchte das CMS um weitere Funktionen erweitern, während der Kernteil des CMS die Verwaltung von Inhalten ermöglicht. Natürlich gibt es Dinge wie das Importieren und Exportieren von Inhalten, die meiner Meinung nach eingebaut sein sollten. Es gibt viele Plug-ins von Erstanbietern, die Craft CMS hat und die absolut sinnvoll sind. Und dann gibt es noch die Plug-ins von Drittanbietern, die all die verbleibenden Lücken füllen: Dinge wie Performance, SEO, Formulare und Navigation. Aber die Tatsache, dass die Plug-in-Architektur ein wesentlicher Bestandteil von Craft ist, hat mich immer angezogen.
Pixel & Tonic fördert die Community, stärkt die Menschen und bringt sie auf eine sehr respektvolle Weise zusammen. Das habe ich bis zu einem gewissen Grad auch in anderen Tech-Communities erlebt, aber nicht in diesem Ausmaß. Ich liebe es außerdem, auf Konferenzen zu gehen, Veranstaltungen zu organisieren, Leute zu treffen und die Gesichter hinter den Benutzernamen und Kennungen kennenzulernen, mit denen ich jeden Tag zu tun habe.
Wie schwierig ist der Balanceakt, das CMS zu erweitern, ohne die Plug-in-Entwickler zu verärgern?
Ich hatte nie Angst davor, dass eines meiner Plug-ins in den Kern integriert wird – der Plug-in-Store ist eine Einladung an Plug-in-Entwickler, zu kommen und Funktionen hinzuzufügen. Pixel & Tonic nimmt 20 % des Umsatzes als Provision, was sehr fair ist, da sie ein ganzes Ökosystem für Entwickler bereitstellen.
Nach dem, was ich gesehen habe, ist der Ansatz von Pixel & Tonics, sich auf das Kernprodukt Craft CMS zu konzentrieren. Es gibt First-Party-Plug-ins, die in der Regel Funktionen bereitstellen, die in Craft integriert sind, wie FeedMe oder Craft Commerce. Wenn man also Commerce verwendet, weiß man, dass man eine Lösung von einem Erstanbieter erhält. Ansonsten denke ich, dass Dinge, die Funktionen von Drittanbietern hinzufügen, Plug-ins bleiben sollten. Ich denke, Pixel & Tonic ist damit im Einklang – sie wollen ein blühendes, wachsendes Ökosystem von Plug-ins haben.
Was hältst du von den neuen jährlichen Veröffentlichungen?
Das ist vielversprechend. Wenn Sie ein Plug-in für Craft 3 haben, wird es nicht automatisch mit Craft 4 funktionieren. Es ist ein gewisser Arbeitsaufwand erforderlich, um es für Craft 4 zu aktualisieren, je nachdem, was dein Plug-in macht. Manch einer mag das als Nachteil ansehen, und wäre es nicht toll, wenn man einen automatischen Übergang hätte? Aber ich denke, dass es helfen wird, die Plug-ins auszusortieren, die nicht mehr gewartet werden oder nicht mehr relevant sind, weil Craft Core unter anderem diese Funktionalität hinzugefügt hat. Ich denke, dass dies ein natürlicher Filter sein wird, der dazu beiträgt, Plug-ins im Laufe der Zeit zu überprüfen. Die Verwendung von Drittanbieter-Plug-ins birgt immer ein Risiko. Ich denke, dass es einen Prozess gibt, wenn man sich entscheidet, welche Plug-ins man auf seinen Websites verwenden und wovon man sich abhängig machen will. Und dieser Prozess geht oft in die Richtung: "Oh, dieses Plug-in wurde nicht auf Craft 4 aktualisiert, oder ich bekomme keinen Support", also lässt man das Plug-in fallen und lernt, welche Plug-in-Entwickler vertrauenswürdiger und zuverlässiger sind.
In der Zwischenzeit muss man jährliche Update-Kosten für Plug-ins bezahlen. Wie hat das dein Geschäft lukrativ gehalten?
Die Verlängerungsgebühren waren äußerst wichtig. Ich möchte betonen, dass Pixel & Tonic im Laufe der Jahre einige wesentliche Entscheidungen getroffen hat, die ich damals sehr oft infrage gestellt habe. Erst nach einiger Zeit im Nachhinein, habe ich ihre Weitsicht erkannt. Eine davon ist, dass eine Plug-in-Lizenz für ein Jahr gültig ist und man dann jedes weitere Jahr eine Update-Gebühr zahlen muss, um Updates und weiteren Support zu erhalten. Das bedeutet, dass das Geschäftsmodell als Plug-in-Entwickler auf diese Weise sehr viel nachhaltiger wird. Die Craft-Community hat nur eine bestimmte Größe, und auch wenn sie stetig wächst, ist es immer noch ein allmähliches Wachstum – wir können nur an eine begrenzte Anzahl von Unternehmen Plug-ins verkaufen.
Ich denke, diese Obergrenze wäre schnell erreicht, wenn es nur um den einmaligen Verkauf von Lizenzen ginge. Jede Agentur kann nur eine bestimmte Anzahl von Websites pro Jahr erstellen; je größer das Projekt, desto länger dauert es. Ich denke, das ist etwas, was wir in den Tagen von ExpressionEngine erlebt haben, als wir Add-ons ohne Lizenz-Updates verkauften, dass man schnell einen Höchststand erreicht, und dann würden die Verkäufe auf einem Plateau enden oder möglicherweise zurückgehen. Die Verlängerungsgebühren stellen eine wiederkehrende Einnahmequelle für diese Plug-ins dar. Und es macht für mich absolut Sinn, dass jemand, der etwa eine Lizenz für das Blitz-Plug-in kauft, auch in Zukunft jahrelang Support erhält. Man erhält kontinuierliche Wartung, und Wartung bedeutet nicht nur Fehlerbehebungen und Sicherheitsupdates, sondern auch neue Funktionen. Und wenn Craft Core neue Funktionen hinzufügt, können wir sie nutzen, es handelt sich also um neu hinzugekommene Funktionalitäten. Als Kunde wäre es fantastisch, wenn man eine lebenslange Lizenz bekäme, aber als Plug-in-Entwickler ist das einfach keine nachhaltige Art, ein Geschäft zu betreiben. Mit diesen Verlängerungsgebühren ist es nachhaltig.
Das Tolle daran ist, dass man als Kunde nie gezwungen ist, Verlängerungsgebühren zu zahlen. Es ist optional und man kann immer ältere Versionen der installierten Plug-ins weiter nutzen. Es war sehr vorausschauend, dies von Anfang an im Plug-in-Store durchzusetzen und keine alternative Lizenzierungsmethode anzubieten. Einfach ein Lizenzierungssystem, welches für alle Plug-ins gilt.
Wie zeitaufwendig ist der Support für Plug-ins?
Nun, im Grunde genommen bin ich jetzt im Supportgeschäft als ein technischer Support-Ingenieur. Oh, und ich schreibe Dokumentation, also bin ich wohl auch ein technischer Autor. Und ich schreibe die Plug-ins, also bin ich ein Software-Ingenieur. Aber ich bringe auch Ideen ein, also bin ich Produktmanager. Ich trage viele, viele verschiedene Hüte. Aber ich schätze, der Support macht etwa 25–30 % meiner Arbeit aus. Dazu gehört alles von der Beantwortung von Fragen über die Prüfung von Fehlerberichten bis zum Besuch von Stack Exchange oder Discord, wo ich den Leuten helfe, unabhängig davon, ob es etwas mit meinen Plug-ins zu tun hat oder nicht. Wenn man sich einmal angewöhnt hat, andere zu unterstützen und ihnen zu helfen, hat das eine süchtig machende Qualität. Es ist unglaublich befriedigend, jemandem zu helfen, in den man sich vollends hineinversetzen kann, weil man selbst schon einmal in dieser Situation war – man kämpft mit dieser Sache, und es droht eine Abgabefrist, und man benötigt einfach ein wenig Unterstützung. Ich helfe den Leuten gerne, wann immer ich kann, und natürlich auch, wann immer es die Zeit erlaubt.
Ich kann ehrlich sagen, dass die Unterstützung ein wichtiger Aspekt meiner Arbeit ist. Ich neige dazu, den Großteil des Supports selbst zu leisten, weil ich gerne mit Menschen zu tun habe. Ich reagiere schnell, auch wenn ich nicht sofort eine Antwort oder Lösung anbieten kann. Ich denke, dass diese Reaktionsfähigkeit sehr wichtig ist. Für mich ist es wichtig, daran zu denken, dass wir es mit menschlichen Wesen zu tun haben. Wir sind alle nur Menschen, die versuchen, das zu tun, was wir tun. Wir haben es nicht mit Maschinen oder Robotern zu tun. So behandle ich die Leute auch als menschliche Mitmenschen.
Wir haben über deine Karriere und dein Unternehmen gesprochen. Was findest du an deinem Job am befriedigendsten?
Das ist eine gute Frage. Es mag wie ein Klischee klingen, aber was ich an meinem Job am meisten schätze, ist die Freiheit, die er mir gibt, um die Dinge zu tun, die ich liebe. Ich schätze mich sehr glücklich, einen Bereich in einer Branche gefunden zu haben, der vernünftig bezahlt wird und viel Freiheit bietet. Wir können so gut wie von überall auf der Welt aus arbeiten. Wenn wir selbstständig sind oder uns selbstständig machen, können wir arbeiten, wann wir wollen. Und wir können mit Menschen in der ganzen Welt in Kontakt treten. Ich habe Kunden in den USA, Kanada, Australien, Asien, Südamerika und in anderen Teilen der Welt
Was ich auch sehr lohnend finde, ist die Möglichkeit, das Leben von Menschen zu berühren, die die von mir entwickelten Dinge nutzen. Wenn mich Leute kontaktieren und mir sagen, dass sie meine Plug-ins benutzen, schaue ich mir am liebsten an, was ihre Website macht. Ich habe einige wunderbare Projekte gefunden, die sehr gute Arbeit leisten, und zu sehen, dass meine Plug-ins dabei helfen, dies zu ermöglichen – selbst wenn es nur ein kleiner Teil ist – ist besonders lohnend.
Außerdem bedeutet es, dass ich Zeit mit meiner Frau im Freien verbringen kann und wir das ganze Jahr über an verschiedenen Orten leben und reisen können. Es ist eine Belohnung, wenn ich sehe, dass die von mir geschaffenen Lösungen genutzt werden, ich bekomme ein großes Maß an Freiheit zurück und die Möglichkeit, mich in der Welt zu bewegen und mit Menschen in Kontakt zu treten.