Die erste eigene Low-Code Applikation entwickeln

Wie Sie Ihre erste eigene Low-Code Applikation mit SeaTable entwickeln

Low-Code ist ein Ansatz aus der Softwareentwicklung, bei dem es darum geht, dass jeder – auch ohne Programmiererfahrungen – schnell und einfach eigene IT-Applikationen und effiziente Prozesse gestalten kann. Die meisten Menschen reagieren erst mal zurückhaltend, wenn Sie dies hören, weil zur Softwareentwicklung normalerweise auch das Programmieren von Software gehört. 
In einem vorherigen Blogartikel zum Thema No-Code / Low-Code habe ich bereits über die Details dieses neuen Entwicklungsansatzes mit all seinen Vor- und Nachteilen geschrieben, doch darum soll es in diesem Blogbeitrag nicht gehen.

In diesem Artikel nehme ich Sie an die Hand und baue mit Ihnen Ihre erste eigene Low-Code Applikation. Denn so bekommen Sie am schnellsten ein Gefühl dafür, was Low-Code eigentlich bedeutet und ob Low-Code Ihnen oder Ihrem Team eventuell zukünftig dabei hilft effizienter zu arbeiten.

Werden wir zukünftig überhaupt noch Entwickler brauchen?

Davon ist ehrlich gesagt nicht auszugehen. Auch wenn Low-Code gerade ein sehr angesagter Trend ist, wird dieser neue Entwicklungsansatz die klassische Softwareprogrammierung nicht überflüssig machen oder ersetzen können. Lassen Sie mich kurz erklären, wie ich zu diesem Gedanken komme.

Ich bin der festen Überzeugung, dass Low-Code nicht für jede Entwicklung geeignet ist. Den der größte Vorteil von Low-Code liegt in seiner Einfachheit. Diese Einfachheit bedeutet aber auch, dass der Entwicklung erzwungenermaßen Grenzen gesetzt sind. Aus meiner Sicht sollte man Low-Code als einen Spielplatz zum Ausprobieren neuer Prozesse oder Lösungen ansehen. Wie Sie gleich sehen werden, können Sie mit SeaTable in kürzester Zeit eines ersten Prototyps entwickeln und mit diesem dann Ihren Prozess testen. Nach ein paar Tagen werden Sie und Ihr Team dann schnell erste Erkenntnisse daraus gewinnen: brauchen Sie diesen Prozess überhaupt? Muss der Prozess angepasst werden oder müssen wir diesen vielleicht umbauen oder ganz anders angehen? 

Aus meiner Sicht sollte man Low-Code als einen Spielplatz zum Ausprobieren neuer Prozesse oder Lösungen ansehen.

Natürlich ist es auch möglich, dass Sie mit diesem neuen Wissen sich auch bewusst für eine fertige Speziallösung entscheiden oder dann doch einen Entwickler mit der Programmierung beauftragen.
Wichtig ist, dass Low-Code Ihnen geholfen hat Ihren Prozess umzusetzen und Erfahrung damit zu sammeln. 

Sie müssen übrigens nicht zwingend diesen Text lesen, um Ihre erste eigene Low-Code Applikation zu entwickeln. Wenn Sie lieber ein Video schauen, anstatt einen Text lesen, können Sie auch das folgende Video auf YouTube ansehen.

Build your first low code application

Build your first low code application

Gibt es nicht schon „Customer Feedback / Feature Request“ Apps?

Doch natürlich. Customer Feedback Apps gibt bereits wie Sand am Meer. Hier nur eine kleine Auswahl der bekanntesten Online-Dienste:

canny.io

canny.io ist eine der bekanntesten Customer Feedback Lösungen am Markt. Die SaaS Plattform lockt mit einem kostenlosen Einstiegspreis, welches praktisch alle wichtigen Funktionen inklusive Roadmap-Planung enthält. Was etwas abschreckt, ist der hohe Preis von 400 $ pro Monat, wenn man mehr Funktionen benötigt.

Feature Requests mit Canny.io

Feature Requests mit Canny.io

fider.io

Man muss schon genau hinschauen, um unterschiede in der Oberfläche von fider.io im Vergleich zu canny.io zu finden. Dabei punktet fider.io durch seinen Open Source Ansatz und der Möglichkeit die Software selbst zu hosten. Auch preislich ist fider.io deutlich günstiger als canny.io, wobei man dafür auf gewisse Funktionen, wie z.B. eine Roadmap und Changelog verzichten muss.

