Blog
Build in Public
1. April 20269 min

38 Commits, null Features: Der Sprint, der zählt

38 Commits in 10 Tagen. Null neue Funktionen. Und doch ist es wahrscheinlich die wichtigste Woche seit Beginn des Projekts.

Das ist das Paradoxon der Produktentwicklung: Die Wochen, die am wichtigsten sind, sind diejenigen, in denen "nichts" Sichtbares passiert. Keine neue Funktion anzukündigen, kein spektakulärer Screenshot. Nur Code, der das Bestehende besser, solider, professioneller macht. In der Welt des "Build in Public" erzeugen diese stillen Sprints keine Likes. Aber sie machen den Unterschied zwischen einer App, die "bei mir funktioniert", und einer App, die für echte Benutzer bereit ist.

Wichtige Punkte
  • 38 Commits konzentrierten sich auf Stabilität, nicht auf Funktionen, wobei ein Web-Kalender von 1 auf 4 Ansichten erweitert wurde, um eine vollständige Parität zwischen Mobil und Desktop zu erreichen.
  • Crashlytics (Frontend) + Sentry (Backend) wurden vor der Produktion eingesetzt, gemäß den Firebase-Empfehlungen für das Pre-Launch-Monitoring.
  • Die Sprach-KI erkennt deine vorhandenen Benennungsmuster und reproduziert sie automatisch für neue Ordner.
  • UTM-Tracking auf allen geteilten Links für eine zuverlässige Marketing-Attribution ab Tag 1.
Einzelner Entwickler arbeitet nachts vor mehreren Bildschirmen, die Code und Dashboards anzeigen, was die unsichtbare Arbeit eines Stabilisierungssprints illustriert

Warum ist ein Sprint ohne Features der wichtigste?

Laut einer Studie von Stripe (2018) verbringen Entwickler durchschnittlich 42% ihrer Zeit mit der Verwaltung von technischer Schuld und Wartung. Das ist keine verlorene Zeit: Es ist investierte Zeit. Ein "Zero-Feature"-Sprint bedeutet, freiwillig auf das Hinzufügen von Neuem zu verzichten, um das Bestehende zu konsolidieren.

Konkret, was bedeutet das für TAMSIV? 10 Tage, um Mikro-Bugs zu beheben, Übergänge zu glätten, das Web an das Mobile anzupassen, Monitoring hinzuzufügen. Nichts Auffälliges. Aber nach diesen 10 Tagen hat sich die wahrgenommene Qualität der App grundlegend verändert.

Ich hatte es bereits im Artikel über den finalen Zero-Feature-Sprint erwähnt: Der natürliche Reflex eines Entwicklers ist es, hinzuzufügen. Immer hinzufügen. Es erfordert echte Disziplin, sich zu sagen: "Nein, diese Woche konsolidieren wir." Das ist die Philosophie, die ich weiterhin anwende. Zahlt es sich aus? Die 12 Alpha-Tester haben in diesem Zeitraum keine Abstürze gemeldet. Null. Das erste Mal seit Beginn des Projekts.

Wie wurde der Web-Kalender von 1 auf 4 Ansichten erweitert?

Desktop- und Tablet-Bildschirm, der dieselbe farbige Kalenderoberfläche mit synchronisierten Ereignisblöcken zwischen Geräten anzeigt

Der Kalender des Web-Dashboards hatte nur eine Ansicht: die Woche. Ausreichend für eine Demo, unzureichend für den täglichen Gebrauch. Ich habe drei zusätzliche Ansichten (Tag, Monat, Jahr) hinzugefügt, um die Parität mit dem mobilen Kalender zu erreichen, den ich hier detailliert beschrieben hatte.

Das technische Ziel ist klar: Der Übergang zwischen Telefon und Computer soll unsichtbar sein. Du erstellst morgens eine Aufgabe per Sprache auf deinem Telefon und findest sie mittags auf deinem Computerbildschirm mit genau derselben Darstellung wieder. Ein Klick auf ein Ereignis öffnet dessen Details. Ein Klick auf eine Aufgabe, dasselbe.

Die Detailseiten für Aufgaben und Memos wurden komplett neu gestaltet, um dem mobilen Erlebnis zu entsprechen. Bild-Thumbnails, flüssige Navigation, gleiche visuelle Struktur. Das ist eine undankbare, aber wesentliche Arbeit: Jede Inkonsistenz zwischen Mobil und Web erzeugt kognitive Reibung beim Benutzer. Und Reibung ist der Feind Nummer 1 der Bindung.

Warum Crashlytics und Sentry vor der Produktion hinzufügen?

