Entwicklung einer GraphQL API in einem iterativen User-centered Designprozess

Hintergrund

Die 8select Software GmbH mit Sitz in Regensburg bietet ‘Curated Shopping as a Service’ an, eine Weiterentwicklung klassischer Empfehlungsdienste, wie zum Beispiel ‘Kunden die … kauften, kauften auch…’. Ein Online-Händler kann darüber seine Produkte zu individuellen und dynamischen Sets kombinieren lassen. Dabei muss nicht jede Kobination manuell erstellt werden, sondern das System ordnet über die Produktattribute und zuvor definierte Regelsets verschiedene Produktvarianten einander zu. Ein Produkt, das aktuell nicht verfügbar ist, kann in einem Set dann einfach durch das nächst ähnliche ersetzt werden. Oder ein Kunde kann eine andersfarbige Variante eines Produkts wählen und das Set passt sich dieser Veränderung an, indem die anderen Produkte automatisch gegen die nächst ähnlichen in einer passenden Farbigkeit ersetzt werden.

Das bisherige monolithische System wird derzeit in eine Service-oriented-/Microservice-/Serverless-Architektur umgebaut. Dabei werden vor allem die Daten- und Logikschicht aufgebrochen und in mehrere atomare, funktionale Module ausgegliedert. Um die entstehenden distribuierten und dezentral verwalteten Web Services über eine einzige API nutzbar zu machen, soll eine auf GraphQL basierte Schnittstelle entwickelt werden. Ein iterativer Designprozess soll helfen eine optimale API-Usability für den spezifischen Use case und die zukünftigen Nutzer zu erreichen.

Als Proof of Concept wird in dieser Arbeit nur ein Teilbereich der angestrebten Gesamtfunktionalität entwickelt. Ein möglichst aussagekräftiges und allgemeingültiges Ergebnis soll dabei ein Prototyp zu Produkten, Produktattributen, Produktbildern und -thumbnails liefern. Die 8select Software GmbH ist ein junges Startup in Regensburg und umfasst im Moment nur eine Hand voll Entwickler. Die Evaluationsmethoden müssen dafür ausgelegt werden, um auch bei wenigen Stimmen aussagekräftiges Feedback zu generieren.

Zielsetzung der Arbeit

Dokumentation des iterativen Designprozess und Vergleich der verwendeten Evaluationstechniken.

Ausgearbeitete Anforderungen und Herausforderungen an die konkrete Web API.

API Prototyp mit einem repräsentativen Subset an Daten und Funktionalitäten.

Dokumentation der Designentscheidungen und ggf. Begründung notwendiger Tradeoffs.

Herausarbeiten sog. ‘Best Practices’ für die Arbeit an der entstehenden Schnittstelle.

Vorläufige Fragestellungen

Welche Paradigmen der API Usability lassen sich auf eine Web API basierend auf GraphQL transportieren und wie prägen sich diese aus?

Welche klassischen Nutzertests eignen sich gut für kleine Teams oder müssen ggf. maßgeschneiderte Techniken entwickelt werden?

Konkrete Aufgaben

Technische Voraussetzungen und lokale Entwicklungsumgebung schaffen.

Zusammentragen gängiger Usability-Paradigmen für (RESTful) Web APIs und SOA.

Analyse und Entwicklung von Qualitätsmerkmalen für GraphQL Schnittstelle.

Entwicklung eines wiederholbaren Evaluationsprozesses mit gleichbleibenden Qualitätsmerkmalen.

Iterative Umsetzung und Revision/Evaluation der Erkenntnisse aus Nutzertests.

Erwartete Vorkenntnisse

REST

HTTP

Weiterführende Quellen

tba