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.

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.

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.

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
So funktioniert HiBill: das Kassenbuch für Geld unter Freunden – das ganze Modell auf einen Blick: Personen, Salden und wie eine geteilte Rechnung dazu passt.
Rechnung in großer Gruppe teilen: Einer zahlt, keiner rechnet am Tisch – das Wählen per Link aus Sicht des Tisches, bevor jemand die Kontrolle zurückholt.
Offene Aufteilungen nutzen – Schritt für Schritt: eine Rechnung teilen, das Teilen beenden und die Kontrolle zurückholen.