Die Open Source Lösung Fider.io bietet als eine der wenigen Lösungen eine Self-Hosting Option

Die Open Source Lösung Fider.io bietet als eine der wenigen Lösungen eine Self-Hosting Option

nolt.io

Nolt ist ein weiterer Anbieter für ein Online gehostetet Customer Feedback Board. Ein Nolt Board ist in wenigen Minuten aufgesetzt und überzeugt durch sein schlichtes Design, das auch auf kleinen Auflösungen gut funktioniert. Auch beim Preis macht es Nolt einem extrem einfach, den jedes Board kostet einfach 25$ pro Monat. Nicht mehr und nicht weniger.

Nolt überzeugt mit dem Ansatz "weniger ist mehr"

Nolt überzeugt mit dem Ansatz „weniger ist mehr“

Nun stellen Sie sich vielleicht die Frage: Warum sollte man diese Lösungen mit Low-Code nachbauen? Die Antwort darauf ist ganz einfach. Wieso sollte man sich die Mühe machen etwas selber zu machen, wenn es schon längt eine Lösung dafür gibt?

Weil Sie durch die eigene Entwicklung den Prozess vollständig unter Ihre Kontrolle bringen und dann beliebig anpassen können. Gleichzeitig gibt es keine bessere Art, etwas zu lernen, als es selbst zu tun. Also lassen Sie uns loslegen.

Was macht eine gute Customer Feedback App aus?

Egal, ob Sie klassisch programmieren oder mit einer Low-Code Plattform wie SeaTable arbeiten. Am Anfang sollten Sie sich zurücklehnen und überlegen, was Sie genau erreichen wollen. 
Mit der von uns entwickelten Customer Feedback App sollen die folgenden vier Anforderungen umgesetzt werden:

  1. Sammeln von Kundenfeedback jeglicher Art an einer Stelle
  2. Erkenntnisse aus diesem Feedback gewinnen
  3. Verbesserungen für Ihr Produkt identifizieren und umsetzen
  4. Kunden zu jedem Zeitpunkt in die Diskussion einbinden.

Diese Anforderungen werden wir jetzt nach und nach in SeaTable umsetzen. Also lassen Sie uns die Ärmel hochkrempeln und loslegen.

Schritt 1: Übersichtstabelle Feature Requests / Customer Feedback

Tabelle für die „Feature Requests“

Legen Sie in einer SeaTable Base eine Tabelle mit vier Spalten an. Die erste Spalte enthält den Titel, also eine kurze Beschreibung der Anforderung. Die zweite Spalte ist für eine ausführlichere Beschreibung. Die dritte Spalte ist für den Status, weswegen Sie eine Einfachauswahl verwenden sollten. Für die letzte Spalte wählen Sie den Spaltentyp „Ersteller“, welche automatisch gefüllt wird. Natürlich können Sie die Bezeichnung der Spalten vollkommen frei wählen oder um eigene Angaben ergänzen. Halten Sie sich dabei vor Augen, dass in dieser Tabelle zukünftig alle Feature Requests erfasst und aufgelistet werden.

feature-request-tabelle

Diese Tabelle wird alle Feature Requests enthalten.

Neue Einträge per Webformular

Als Nächstes benötigen wir eine Möglichkeit, dass Ihre Kunden Ihnen neue Features Requests übermitteln. Hierfür bietet sich ein Webformular an, welches uns SeaTable mit wenigen Mausklicks anlegt. Während der Anlage des Webformulars können Sie entscheiden, ob das Formular für jeden zugänglich sein soll, oder nur für Leute mit einem gültigen SeaTable Account. So können Sie genau steuern, wer die Nutzer Ihres neuen Webformulars sein sollen. Den Link zu Ihrem neuen Webformular können Sie nun entweder auf Ihrer Webseite veröffentlichen oder an Ihre Kunden schicken. 

Webformular für neue Feature Requests

Das Webformular für neue Feature Requests

Bereits jetzt haben Sie eine erste kleine Low-Code Applikation entwickelt, mit der Sie Kundenfeedback und Feature Requests sammeln können. Sie könnten jetzt eine nur-lesbare Ansicht Ihrer Tabelle auf Ihre Webseite veröffentlichen und schon wäre Ihr Projekt fertig. Doch das reicht uns nicht, denn wir wollen noch Kommentare und Votes für die einzelnen Feature Requests erlauben.

Schritt 2: Kommentare zu den Feature Requests

Tabelle für die Kommentare