Kontrollzentrum mit Echtzeit-Monitoring, das Grafiken, Statusindikatoren und Warnungen auf einem Ultrawide-Bildschirm in einer gedämpften blauen Atmosphäre anzeigt

Wenn deine App von dir und 12 Testern verwendet wird, kannst du es dir leisten, über Supabase-Logs und "es funktioniert bei mir" zu debuggen. Wenn du dich darauf vorbereitest, in die öffentliche Produktion zu gehen, ist das keine Option mehr. Laut der Firebase Crashlytics-Dokumentation erkennen Apps, die das Monitoring vor dem Start konfigurieren, kritische Abstürze 10x schneller als diejenigen, die erst nach den ersten Benutzerbeschwerden reagieren.

Ich habe zwei komplementäre Systeme eingerichtet:

Firebase Crashlytics im React Native Frontend

Crashlytics erfasst drei Arten von Problemen auf dem Mobilgerät. Zuerst Abstürze (die App schließt sich abrupt), dann ANR (Application Not Responding), diese Momente, in denen die App länger als 5 Sekunden einfriert, und schließlich nicht abgefangene JavaScript-Fehler. Für jeden Vorfall erhält man den vollständigen Stack-Trace, das Telefonmodell, die Android-Version und was der Benutzer kurz zuvor getan hat. Ich hatte die Audio-Pipeline bereits im Artikel STT nativ vs. Deepgram beschrieben, das ist genau die Art von komplexer Kette, bei der ein stiller Absturz ohne dediziertes Monitoring unbemerkt bleiben kann.

Sentry im Node.js/Express Backend

Auf der Serverseite erfasst Sentry API-Fehler, WebSocket-Timeouts und unbehandelte Ausnahmen. Was den Unterschied ausmacht, sind die Breadcrumbs: Sentry zeichnet eine Chronologie der Ereignisse auf, die zum Fehler geführt haben. Wenn ein OpenRouter-Aufruf nach einem langsamen Supabase-Aufruf ein Timeout hat, siehst du die gesamte Kette. Plus das Performance-Monitoring, das die Antwortzeiten jedes Endpunkts misst.

Die Idee ist einfach: Wenn ein Bug in der Produktion auftritt, wissen wir es bevor der Benutzer sich beschwert. Das ist der Unterschied zwischen "wir haben ein Problem" und "wir haben das Problem gelöst, bevor du es bemerkt hast".

Wie erkennt die KI deine Benennungsmuster?

Hand hält ein Smartphone mit einer Sprachwelle auf dem Bildschirm, umgeben von holografischen Symbolen von Dateien und Ordnern, die sich automatisch organisieren

Ein einziger Commit, aber einer, der das tägliche Erlebnis verändert. Der Sprachassistent von TAMSIV analysiert nun die Namen deiner vorhandenen Ordner, um wiederkehrende Benennungsmuster zu erkennen und diese automatisch zu reproduzieren.

Nehmen wir ein konkretes Beispiel. Du hast drei Ordner: "Einkäufe Carrefour", "Einkäufe Leclerc", "Einkäufe Aldi". Du sagst der KI "erstelle einen Ordner Einkäufe für Lidl". Zuvor hätte sie "Lidl" oder einfach "Einkäufe" erstellt. Jetzt erkennt sie das Muster [Kategorie] + [Name des Geschäfts] und erstellt automatisch "Einkäufe Lidl".

Ein weiteres Beispiel: Deine Projektordner heißen "Projekt Alpha - Q1", "Projekt Beta - Q2". Die KI erkennt das Format [Projekt] + [Name] + [Quartal]. Wenn du einen neuen Projektordner erstellst, wendet sie dieselbe Konvention an, ohne dass du es angeben musst.

Das ist die Art von Detail, die kein Benutzer jemals anfordern wird, aber jeder bemerkt, wenn es da ist. Ich hatte es im Artikel über die Sprachpersonalisierung erwähnt: Die KI tut nicht nur, was du ihr sagst. Sie versteht, wie du dich organisierst.

Welche CRO-Optimierungen für die Landingpage?

Laut Google Web Vitals wirkt sich ein LCP (Largest Contentful Paint) von mehr als 2,5 Sekunden direkt auf die Absprungrate aus. Die Landingpage tamsiv.com hat mehrere gezielte Optimierungen erhalten, um unter diesem Schwellenwert zu bleiben.

Der animierte Hero-Glow verwendete ein JavaScript-Canvas, das besonders auf Mobilgeräten zu viel CPU verbrauchte. Ich habe es durch reines CSS ersetzt: gleicher visueller Effekt, keine Auswirkungen auf die Batterie. Das ist typischerweise die Art von unsichtbarer technischer Schuld, die man nur während eines Zero-Feature-Sprints behebt.

