Ein Gastbeitrag von Eric Davis
Im Laufe der Jahre habe ich als Berater so einige bizarre Entwicklungsanfragen von Kunden gesehen. Eine der interessantesten kam von einem Kunden, der einen Klon von Windows XP wollte, der zu 100 Prozent Windows-kompatibel war. Das Budget dafür betrug übrigens gerade einmal 200 Dollar.
Zum Glück war diese Anfrage nicht an mich gerichtet.
Doch Spaß beiseite, nicht jeder abenteuerliche Kundenwunsch ist eine Fantasie. Einige Anfragen klingen für ihre Empfänger merkwürdig, sind aber in einem handfesten Problem des Kunden begründet.
Vielleicht ist die Arbeitsweise im Unternehmen des Kunden einzigartig oder diese verrückte Idee hat tatsächlich das Potenzial jede Menge Geld für den Kunden zu generieren. Daher sollten wir auch Anfragen, die zunächst etwas verrückt klingen, nicht einfach ignorieren – vor allem dann nicht, wenn sichtbar wird, dass sich der Kunde Gedanken gemacht hat und ein konkretes Problem lösen möchte.
Ich habe mich mit anderen Shopify Partnern unterhalten, die mir von Anfragen berichtet haben, bei denen es um (die oft kurzfristige) Entwicklung einer maßgeschneiderten Shopify App ging. Für manche mag das verrückt klingen, für mich hingegen wie ein ganz normaler Dienstag.
Deswegen möchte ich heute auf solche Szenarien eingehen und zeigen, dass das Erstellen einer benutzerdefinierten Shopify App gar nicht so schwierig ist wie es sich zunächst anhört. Und tatsächlich könnte eine Neuentwicklung sogar die beste Option für deinen Kunden sein.
Die Quadratur des Kreises
Häufig fragen Kunden eine benutzerdefinierte App an, weil sie erfolglos versucht haben, ihre Probleme durch eine Änderung des Themes oder die Verwendung von Dutzenden von Apps aus dem App Store zu beheben.
Entweder brauchten sie etwas, das über die Möglichkeiten eines Themes hinausging, die App aus dem App Store bot nur eine generische Lösung, oder sie hatten einfach nicht die nötigen Fähigkeiten, um das Problem in Eigenregie zu lösen.
Manchmal ist das Problem dabei so belastend für sie, dass man es förmlich spüren kann. Die Tonlage ihrer Stimme verändert sich und im Emailverkehr kann man die Anspannung zwischen den Zeilen lesen. Kürzlich kontaktierte mich ein Interessent, der sich wie folgt äußerte:
„Ich habe jede App ausprobiert und mich selbst bei dem Versuch verrückt gemacht, Apps, Code und verschiedene Methoden zu kombinieren, ohne am Ende ein zufriedenstellendes Ergebnis zu erzielen.“
Lesetipp: Die 10 wichtigsten Fragen und Antworten zu Shopify Apps.
Wenn alles, was du brauchst, ein Werkzeug ist
Ein Grund dafür, dass der eine oder andere Entwickler so manches mal abweisend auf anscheinend bizarre Anfragen reagiert, ist, dass wir unsere eigene Komfortzone nur ungern verlassen möchten. Wenn du ausschließlich Shopify Themes entwickelst, wirst du automatisch nach einem solchen Theme greifen, wenn es darum geht Kundenprobleme zu lösen. Jede darüber hinausgehende Anfrage wird dich nervös machen und dir Schwierigkeiten bereiten.
Dasselbe gilt für Back-End-Entwickler, Front-End-Entwickler und alle anderen Freelancern und Arbeitnehmern, die sich Spezialwissen angeeignet haben. Unsere natürliche Reaktion ist der Griff nach unserem bewährten Werkzeug, um das Problem des Kunden zu lösen. Manchmal sind wir uns einfach nicht darüber im Klaren, dass es da draußen vielleicht eine bessere Lösung gibt.
Softwareentwicklung? Das klingt so kompliziert
Aber das Entwickeln benutzerdefinierter Apps ist schwierig, nicht wahr? Benötigt man dafür nicht ein Team von Entwicklern und eine lange Entwicklungszeit?
Wir alle kennen wahrscheinlich mindestens eine Person, die Monate oder gar Jahre an einer App-Idee gearbeitet hat – an einer App, die im nächsten Monat veröffentlichen werden soll (wobei „nächster Monat“ in den letzten 10 Monaten jeden Monat verschoben wurde ...).
Für jeden Fall, in dem ein qualifiziertes Team Monate braucht, um eine App zu entwickeln, gibt es ein weiteres Beispiel: Das eines Solo-Entwicklers, der in einigen Nächten und an ein bis zwei Wochenenden etwas entwickelt und innerhalb kürzester Zeit launcht. Manchmal in nur einer Woche.
Lesetipp: Mehr als Drag & Drop: Wie du den Code von Shopify Themes anpasst.
Der Prozess, mit dem ich Dripify von Grund auf neu entwickelt habe
Nachfolgend möchte ich den Prozess skizzieren, mit dem ich meine erste öffentliche Shopify App, Dripify, erstellt habe.
Obwohl Dripify eine öffentliche App war, die im App Store gelistet wurde, kann genau der Prozess, den ich bei ihrer Entwicklung vorgenommen habe, auch zur Erstellung privater Apps für deine Kunden verwendet werden.
Als ich mit Dripify anfing, hatte ich bereits an Kunden-Apps gearbeitet. Somit wusste ich bereits ein wenig über die APIs von Shopify. Der Unterschied bestand darin, dass es sich bei all diesen Apps um bestehende Apps handelte. Meine Aufgabe bestand darin, eine funktionierende Codebasis zu verbessern oder zu überarbeiten.
Bei Dripify musste ich jedoch bei Null anfangen. Von der Authentifizierung über die Zahlungen bis hin zur Benutzeroberfläche musste ich alles neu aufbauen.
Als Krönung des Ganzen habe ich mir selbst eine Herausforderung gestellt. Ich würde der Entwicklung von Dripify nur eine einzige Arbeitswoche widmen und die App bis Freitagnachmittag auf den Markt bringen, komplett mit allen Funktionen und bereit zur Installation durch die Händler.
Die Planungsphase: Vorbereitung ist alles
Angesichts des begrenzten Zeitrahmens wollte ich nicht gleich in die Entwicklung einsteigen. Denn das ist ein einfacher Weg, über das Ziel hinaus zu schießen, sich zu verirren, mit einem neuen Tool zu spielen, auf YouTube zu landen und im Allgemeinen viel Zeit zu verlieren.
Ich musste mich konzentrieren – nicht nur Ablenkungen vermeiden, sondern daran arbeiten, welche Funktionen für die App tatsächlich erforderlich waren.
Einige Tage vor meiner geplanten Entwicklungswoche habe ich mich hingesetzt und mir genau überlegt, was die App leisten (und nicht leisten) sollte. Ich habe eine „Trail Map“ erstellt, was einfach mein Phantasiename für eine Roadmap in der Softwareentwicklung ist. Darin beantwortete ich die folgenden Fragen:
- Was ist der Zweck dieser App?
- Welche Funktionen werden enthalten sein?
- Wie lange wird der Aufbau der Funktionen dauern und wie sieht der Zeitplan aus?
Die Beantwortung dieser Fragen mit meiner Trail Map war von entscheidender Bedeutung. Bei einer Entwicklung in nur fünf Tagen würde alles, was ich für die Verkürzung der einzelnen Arbeitsschritte tun konnte, von Vorteil sein.
1. Bestimmung des Zwecks der App
Es gibt eine große Frage, die du dir vor allen anderen stellen solltest: Was ist der Zweck deiner App? Warum solltest du sie entwickeln? Wie wird sie dem Händler oder deinem Kunden helfen?
Wenn die App für deinen Kunden bestimmt ist, ist es ziemlich einfach, diese Frage zu beantworten (und nein, die Standardantwort „ich wurde darum gebeten, sie zu erstellen“ gilt hier nicht). Du fragst deinen Kunden.
Dabei solltest du darauf achten, dass du die Antworten mit Folgefragen weiter ergründest. Du versuchst also, die zugrundeliegenden Gründe für die Anfrage aufzudecken und eine Verbindung zu den geschäftlichen Gründen hinter der App herzustellen. Dein Kundengespräch könnte ungefähr so aussehen:
Du: Warum genau diese Produkte?
Kunde: Das sind diejenigen, die wir einstellen müssen.
Du: Warum müssen Sie diese Produkte einstellen?
Kunde: Sie verkaufen sich nicht gut und wir brauchen den Lagerraum für eine neue Produktlinie.
Du: Gehen wir davon aus, dass Sie eine benutzerdefinierte Rabatt-App haben: Wie werden Sie dann für die entsprechenden Produkte werben oder Aufmerksamkeit auf sie lenken?
Kunde: Nun ... sie werden billiger sein, sodass die Leute sie hoffentlich kaufen werden.
Du: Selbst mit einem individuellen Rabatt werden diese Produkte in Ihrem Produktkatalog nicht automatisch entdeckt. Warum planen wir nicht einen Flash-Sale mit individueller Preisgestaltung, bei dem wir jedes einzelne Produkt einen Tag lang stark bewerben? Auf diese Weise können Sie Ihr Inventar in wenigen Tagen abverkaufen.
Wenn man die zugrunde liegende Motivation des Kunden aufdecken kann (wie im Beispiel oben), stellt sich manchmal heraus, dass das, was der Kunde möchte, völlig anders ist als das, was er braucht. Dieses Bedürfnis wird zum Zweck der App.
Wenn die App nicht für einen Kunden ist und du sie für den öffentlichen Verkauf im Shopify App Store erstellst, solltest du vorab Marktforschung betreiben, um die Bedürfnisse und Wünsche aufzudecken, die es bei den Konsumenten gibt. Vielleicht musst du zunächst mit ein paar Dutzend Händlern sprechen oder dir Notizen darüber machen, über welche Probleme sie in der Vergangenheit berichtet haben.
Was auch immer die Quelle ist: Verfeinere den Zweck, bis du zu etwas gelangst, das leicht zu verstehen ist. Für Dripify hieß das:
„Das Ziel dieses Projekts ist es, die MVP-Version einer Shopify App zu erstellen, die es einem Shopify Shop ermöglicht, sein Drip-Konto einfach einzurichten.“
Dieser Zweck wird zum Filter, den du für die Entwicklung verwenden wirst. Demnach wirst du nur an Funktionen arbeiten, die diesen Zweck direkt unterstützen, oder an solchen, die dir die Erstellung solcher Funktionen ermöglichen. Alles andere sollte vorerst zu den Akten gelegt oder aufgeschoben werden.
2. Erstellen der Funktionsliste
Nachdem du den Zweck deiner Anwendung festgelegt hast, musst du dir überlegen, welche Funktionen du erstellen möchtest. Schreibe dir in dieser Phase jede Idee auf, die dir in den Sinn kommt, und nutze dabei alle Quellen, die du finden kannst.
Schränke dich bei dieser Übung nicht ein und mache dir noch keine Gedanken über deinen Zeitplan. Dein Ziel sollte es sein, so viele Ideen wie möglich niederzuschreiben, ohne dich jetzt schon auf die Qualität zu konzentrieren.
Sobald du eine Liste mit Funktionen hast und mit dem Brainstorming fertig bist, ist es Zeit für die Bewertung. Vergleiche jede Idee mit deinem vorab definierten App-Zweck und behalte nur die, die diesen Zweck erfüllen.
Denke daran: Du möchtest etwas Kleines und Minimales erreichen. Nachdem die erste Version erstellt wurde, kannst du jederzeit neu ansetzen und die Funktionsliste der Anwendung erweitern.
Gegenüber den Kunden formuliere ich dies als eine minimale Phase eins. Die erste Version wird nicht perfekt sein. Sie wird ihm jedoch einen gewissen Mehrwert bieten, indem er sie sofort nutzen kann, statt auf eine vollwertige Version, die frühestens in sechs Monaten fertig wird, zu warten.
Jedes Mal, wenn ich so vorgehe, wird dem Kunden klar, dass viele seiner „Must have“-Merkmale, die in Phase zwei verschoben wurden, nicht wirklich benötigt werden.
3. Entwicklung und Optimierung deines Zeitrahmens
Der nächste Schritt bei der Planung besteht darin, jede Funktion zusammenzufassen und eine grobe Schätzung für jede einzelne zu erstellen. Wenn du dir nicht sicher bist, ob du eine bestimmte Funktion tatsächlich aufbauen kannst oder wenn du dir über etwas anderes Sorgen machst, solltest du sicherstellen, dass deine Einschätzung dies widerspiegelt.
Ich gebe gerne Schätzungen in einem Bereich an, in dem ich mich mit großer Wahrscheinlichkeit bewegen werde. Weiterhin gebe ich einen Prozentsatz für mein Vertrauen an, um auszudrücken, wie ich mich angesichts bestimmter Aufgaben fühle. Zum Beispiel:
- Funktion A: ein bis zwei Tage, 90 Prozent Vertrauen – bedeutet, dass die Wahrscheinlichkeit groß ist, dass die Entwicklung ein bis zwei Tage dauern wird.
- Funktion B: ein bis sieben Tage, 50 Prozent Vertrauen – bedeutet, es könnte leicht sein (ein Tag); ich könnte aber auch auf Schwierigkeiten stoßen (sieben Tage). Es besteht auch eine sehr hohe Wahrscheinlichkeit, dass es noch länger als sieben Tage dauern wird.
Mit dem Plan für Dripify war ich in der Lage, den Funktionsumfang zu reduzieren und meine Gesamtschätzung auf 3,75 bis 4,75 Entwicklungstage zu bringen. Und das lag letztlich genau innerhalb meines Entwicklungsbudgets von einer Woche. Außerdem empfiehlt es sich, eine Zeitleiste für das gesamte Projekt zu verwenden.
4. Nutzung bestehender Tools
Mit der Fertigstellung meiner Trail Map war ich bereit, mit der Entwicklung zu beginnen. Am Montagmorgen startete ich meine Entwicklungsumgebung, öffnete eine leere Codedatei und begann so schnell wie möglich zu tippen.
Okay, ganz so war es dann doch nicht.
Bei einem so engen Zeitrahmen wollte ich nicht alles komplett von Grund auf neu schreiben. Stattdessen fing ich an, nach einigen Standard-Tools und Bibliotheken zu suchen, um die Dinge zu beschleunigen.
Shopify selbst bietet viele Integrationsbibliotheken. Und da ich in Ruby on Rails entwickle, konnte ich die hervorragende shopify_app
-Bibliothek nutzen. Diese Bibliothek lässt sich in Ruby on Rails integrieren, sodass man ein App-Skelett erhält. Ein Großteil der Integration wird dabei für dich erledigt.
Bevor du mit der Entwicklung beginnst, sogar schon in der Planungsphase, solltest du beginnen, einige Werkzeuge und Ressourcen zusammenzustellen, um deine Arbeitsbelastung weiter zu verringern. Du solltest deinen Entwicklungs-Workflow nicht auf die Verwendung unbekannter Bibliotheken aufbauen, sondern sie stattdessen als nette Boni betrachten, wenn sie funktionieren.
Lesetipp: Development Shops von Shopify: In diesem Guide steht alles, was du wissen musst.
Die Entwicklungsphase
1. Einrichten der App-Authentifizierung
Ausgestattet mit ein paar handelsüblichen Werkzeugen war ich bereit, mit der Entwicklung zu beginnen.
Das erste, was alle App-Entwickler tun müssen, ist die Integration in das Authentifizierungs- und Autorisierungssystem von Shopify. Die shopify_app
-Bibliothek hilft dabei, aber es gibt noch eine ganze Menge an Konfigurations- und Testaufgaben, die es zu erledigen gilt.
Es gibt zwei Methoden, die Shopify zur Authentifizierung/Autorisierung verwendet:
- OAuth oder
- API-Schlüssel und Passwörter für private Apps
OAuth wird von allen öffentlichen App-Store-Apps verwendet und bietet Händlern eine sichere Möglichkeit, deine App mit Shopify zu autorisieren – ohne deiner App den Benutzernamen und das Passwort für ihren Shop zu geben.
Andererseits hat jeder Shop die Möglichkeit, private Apps zu erstellen, die einen API-Schlüssel und ein Passwort enthalten. Diese Apps verwenden den API-Schlüssel und das Passwort wie einen normalen Benutzernamen und ein Passwort mit der API und erhalten vollen Zugriff auf den Shop, aus dem sie stammen.
Da Dripify eine öffentliche App werden sollte, musste ich das komplexere OAuth verwenden. Selbst mit Hilfe von shopify_app
und der gesamten von Shopify zur Verfügung gestellten Dokumentation kann die Einrichtung der Authentifizierung eine lästige Pflicht sein.
Gib jedoch nicht beim Versuch auf, die Authentifizierung zum Laufen zu bringen. Auch wenn dies der erste Schritt der eigentlichen Entwicklung ist, so ist er doch einer der schwierigsten. Hat man es endlich geschafft, ist der Rest der Entwicklung (vergleichsweise) einfach.
Solltest du nicht weiterkommen, kannst du dich in den Shopify Foren umschauen und dort Fragen stellen. Oftmals ist die Lösung für Authentifizierungsprobleme jedoch einfacher als gedacht.
2. Erstelle keine private App
Wenn du eine App für einen Kunden erstellst, könntest du versucht sein, einfach eine private App zu entwickeln. Denn dann könntest du das OAuth überspringen, wodurch sich deine App sofort authentifizieren könnte.
Davon möchte ich dennnoch aus einigen Gründen abraten. Das Ganze ist zwar einfach einzurichten, aber deine App wird begrenzt sein:
- Du kannst sie nicht in den Adminbereich von Shopify einbetten.
- Um die App für mehrere Shops gemeinsam zu nutzen, musst du den gesamten Code selbst erstellen oder mehrere Kopien der App hosten.
- Die App hat vollen Lese- und Schreibzugriff auf den Shop, was ein erhebliches Risiko darstellen kann.
Stattdessen empfehle ich, OAuth zu verwenden und eine App wie eine öffentliche App Store App zu erstellen, sie dann aber nicht listen zu lassen. Der Einfachheit halber nenne ich das „ungelistete Apps“.
So wird dein Kunde die App genau wie jede andere Anwendung installieren können.
Für zusätzlichen Schutz kannst du während des Installationsprozesses der App die Shop-URL überprüfen. Wenn es sich nicht um eine URL deiner Kunden handelt, kannst du den Installationsprozess ablehnen. Für shopify_app
kannst du etwas wie den untenstehenden Code in deine sessions_controller.rb
eingeben:
Zerbrich dir über den Authentifizierungsmodus nicht zu sehr den Kopf. Du kannst später zwischen OAuth- und privater App-Authentifizierung wechseln. Dafür wirst du deine Daten zwar migrieren und einige Konfigurationsänderungen vornehmen müssen – aber mit etwas Zeit ist es möglich diesen Weg zu gehen.
Kennst du schon den Shopify Podcast?
3. OAuth zum Laufen bringen
Bei der Verwendung von OAuth ist eine Konfiguration, die du richtig einstellen solltest, der Geltungsbereich. Der Geltungsbereich ist das, was Shopify verwendet, um dir den Zugriff auf bestimmte APIs zu ermöglichen.
Wenn du zum Beispiel Bestellungen verarbeiten musst, wirst du mit dem Geltungsbereich read_orders
arbeiten wollen. Um neue Kunden hinzuzufügen, benötigst du den Geltungsbereich read_customers
als auch write_customers
.
Wählst du nicht die richtigen Bereiche aus, wirst du später Probleme haben, wenn du versuchst, auf sie zuzugreifen. Es macht keinen Spaß, herauszufinden zu müssen, warum eine API nicht funktioniert – besonders wenn man vor Tagen (oder Wochen) vergessen hat, den passenden Anwendungsbereich für sie hinzuzufügen.
Bei Dripify wusste ich, dass ich nur auf zwei Bereiche zugreifen muss, um die App für meine Kunden zu installieren. Ein Anwendungsbereich zum Lesen der Theme-Vorlagen und einen weiteren zum Zurückschreiben dieser Vorlagen.
Als meine OAuth-Konfiguration eingerichtet war und funktionierte, war ich bereit, an den eigentlichen App-Funktionen zu arbeiten.
4. Wer braucht Benutzerkonten?
In meiner Trail Map plante ich das Hinzufügen von Benutzerkonten und eine Möglichkeit, sie für einen Shop zu verwalten. Auf diese Weise kann ein Händler jedem Mitglied seines Teams Zugang zu Dripify gewähren. Nachdem ich mit OAuth gearbeitet hatte, wurde mir jedoch klar, dass diese Funktion für den Händler überhaupt keinen Mehrwert bringen würde.
OAuth verhinderte den Zugriff nicht autorisierter Benutzer auf die App. Die Shop-Benutzer müssten Zugang zum Shopify-Adminbereich haben, bevor sie auf die App zugreifen könnten. Das wiederum bedeutete, dass sie bereits über gültige Konten in Shopify verfügen würden. Da es mir aber egal war, welcher Benutzer das Drip-Snippet im Shop installiert, war es nicht nötig, die verschiedenen Benutzerkonten zu trennen.
Am Ende konnte ich die Benutzerfunktion also komplett streichen. Das ersparte mir nicht nur etwa einen halben Tag Entwicklungszeit, sondern reduzierte auch den Verwaltungsaufwand für die Händler. Nun konnte sich die Benutzeroberfläche der App ausschließlich auf die Installation des Drip-Snippets konzentrieren.
Profi-Tipp: Auch wenn die Entwicklung bereits begonnen hat, solltest du für Planänderungen offen sein, sofern dies zu einer besseren App führt. Konzentriere dich mehr auf das Aussparen von Funktionen als auf das Hinzufügen neuer.
5. Integration mit der Drip-API
Mit diesem neuen Ansatz wusste ich, dass ich die Installation des Snippets einfach gestalten musste. Glücklicherweise ist die Installation von Drip ein einfacher Prozess (es ist nur ein Stück JavaScript, das du jeder Seite hinzufügst, ähnlich wie bei Google Analytics). Allerdings musste ich die Drip-Konto-ID in das Snippet aufnehmen.
Ich könnte den Händler bitten, sich bei Drip einzuloggen, seine Konto-ID zu suchen und diesen dann in Dripify einzufügen. Das würde funktionieren und es würde meine Arbeit einfach machen.
Allerdings ist dieses Vorgehen auch fehleranfällig und außerdem ist es nicht benutzerfreundlich, von Händlern zu verlangen, sich auf einer anderen Website anzumelden und Daten manuell zu kopieren und einzufügen. Schließlich war der Zweck dieser App, den Benutzern die „einfache Einrichtung ihres Drip-Kontos“ zu ermöglichen.
Ich beschloss, an meinem Plan festzuhalten und zu versuchen, das Ganze automatisiert umzusetzen.
Wie Shopify verwendet auch Drip OAuth, um Apps den Zugriff auf die Informationen eines Kontos zu ermöglichen. Das bedeutete, dass ich das OAuth für Drip einrichten und Zugang zu dem erhalten konnte, was ich für den Händler benötigte.
Hier stieß ich jedoch auf einige Probleme.
6. Das Problem mit neuen APIs
Erstens: Da ich OAuth bereits mit Shopify benutzte, musste ich die beiden integrieren, damit sie nebeneinander existieren konnten. Bei etwas so Komplexem wie OAuth war dies eine kleine technische Herausforderung.
Glücklicherweise erlaubt die Bibliothek, die shopify_app
für OAuth verwendet, die Konfiguration mehrerer OAuth-Anbieter, sodass ich Shopify und Drip in derselben App verwenden konnte. Es gab jedoch ein paar Stellen, an denen sie sich überschnitten. Hier musste ich jede einzelne sorgfältig im Auge behalten, was glücklicherweise größtenteils gut funktionierte.
Das zweite Problem war, dass das OAuth von Drip so neu war, dass es keine existierende Bibliothek gab, die ich herunterladen und benutzen konnte. Ich musste meine eigene schreiben.
Eine neue Bibliothek auf niedriger Ebene zu schreiben, war nichts, was ich wirklich tun wollte. Wenn technische Probleme wie diese auftreten, besteht immer die Gefahr, dass der Zeitplan stark beeinträchtigt wird. Der Code brachte meinem Benutzer keinen direkten Mehrwert, er unterstützte nur die Funktionen auf höherer Ebene. Zeit, die ich hier verbringen würde, wäre Zeit gewesen, die dem Händler keinen direkten Mehrwert bringen würde.
Zum Glück gab es viele Beispiele für andere OAuth-Integrationen, die ich als Inspiration nutzen konnte. Mit einer dieser Integrationen war ich in der Lage das Ganze mit nur einigen wenigen Code-Anpassungen soweit zu bringen, um mit Drip zu funktionieren.
Nun konnte ich mich erfolgreich mit Drip verbinden. Mein Jubel dauerte jedoch nur wenige Minuten.
Der ganze Sinn der Integration mit Drip bestand darin, die Konto-ID automatisch für den Händler zu erhalten. Damals war die API von Drip so neu, dass es keine API-Methoden gab, um diese Kontoinformationen zu erhalten.
Da ich nicht feststecken wollte, wandte ich mich an den Gründer von Drip und fragte, was ich tun könne. Innerhalb weniger Stunden antwortete er mit einer brandneuen Konten-API, die ich verwenden konnte. Erfolg!
Nach all dem war ich in der Lage, meinen Händler gegenüber Drip zu authentifizieren und die Kontodaten zu erhalten, die ich für das Snippet brauchte.
Auch wenn ich viel Zeit verlor, hatte ich immer noch eine Ausweichmöglichkeit: Im schlimmsten Fall könnte ich den Händler bitten, sich bei Drip anzumelden und seine Konto-ID für mich zu kopieren. Es war nicht ideal und es würde der App schaden, aber es versetzte mich in die Lage, dem Händler einen gewissen Wert zu bieten.
Profi-Tipp: Wenn du an einer App arbeitest, solltest du dich nicht von plötzlich auftauchenden Problemen blenden lassen. Versuche, dir eine Ausweichmöglichkeit, einen Workaround oder eine andere Möglichkeit zur Lösung des Problems zurechtzulegen. In der Regel gibt es mehr als einen Weg, eine Entwicklung zum Ziel zu bringen.
7. Risikoreduzierung bei einer risikoreichen Funktion
Nachdem die Drip-Authentifizierung aus dem Weg geräumt war und die Kontoinformationen vorlagen, blieb nur noch, sie dem Snippet und das Snippet dem Theme hinzuzufügen.
Dies führte zum zweiten riskanten Teil der App:
Da Drip auf jeder Seite installiert werden musste, musste ich auch das Snippet in die Datei layout.liquid
einfügen. Diese Datei wird von fast jeder Seite in einem Shopify Shop verwendet.
Dies bedeutete, dass die App, um Drip automatisch zu installieren, die Theme-Datei automatisch aktualisieren musste, ohne alles auf der Website zu zerstören.
Als ich mich damit befasste, wusste ich, dass ich drei Dinge in puncto Risikominimierung tun konnte:
- Bevor irgendetwas geändert wird, würde die App eine Sicherungskopie der Vorlage für den Fall erstellen, dass sie wiederhergestellt werden muss.
- Eine Reihe von Einheitstests rund um diesen Ersatzcode würde sicherstellen, dass er mit vielen verschiedenen Themes funktioniert.
- Einige manuelle Tests um andere Fehlerfälle herum würden es mir ermöglichen, zusätzliche Probleme zu finden und zu adressieren.
Am Ende, nach Dutzenden von automatisierten und manuellen Tests war ich zuversichtlich, dass die Snippet-Installation funktionieren würde. Der einzige Fehlerfall, den ich noch fand, war das mehrfache Installieren des Snippets, was außer dem Hinzufügen einiger zusätzlicher Bytes auf der Webseite keine Auswirkungen hatte.
Durch automatisierte Tests rund um diese risikoreiche Funktion konnte ich sicherstellen, dass sie auch in Zukunft funktionieren würde.
War eine Woche ausreichend?
Mit einer funktionierenden Snippet-Installation beendete ich die Entwicklung am Donnerstag um 14:44 Uhr. Das gab mir einen ganzen Tag Zeit, um die Produktionsversion zu testen und einen weiteren ausführlichen Code-Review durchzuführen.
Von Anfang bis Ende dauerte die Entwicklung und Bereitstellung der ersten Version von Dripify 25,5 Stunden. Dies umfasst die gesamte Entwicklung, das automatisierte Testen, das manuelle Testen, die Einrichtung des Produktionsservers und die offizielle Inbetriebnahme.
Obwohl ich es nicht als Teil der Entwicklungswoche zählte, dauerte es im Verlauf der folgenden Wochen weitere sechs Stunden, um Dripify vorzubereiten und in den App Store zu bringen. Der Großteil davon wurde verwendet, um die Marketingtexte zu schreiben und mit dem App-Team von Shopify zusammenzuarbeiten, um die Genehmigung für Dripify zu erhalten.
Entwicklung einer Shopify App in einer Woche: Lektionen
Es gibt einige wichtige Punkte, die ich im Laufe dieser Geschichte vermitteln wollte. An dieser Stelle möchte ich das Wichtigste nochmals rekapitulieren, um die Lektionen klarer zu machen.
Die Entwicklung von Shopify Apps ist nur eine weitere erlernbare Fähigkeit. Wenn du Entwicklungserfahrung oder Zugang dazu hast, ist die Erstellung einer Shopify App gar nicht so schwierig. Wie jedes Softwareentwicklungsprojekt hat natürlich auch die App-Entwicklung für Shopify ihre Schwierigkeiten. Allerdings musst du keine völlig neue Fähigkeiten erlernen. Wenn du eine Webanwendung entwickeln und REST-APIs verwenden kannst, kannst du auch eine ShopifyApp erstellen.
Die Erstellung einer kleinen, fokussierten Shopify App kann sehr wenig Zeit in Anspruch nehmen. Dies gilt auch, wenn du Kunden hast, die eine maßgeschneiderte App benötigen, und du eng mit ihnen zusammenarbeiten kannst. Je nachdem, was sie brauchen, wirst du sogar feststellen, dass du die Anforderungen in noch kürzerer Zeit umsetzen kannst, als es mir mit Dripify möglich war. Eine einfache private Shopify App kann in weniger als zwei Stunden erstellt und getestet werden.
Entwickle ein fundiertes Verständnis dafür, was die Händler tatsächlich brauchen. Egal, ob du für einen Kunden oder für den App Store entwickelst, solltest du dir Zeit nehmen, um herauszufinden, was Händler wirklich brauchen. Und damit meine ich nicht nur oberflächliche Wünsche, sondern tatsächliche Geschäftsbedürfnisse. Je besser dir dies gelingt, desto größer sind die Chancen, dass deine App erfolgreich sein wird.
Erstelle einen Plan und kürze dann so viel wie möglich. Sobald du die Bedürfnisse deiner Kunden oder deiner Zielgruppe herausgefunden hast, nimmst du dir ausreichend Zeit, um zu planen, wie du sie erfüllen möchtest. Stelle eine Liste mit Funktionen inklusive Schätzungen für deren Umsetzung zusammen. Versuche diese Liste anschließend so weit wie möglich einzukürzen und dich vor allem auf das zu lösende Kernproblem zu konzentrieren.
Schaffe dir Optionen für die riskanten Teile deines Plans, damit du nicht stecken bleibst. Entwickle für alle riskanten oder unsicheren Teile deines Plans ein paar Ideen für alternative Lösungswege, falls dein Projekt nicht genau wie erwartet läuft. Dass du bei Bedarf darauf zurückgreifen kannst, gibt dir die Flexibilität, auf auftretende Entwicklungsprobleme zu reagieren.
Habe keine Angst, deinen Plan zu ändern, wenn dies den Nutzern zugutekommt. In ähnlicher Weise solltest du bereit sein, Teile deines Plans, die dich dem eigentlichen Zweck der App nicht näher bringen, zu verwerfen. Das könnte wie in meinem Fall bedeuten, dass Funktionen nicht umgesetzt werden. Vielleicht geht es auch um die Änderung einen zentralen Workflows, um das Benutzererlebnis einfacher zu gestalten.
Den Zweck stets im Blick
Denke vor allem immer an den Endbenutzer. Shopify Apps werden für einen bestimmten Zweck entwickelt, der in der Regel darauf ausgerichtet ist, den Händlern in irgendeiner Weise Nutzen zu bringen. Wenn du ein gewisses Einfühlungsvermögen für sie aufbringen kannst und deine App mit ihren Augen betrachtest, wird sie mit Sicherheit besser ankommen.
Dieser Beitrag von Eric Davis erschien zuerst im englischen Shopify Blog und wurde übersetzt.