Nachdem wir die Feature Requests übersichtlich in einer Tabelle haben, kommen wir jetzt zu den Kommentaren. Die Idee ist, dass alle Kunden die Möglichkeit bekommen sollen anhand der gewünschten Feature Requests eine Diskussion zu führen. Deshalb erstellen wir eine Tabelle für genau diese Kommentare. Diese Tabelle benötigt in Summe fünf Spalten. Die erste Spalte nutzen wir, um den Kommentaren automatisch eine Nummer zuzuweisen. In der zweiten Spalte wird der Kommentar erfasst. In der dritten Spalte wird wieder automatisch der Autor erfasst. Spalte Vier ist das Erstellungsdatum und die Spalte Fünf ist eine Verknüpfungsspalte zu den Feature Requests. Wichtig ist, dass die Verlinkungs-Spalte nur die Verknüpfung mit einem Feature Request zulässt. Es würde ja keinen Sinn machen, einen Kommentar mehreren Feature Requests zuzuordnen.

SeaTable Tabelle für die Kommentare zu den einzelnen Feature Requests

SeaTable Tabelle für die Kommentare zu den einzelnen Feature Requests

Webformular zur Erfassung von neuen Kommentaren

Nun haben wir die notwendige Tabelle um Kommentare zu den einzelnen Feature Requests aufzunehmen. Wenn Sie wollen, können Sie direkt in der Tabelle Ihren ersten eigenen Kommentare anlegen und einem der Feature-Request zuweisen. Auch hier macht es natürlich wieder Sinn ein Webformular zu erzeugen, über das man erst den Feature Request auswählt und dann einen Kommentar erfasst.

Webformular zum Anlegen neuer Kommentare für Ihre Low-Code Applikation

Webformular zum Anlegen neuer Kommentare für Ihre Low-Code Applikation

Schritt 3: Votes-Tabelle

Anlage der Tabelle

Kommen wir nun zur letzten Tabelle in unserer Low-Code Applikation. Die Tabelle Votes ist von der Struktur her super einfach. Wir verwenden wieder eine automatische Nummerierung in der ersten Spalte, den automatisch ausgefüllten Autor in der zweiten Spalte und eine Verknüpfungsspalte zu den Feature Requests. Mehr braucht es nicht in dieser Tabelle, weil wir ja nur wissen möchten, welche Person für welches Feature Requests seine Stimme gegeben hat. Machen Sie einen ersten Eintrag in dieser Tabelle und verlinken Sie ein beliebiges Feature Request.

Die Votes Tabelle Ihrer Low-Code Applikation

Die Votes Tabelle Ihrer Low-Code Applikation

Wenn Sie nun auf die erste Tabelle zurück wechseln, sehen Sie, dass in dieser Tabelle zwei neuen Spalten hinzugekommen sind. Die Verknüpfungen der Tabellen funktionieren in beide Richtungen, weshalb Sie nun auch in der Tabelle Feature Requests die Verknüpfungen zu den jeweils anderen Tabellen sehen. Um hier noch mehr Übersicht zu schaffen, sollten Sie noch zwei weitere Formelspalten hinzufügen und über die Formel countlinks(Spaltenname) die Summe der Kommentare und der Votes zählen lassen. So können Sie auch Ihre Tabelle anhand dieser beiden Spalten sortieren, um die beliebtesten oder am heftigsten diskutierten Feature Requests ganz oben zu sehen.

Verknüpfungen zwischen den Tabellen Ihrer Low-Code Applikation

Verknüpfungen zwischen den Tabellen Ihrer Low-Code Applikation

Stimmenabgabe per Schaltfläche und Verknüpfung per Automation

Nun fehlt uns noch die Möglichkeit Votes abzugeben. Dies könnte man wieder über ein Webformular abbilden, jedoch wirkt es etwas aufwendig, wenn man extra ein Webformular öffnen muss, nur um einen Wert auszuwählen und dann abzuschicken. Deutlich schneller und einfacher geht es mit Hilfe eines Schaltfläche. Diese Schaltfläche belegen wir mit der Funktion Zeile in eine andere Tabelle kopieren. Bei dieser Funktion werden alle Spalten mit identischen Namen kopiert. Legen Sie noch eine weitere Spalte in der Tabelle Votes an, die dem Namen der ersten Spalte aus der Tabelle Feature Requests entspricht.

Schaltfläche für die Stimmabgabe

Schaltfläche für die Stimmabgabe