Der Untertitel des Heroes wurde neu geschrieben, um klar in einem Satz zu erklären, was TAMSIV tut. Im CRO ist die Klarheit der Botschaft oberhalb der Falz der wichtigste Konversionsfaktor. Wenn der Besucher in 3 Sekunden nicht versteht, was du tust, geht er.

Ich habe auch das Preislayout verbessert: Das Jahreslabel steht jetzt auf einer eigenen Zeile für bessere Lesbarkeit. Und der Scroll-Spy des Headers wurde korrigiert: Der aktive Zustand wurde beim Hochscrollen nicht korrekt bereinigt, ein subtiler, aber ärgerlicher Bug.

Wie verbessert UTM-Tracking die Marketingstrategie?

Zu wissen, woher deine Besucher kommen, ist die Grundlage jeder Marketingstrategie. Ohne Tracking postest du Inhalte blind. Mit Tracking weißt du genau, welcher LinkedIn-Post, welche Discord-Nachricht, welche Kampagne echten Traffic generiert. Laut der Google Analytics-Dokumentation sind UTM-Parameter der Standard für die Kampagnenattribution.

Ich habe drei Dinge implementiert. Zuerst UTM-Parameter auf jedem geteilten Link: Quelle, Medium, Kampagne, Inhalt. Dann eine serverseitige IP-Erfassung für zuverlässigere Analysen als clientseitiges JavaScript, das von Adblockern blockiert wird. Und schließlich ein erweitertes Admin-Dashboard mit Periodenwähler (7 Tage, 30 Tage, 90 Tage, alle) und einer synchronisierten Konfiguration zwischen Mobil und Web. Ich hatte die Grundlagen dieses Dashboards im Artikel über das Admin-Dashboard gelegt, es ist jetzt ein vollständiges Tool.

Das konkrete Ergebnis? In der letzten Marketing-Session konnte ich sehen, dass die i18n in 6 Sprachen 60% des eingehenden Traffics generierte. Ohne UTM hätte ich diese Daten nie gehabt.

versionCode 32: Was ist der nächste Schritt?

Der Android-Build ist in seiner 32. Version. Insgesamt über 740 Commits. Die App wird zur Produktionsprüfung an den Play Store übermittelt. Während wir auf die Validierung durch Google warten, polieren wir weiterhin jedes Detail.

38 Commits, null Features und eine App, die von "es funktioniert" zu "es ist bereit" übergegangen ist. Das ist genau die Art von Sprint, die keinen Lärm macht, aber den Unterschied ausmacht, wenn die echten Benutzer ankommen.

Häufig gestellte Fragen

Was ist ein "Zero-Feature"-Sprint?

Es ist eine Entwicklungsphase, die bewusst der Stabilität, Leistung und technischen Schuld gewidmet ist, ohne neue Funktionen hinzuzufügen. Ziel ist es, das Bestehende vor einem wichtigen Meilenstein, wie einem Produktionsstart, zu konsolidieren.

Warum Crashlytics UND Sentry zusammen verwenden?

Crashlytics ist spezialisiert auf mobiles Monitoring (Abstürze, ANR, JS-Fehler in React Native). Sentry deckt das Node.js-Backend ab (API-Fehler, WebSocket, Performance). Die Kombination beider bietet eine vollständige Sichtbarkeit über die gesamte Kette, vom Telefon bis zum Server.

Wie funktioniert die Erkennung von Benennungsmustern durch die KI?

Der Sprachassistent analysiert vorhandene Ordnernamen, um wiederkehrende Konventionen (gemeinsames Präfix, strukturiertes Format) zu identifizieren. Wenn du einen neuen Ordner erstellst, wendet die KI automatisch dasselbe Muster an, ohne dass du es angeben musst.

Was ist UTM-Tracking und warum ist es wichtig?

UTM-Parameter (Quelle, Medium, Kampagne) werden zu geteilten URLs hinzugefügt, um genau zu identifizieren, woher jeder Besucher kommt. Ohne dieses Tracking ist es unmöglich zu wissen, welcher Marketingkanal wirklich funktioniert, laut der Google Analytics-Dokumentation.

Ist TAMSIV im Play Store verfügbar?

Die App befindet sich derzeit in der geschlossenen Alpha-Testphase mit 12 Testern. Die Einreichung für die öffentliche Produktion wird derzeit von Google validiert. In der Zwischenzeit kannst du das Projekt auf tamsiv.com entdecken.