Wem gehört die Zahl, wenn jemand seinen Anteil gewählt hat?

Produktdesign

Wenn du in HiBill eine Rechnung teilst, wechselt etwas Kleines, aber Echtes den Besitzer. Die Aufteilung gehört nicht mehr dir. Jede Person, die den Link öffnet, entscheidet selbst, was sie hatte, und die Zahl neben ihrem Namen ist ihre – keine Zahl, die du ihr zugewiesen hast, sondern eine, die sie selbst angegeben hat.

Eine per Link geteilte Rechnung aus Sicht der Person, die ihren Anteil wählt: wer bezahlt hat, was schon gewählt wurde und die Positionen, die sie auswählt, bevor sie bestätigt, was sie schuldet

Wie viel das ausmacht, haben wir erst gemerkt, als wir den Weg zurück bauen wollten.

Die Sackgasse

Bis diese Woche war Teilen eine Einbahnstraße. Du konntest das Teilen beenden, aber damit war nur der Link tot. Die Rechnung blieb für immer eine offene Aufteilung: Aufteilungsoptionen ausgeblendet, keine Möglichkeit, die Aufteilung zu ändern, keine Möglichkeit, sie aus der Rechnung heraus erneut zu teilen. Ein Schloss, dessen Schlüssel jemand weggeworfen hat.

Das hat niemand so entworfen. So etwas entsteht, wenn man „Teilen“ und „Teilen beenden“ als zwei Enden eines Schalters baut und nie fragt, wofür der Schalter eigentlich da ist. Das Teilen zu beenden beantwortet die Frage Sollen neue Leute noch ihren Anteil wählen können? Es beantwortet nicht Wem gehört die Aufteilung jetzt? – und wir hatten stillschweigend angenommen, dass sich die zweite Frage mit der ersten von selbst erledigt.

Tut sie nicht.

Zwei Türen, die wie eine aussehen

Überleg mal, was die naheliegende Lösung gewesen wäre: Teilen beenden stellt die Rechnung einfach wieder so her, wie sie vorher war. Ein Button, keine neuen Konzepte, Sackgasse weg.

Wir hätten genau das beinahe ausgeliefert. Es ist falsch, und der Grund verdient es, ausbuchstabiert zu werden.

Einen Link abzuschalten und die Macht zu übernehmen, die gewählten Anteile anderer Leute zu bearbeiten, sind zwei verschiedene Entscheidungen mit verschiedenem Gewicht. Das Erste ist Aufräumen – das Essen ist vorbei, niemand muss mehr etwas wählen. Das Zweite ändert, wer bestimmen darf, was jemand schuldet. Würde Teilen beenden beides tun, bekäme jemand, der nach dem Essen nur aufräumt, stillschweigend die Möglichkeit, umzuschreiben, was vier andere als ihren Anteil angegeben haben – nach einem Klick auf einen Button, der bloß versprochen hatte, eine URL abzuschalten.

Teilen beenden? Der Link funktioniert dauerhaft nicht mehr, bereits gewählte Anteile bleiben erhalten

Also sind es zwei Türen. Teilen beenden beendet den Link. Kontrolle zurückholen – eine eigene Aktion mit eigener Bestätigung – macht aus der Rechnung wieder eine normale Aufteilung, die dir gehört.

Teilen pausiert: Kontrolle zurückholen oder Erneut teilen

Was „Kontrolle zurückholen“ wirklich kostet

Jetzt kommt der Teil, den wir spannend finden: Wenn du die Aufteilung zurückholst, bewegt sich keine einzige Zahl.

Alle behalten den Betrag, den sie gewählt haben. Der nicht gewählte Rest, der bis dahin stillschweigend bei der Person lag, die bezahlt hat, wird zu einer ausdrücklichen Zeile für sie. Die Positionen vom Beleg bleiben. Berechne die Salden vorher und nachher – sie sind identisch.

Was sich ändert, ist die Befugnis. Diese Beträge sind nicht mehr selbst gewählt, und das heißt: Du kannst sie jetzt bearbeiten.

Das klingt nach nichts, und es ist alles. Eine Zahl, die jemand für sich selbst gewählt hat, und eine Zahl, die du jemandem zugewiesen hast, verdienen unterschiedlich viel Vertrauen, selbst wenn es dieselbe Zahl ist. Ein Kassenbuch ist nur nützlich, weil beide Seiten ihm glauben, und dieser Glaube kommt daher, dass man weiß, wer was eintragen durfte.

Deshalb sagt die Bestätigung genau das, statt etwas Beruhigendes darüber, dass sich nichts ändert: Alle behalten ihren aktuellen Betrag, aber Anteile werden nicht mehr selbst gewählt – du kannst dann jeden Anteil bearbeiten.

Etwas zurückgeben

Es gibt eine Symmetrie, die uns erst beim Bauen aufgefallen ist.

Ein selbst gewählter Anteil hat keine Buttons zum Bestätigen oder Ablehnen. Wozu auch – eine Zahl, die du selbst gewählt hast, kannst du nicht anfechten. Das ist deine Zustimmung, schon gegeben.

Aber sobald die Aufteilung wieder unter deiner Kontrolle ist, fällt diese Begründung in sich zusammen. Der Anteil ist nicht mehr etwas, das die anderen gewählt haben; er ist etwas, das du jetzt ändern kannst. Deshalb gibt das Zurückholen der Kontrolle allen auf der Rechnung die Buttons zum Bestätigen oder Ablehnen zurück.

Du bekommst die Möglichkeit, ihren Anteil zu bearbeiten. Die anderen bekommen die Möglichkeit, Nein dazu zu sagen. Keine der beiden Hälften funktioniert ehrlich ohne die andere – und wir hätten nur die erste ausgeliefert, wenn wir nicht nachgesehen hätten, was die Änderung den Leuten eigentlich wegnimmt.

Ein Fall, den wir ablehnen

Wenn die gewählten Anteile zusammen mehr ergeben als die Rechnung – zwei Leute, die beide sicher sind, das teure Gericht gehabt zu haben –, kannst du die Aufteilung erst zurückholen, wenn das geklärt ist.

Wir hätten die Zahlen passend machen können. Alles herunterrechnen oder den Rest der zahlenden Person bei null kappen und weitermachen. Beides ergibt eine Rechnung, die aufgeht und stillschweigend falsch wiedergibt, was die Leute gesagt haben.

Ein Zuviel beim Wählen ist eine echte Meinungsverschiedenheit zwischen zwei Menschen. Klären sollten sie das untereinander, nicht in einer Rechenkorrektur, die den Konflikt versteckt. Also sagt HiBill Nein, erklärt warum und wartet.

Die allgemeine Lehre

Wir stoßen immer wieder auf dasselbe Muster. Ein Feature hat eine offensichtliche Vorwärtsrichtung, jemand baut sie, und die Rückrichtung bleibt als Übung für später liegen – nicht aus einer Entscheidung heraus, sondern weil niemand fragt.

Dann stellt sich heraus, dass die Rückrichtung eine Frage mitbringt, die die Vorwärtsrichtung nie beantworten musste. Teilen musste nur fragen: „Wer kann das sehen?“ Teilen beenden musste fragen: „Wem gehört das jetzt?“ – und im Code gab es keine Antwort, weil es in unseren Köpfen nie eine gegeben hatte.

Die Sackgasse war das Symptom. Die fehlende Frage war der Bug.

Weiterlesen