Zaubern als Standard
Das Studio ist sechs Tage alt. Bevor es sich Gewohnheiten aus Versehen zulegt, hier der Standard, nach dem es läuft – aufgeschrieben jetzt, solange Ehrlichkeit noch billig ist.
Auf dieser Seite
Unter unserem Namen steht der Satz Wir entwickeln nicht einfach — wir zaubern jede Codezeile und jeden Pixel. Der erste Mensch außerhalb des Studios, der ihn gelesen hat, fragte, ob zaubern nicht etwas dick aufgetragen sei für ein Boutique-Software-Studio, das den Großteil seines Lebens damit verbringen wird, TypeScript zu schreiben und Pull Requests zu reviewen. Eine faire Frage. Ich habe das Wort behalten, und das hier ist die Begründung.
Zaubern benennt eine Wirkung, keine Methode. Wenn Software sich leicht unmöglich anfühlt – die Liste, die auf einem vier Jahre alten Telefon ohne Stocken scrollt; das Formular, das die halb getippte Antwort nach einem Verbindungsabbruch wiederherstellt; das Release, vor dem niemand irgendjemanden warnen musste –, dann sieht man keine Magie. Man sieht die Abwesenheit der zwölf kleinen Fehler, auf die man dressiert wurde. Magie funktioniert, indem sie Arbeit verbirgt. Engineering funktioniert, indem man die unsichtbare Arbeit an einem Dienstag erledigt, an dem niemand je die Version sehen wird, in der man es nicht getan hat.
Zaubern ist keine Stimmung. Es ist ein Standard: eine Liste von Dingen, die wir jedes Mal tun – und ganz besonders in den Wochen, in denen es heute nichts kosten würde, sie auszulassen.
Standards sind unmodern, weil sie nach Bürokratie klingen. Sind sie nicht. Ein Standard ist das, was donnerstags um 18 Uhr für einen entscheidet, wenn der Kunde zufrieden ist, die Demo saß und der richtige nächste Schritt zwei weitere Stunden Arbeit sind, die sichtbar nichts verändern. Geschmack allein verliert dieses Argument jedes Mal. Ein aufgeschriebener Standard gewinnt es ungefähr in der Hälfte der Fälle, und das ist der gesamte Abstand zwischen zwei Studios.
Wir stellen Architekten ein, keine Monteure
Der Unterschied ist keine Frage von Seniorität und keine von Titeln. Ein Monteur fragt, was im Ticket steht. Ein Architekt fragt, was das Ticket im achtzehnten Monat bedeutet, wenn drei andere Features auf der Abkürzung aufsetzen, die es vorschlägt. Beide schreiben funktionierenden Code. Nur einer von beiden ist im zweiten Jahr noch billig zu beschäftigen.
Code tippen war nie die knappe Fähigkeit, und sie wird Quartal für Quartal weniger knapp. Knapp bleibt Urteilsvermögen: welche Invariante tragend ist, welche Abstraktion ihr Gewicht wert ist, welches gewünschte Feature in Wahrheit zwei Features und ein Missverständnis sind. Ein Monteur baut ein, was verlangt wurde. Ein Architekt fragt, was jetzt gelöscht gehört, wo das Ding existiert – und ist bereit, mir nein, und hier ist, was ich stattdessen bauen würde zu sagen, schriftlich.
Die Einstellungslatte ist also eine Urteilslatte. Ich will, dass die internen Diskussionen in diesem Studio ums Löschen gehen, nicht ums Hinzufügen. Ein Backlog verlängern kann jeder.
Sagen, was ein Ding nicht ist
Jedes System hat eine Grenze, an der es aufhört, wahr zu sein. Caches veralten. Schätzungen unterstellen einen Scope. Modelle sind sich sehr sicher bei Dingen, die sie nie gesehen haben. Der Reflex der Branche ist, diese Grenze aus dem Satz wegzulassen und zu hoffen, dass ihr niemand in der Produktion begegnet. Unsere Regel läuft andersherum: Die Grenze gehört in die Oberfläche, in derselben Schriftgröße wie das Versprechen.
Der Satz, der eine Grenze eingesteht, ist Teil des Produkts. Steht er nicht in der Oberfläche, sind wir mit dem Ausliefern nicht fertig.
An den zwei Stellen, an denen wir ehrlich sein müssen, ist das bereits sichtbar. Der Preisrechner setzt den Vorbehalt dorthin, wo die Zahl steht, statt in den Footer: Eine Schätzung gilt, bis Scope und Discovery etwas anderes sagen. Die Geld-zurück-Garantie nennt jede daran hängende Bedingung im selben Atemzug wie das Versprechen. Die Bedingungen zu veröffentlichen kostet ein wenig Conversion und kauft das Einzige, was an Tag eins etwas wert ist: einen Kunden, der im dritten Monat nicht überrascht wird.
Verwandt und ebenso bindend: Überzeugungsarbeit leisten Zahlen. „Schnell“ ist ein Bericht darüber, wie wir über unsere eigene Arbeit denken. „180 ms im 95. Perzentil, auf einem Mittelklasse-Android über 4G“ ist eine Behauptung, die man hergehen und widerlegen kann. Adjektive bitten darum, geglaubt zu werden; Zahlen bitten darum, geprüft zu werden. Uns ist geprüft lieber – und wenn die Messung noch fehlt, ist der ehrliche Zug, zu sagen, dass sie fehlt, statt nach einem größeren Adjektiv zu greifen.
Cleanup beim Unmount ist eine moralische Haltung
Hier ist das kleinste Beispiel für diesen Standard, das ich kenne, und das, mit dem ich ihn Leuten erkläre, die all das für abstrakt halten. Eine interaktive Komponente erwirbt Dinge, solange sie lebt: Timer, Event-Listener, Sockets, Observer, Animation Frames, einen GPU-Kontext. Nichts in der Sprache zwingt einen, sie zurückzugeben, wenn die Komponente verschwindet. Lässt man es weg, funktioniert die App trotzdem – die Tests laufen grün, die Demo sitzt, das Feature geht raus.
Dann navigiert jemand zwanzig Minuten durch das Produkt. Die verwaisten Timer feuern alle noch. Das Telefon wird warm, der Laptoplüfter dreht auf, der Tab, der am Schreibtisch in Ordnung war, stirbt in der S-Bahn. Niemand meldet diesen Fehler als du hast eine Cleanup-Funktion vergessen; gemeldet wird „die App ist schwer“, und häufiger wird gar nichts gemeldet, sondern das Ding einfach nicht mehr benutzt.
Ich nenne es eine moralische Haltung, weil es einen Nachmittag kostet und nichts einbringt, was man in eine Demo stecken könnte. Man tut es für eine Maschine, die man nie sehen wird, im Besitz einer Person, die nie erfahren wird, dass ihr etwas erspart blieb. Dieser Instinkt skaliert auf alles darüber: Sessions, die wirklich enden; Jobs, die anhalten, wenn man sie abbricht; Caches mit einem Ablauf, den jemand absichtlich gewählt hat; Features, die verschwinden, sobald sie ihre Wartung nicht mehr verdienen. Software, die hinter sich nicht aufräumt, ist Software, die die Maschine nicht respektiert, auf der sie zu Gast ist.
Warum ein kleines Studio seine Preise veröffentlicht
Informationsasymmetrie ist der Lieblingstrick dieser Branche und ihr ältester. „Preise auf Anfrage“ heißt nicht, dass der Preis kompliziert ist; es heißt, dass er verhandelbar ist, in eine Richtung, die davon abhängt, was die Agentur über Ihr Budget erraten kann. Die Zahl existiert vor dem Gespräch. Im Gespräch geht es nur darum, wer sie zuerst erfährt.
Wir haben unsere an Tag eins veröffentlicht, mit der Rechnung auf dem Bildschirm – Units pro Position, die Multiplikatoren, die Spanne, die Wochen. Man kommt um zwei Uhr nachts zu einer Zahl, ohne jemandem zu begegnen, und wenn die Zahl für einen nicht passt, hat man neunzig Sekunden verloren statt zwei Termine und eine Woche Höflichkeit.
Das hat einen realen Preis, und ich sage ihn lieber, als so zu tun, als wäre die Entscheidung gratis gewesen. Sie legt unsere Preisliste den Wettbewerbern in die Hand, sie lädt zum Preisvergleich mit Leuten ein, die uns fröhlich unterbieten, und sie nimmt uns die Möglichkeit, zwei Kunden für identische Arbeit unterschiedlich abzurechnen. Diese Möglichkeit will ich nicht. Ein Preis, den zu veröffentlichen peinlich wäre, ist ein Preis, den zu verlangen peinlich sein sollte.
Die 100-%-Geld-zurück-Garantie ist dieselbe Idee mit Preisschild. Geht das Projekt nicht vor dem vertraglich vereinbarten Termin live, zahlen Sie nichts. Sie verwandelt unsere Zuversicht von einem Adjektiv in eine Verbindlichkeit auf unserer Seite des Tisches – die einzige Form von Zuversicht, mit der ein Käufer etwas anfangen kann.
Es gibt eine Version von all dem, die greift, bevor jemand Kunde wird, und das ist der Teil, den die meisten Studios für Dekoration halten. Was wir einem Besucher schulden: Seiten, die auf dem Telefon schnell laden, das er tatsächlich besitzt; einen Preis, den er findet, ohne eine E-Mail-Adresse abzugeben; keinen Countdown, der beim Neuladen von vorn beginnt; keinen Cookie-Dialog, der so gebaut ist, dass der falsche Button leichter zu treffen ist; kein Widget, das so tut, als wäre es ein Mensch, der sich sehr freut zu helfen. Dark Patterns sind nur ein Standard, der auf den Kunden zielt statt auf den Code.
Nichts davon ist in Woche eins beeindruckend. Einen Standard halten kann jeder, solange das Studio klein ist, der Kalender leer und noch keine Deadline die Zähne gezeigt hat. Ihn gerade jetzt aufzuschreiben, hat genau den Grund, dass er später unbequem sein wird – und ein aufgeschriebener Standard ist widerlegbar, wie es ein Unternehmenswert nie sein kann. Die Website ist vor sechs Tagen live gegangen, und die Preise sind seit der ersten Stunde öffentlich. Beides ist überprüfbar. Bitte überprüfen Sie es.