Klicken Sie dann auf die Schaltfläche und beobachten Sie was passiert. In der Tabelle Votes wird eine neue Zeile angelegt, jedoch fehlt noch die automatische Verlinkung zum richtigen Feature Request. Dies erledigen wir mit einer Automatisierungsregel, die bei jeder neuen Zeile automatisch einen „Link“ zur ersten Tabelle herstellt. Testen Sie Ihre App gleich indem Sie ein paar Votes verteilen.

Automatisierungsregel zur automatischen Verknüpfung

Automatisierungsregel zur automatischen Verknüpfung

Python-Script zum Entfernen von Duplikaten

Sie merken sofort, dass wir zwar nun eine sehr einfache Möglichkeit der Stimmabgabe geschaffen haben, dies aber nicht verhindert, dass eine Person mehrfach für den gleichen Feature Request stimmen kann. Dies wollen wir natürlich verhindern und nutzen dafür das folgende Python Script.

table_name = 'Votes'
view_name = 'Default View'
column_to_compare_a = 'Title'
column_to_compare_b = 'Voter'

## don't change anything below this line ...
from seatable_api import Base, context
server_url = context.server_url
api_token = context.api_token

def remove_duplicates():

    # Authentication
    base = Base(api_token, server_url)
    base.auth()

    # variable to save row values for comparison
    column_a = ""
    column_b = ""
    
    rows = base.query('select * from '+ table_name +' order by '+ column_to_compare_a +','+ column_to_compare_b)
    for row in rows:
      if row.get(column_to_compare_a) == column_a and row.get(column_to_compare_b) == column_b:
        print("Duplicate found at row with the id: " + row.get('_id') + ". Delete this row ...")
        base.delete_row(table_name, row.get('_id'))        
      
      # store this values for comparison
      column_a = row.get(column_to_compare_a)
      column_b = row.get(column_to_compare_b)   

remove_duplicates()

Dieses Script hängen wir als weitere Aktion an unsere eben erstelle Automatisierungsregel und stellen so sicher, dass doppelte Einträge sofort wieder entfernt werden. Probieren Sie es gleich aus. Sie werden sehen, dass ein neuer Eintrag in der Votes-Tabelle erstellt wird, dieser aber sofort wieder entfernt wird.

Optimierung und Visualisierung per Kanban Board

Im letzten Schritt Ihrer Entwicklung sollten Sie Ihre Tabellen noch optimieren und z.B. Gruppierungen nach Status oder nach Feature Requests hinzufügen. Unnötige Spalten sollten Sie ausblenden und weitere Ansichten wie z.B. eine Roadmap erstellen, die nur Feature Requests im Status „in Planung“ enthält. Weiterhin können Sie einschränken, welcher Nutzer in Ihrer Tabellen welche Änderung durchführen darf. So sollten Sie z.B. mit Hilfe der Spaltenberechtigungen sicherstellen, dass nur Sie oder ausgewählte Personen den Status einzelner Feature Requests verändern dürfen.

Tabellenberechtigungen optimieren Ihre Low-Code Applikation

Tabellenberechtigungen optimieren Ihre Low-Code Applikation

Als letzten Schritt empfehle ich Ihnen noch die Aktivierung des Kanban-Plugins, da dieses eine schöne visuelle Darstellung Ihrer Feature Requests im jeweiligen Status bietet. So können Sie als Ersteller und Administrator dieser Tabelle auch schnell und einfach den Status per Drag-and-Drop ändern.

Kanban Board mit allen Feature Requests nach Status sortiert

Kanban Board mit allen Feature Requests nach Status sortiert

Veröffentlichung Ihrer Low-Code Applikation

Damit sind wir auch schon am Ende der Entwicklung Ihrer Low-Code Applikation angekommen. Ihre neue Feature-Request App bietet zwei Webformulare zur Erzeugung von neuen Feature Requests und Kommentaren und eine einfache Schaltfläche zum Upvoten einzelner Feature Requests. Auf der anderen Seite bietet Ihre erste Anwendung noch viel Potenzial für Verbesserungen. Seien Sie kreativ und probieren Sie es einfach aus. Natürlich finden Sie diese Applikation auch in unserem Vorlagenbereich.

Christoph Dyllick-Brenzinger
Christoph ist Gründer und technischer Geschäftsführer der SeaTable GmbH. Er ist für die gesamte interne IT bei SeaTable verantwortlich und liebt neue und spannende Herausforderungen. In seiner Freizeit spielt er gerne Tennis, erkundet mit seiner Familie fremde Städte oder daddelt auch ab und zu auch mal das ein oder andere Computerspiel.