Mobiles Menü
Bau dir Tools, die du wirklich brauchst
Luca Fehmel
Luca Fehmel

// //
Bau dir Tools, die du wirklich brauchst
0:00 / 0:00
Diese Audioversion wurde künstlich erzeugt.

Bau dir Tools, die du wirklich brauchst

Wie individuelle Automatisierung Zeit spart, Fehler reduziert und Wissen im Team nachhaltig verfügbar macht


In der Softwareentwicklung liegt der Fokus meistens auf dem Projektfortschritt. Nicht selten fallen dabei sogenannte „Chores“, also lästige Pflichten, unter den Tisch. Die Gründe dafür sind zahlreich, das Ergebnis oft dasselbe: schleichende Qualitätsverluste, technische Schulden und Erschwernisse bei der Entwicklung. In diesem Beitrag berichte ich von unserem aktuellen Projekt und zeige, wie sich ein genau solches Thema nach und nach zu einem Problem für uns entwickelt hat und wie wir es mit einer selbst implementieren Lösung in den Griff bekommen konnten.

In unserem Projekt entwickeln wir eine Reihe unabhängiger, in sich geschlossener Systeme, jedes dieser Systeme hat eine eigene Codebasis, Datenbank, Docker-Containern und Infrastruktur. Die Aufteilung unserer Anwendungsfälle in mehrere Services ist fachlich zwar sinnvoll, führt im Alltag aber zu einigem Mehraufwand: Wir müssen ständig zwischen diesen Systemen hin und her wechseln. Der Aufwand liegt dabei also nicht im erstmaligen Aufsetzen eines Services, sondern im häufigen Kontextwechsel während der Implementierungsphase.

Bei eben diesem Kontextwechsel kommt es dann bspw. zu Overhead durch das Neustarten von Docker-Containern und Services, sowie das Einspielen von Testdaten.

Das Problem: Wiederholung der immer selben Schritte

Woran sich diese Reibung konkret bemerkbar macht, zeigt sich im Alltag sehr deutlich. Denn die ständigen Wechsel zwischen den Anwendungen führen zu mehreren negativen Effekten:

In drei deutschen Textfeldern werden die Nachteile erläutert: Zeitverlust beim Wechseln zwischen Befehlen, Fokusverlust durch Kontextwechsel und erhöhtes Fehlerrisiko durch die Arbeit im falschen Systemzustand.

Besonders spürbar wird das, wenn mehrere Personen im Team aufgrund von parallelen Arbeiten regelmäßig zwischen Anwendungen wechseln müssen und auch wenn neue Kolleg:innen eingearbeitet werden.

Unsere Vorstellung: Projektwechsel per Tool statt aus dem Gedächtnis

Im Alltag zeigt sich schnell: Die eigentliche lästige Arbeit liegt nicht in den einzelnen Anwendungen, sondern in den vielen kleinen, sich ständig wiederholenden Schritten beim Wechsel zwischen ihnen. Statt uns weiterhin auf individuelle Skripte, verstreute Dokumentationen und das Gedächtnis des Teams zu verlassen, vereinheitlichen und vereinfachen wir diesen Prozess gezielt.

Unser Ansatz war, eine zentrale Anlaufstelle zu schaffen, die den Wechsel zwischen unseren Anwendungen für alle gleichermaßen steuert. Ein Werkzeug, das wiederkehrende Abläufe automatisiert, sich direkt im Terminal nutzen lässt und so wenig Hürden wie möglich mitbringt, damit es im Alltag auch wirklich verwendet wird. Gleichzeitig sollte die Lösung genau auf unsere Projektstruktur zugeschnitten sein und unabhängig vom Betriebssystem funktionieren.

Aus diesem Bedarf heraus ist ein eigenes CLI-Tool entstanden: der „Project Starter“.

Der Project Starter

Die Oberfläche: ein zentrales Menü im Terminal

Der Project Starter ist eine interaktive Konsolenanwendung. Beim Start erscheint ein Menü, über das sich die wichtigsten Aktionen ausführen lassen: Anwendungen auswählen, bauen und starten, Tests ausführen, Dependencies installieren und noch weitere Funktionen. Die Funktionen, die mittlerweile über das einfache Wechseln der lokalen Entwicklungsumgebung für verschiedene Anwendungen hinaus gehen, wurde nach und nach erweitert und können jederzeit ergänzt werden.

Statt sich verschiedene Befehle merken oder in der Dokumentation nachschlagen zu müssen, kann man direkt durch ein Menü navigieren. Die Bedienung ist dabei bewusst einfach gehalten, damit das Tool nicht mehr Komplexität schafft, als es reduzieren soll.

Terminalfenster mit einem Menü für das Einrichtungsskript von „App Starter (2.1)“, das den Projektpfad sowie Optionen zum Starten des Clients, zum Installieren von Abhängigkeiten und zum Ändern der Projekteinstellungen enthält. Es wird eine Liste mit Tastenkombinationen angezeigt.

Die Wechselfunktion: das Herzstück

Die Vorteile des Project Starters sind am deutlichsten beim eigentlichen Projektwechsel spürbar. Mit einem Tastendruck gelangt man in ein Kontextmenü, in dem die verfügbaren Projekte angezeigt und gefiltert werden können. Nach der Auswahl eines Projekts übernimmt das Tool die Arbeit:

Nicht mehr benötigte Container und Volumes werden entfernt, neue Services gestartet, Builds angestoßen und Testdaten eingespielt. Aus mehreren manuellen Kommandos wird damit ein konsistenter, automatisierter Ablauf, der mit nur einem Knopfdruck ausgeführt werden kann.

In einem Terminalfenster wird eine nummerierte Liste von 11 bis 15 angezeigt, in der neben jedem Eintrag das Wort „Projekt“ und die Zahlen 1 bis 5 stehen.
Terminalfenster, in dem der Bereinigungs- und Startvorgang von Docker angezeigt wird, einschließlich der Entfernung alter Container und der Erstellung bzw. des Starts neuer Dienste. Die Status werden durch farbcodierten Text dargestellt.

Für die Nutzenden reduziert sich der Wechsel auf wenige Befehle. Alles andere läuft automatisch im Hintergrund ab, nachvollziehbar durch Logs im Terminal-Output. Da der Code zum Project Starter in einem eigenen Repository für das Projektsetup eingecheckt ist, wird es für alle im Team zugänglich und kann schnell und einfach erweitert werden.

Wo der Project Starter gut funktioniert

Damit der Project Starter zuverlässig arbeiten kann, braucht es eine gewisse Einheitlichkeit in den Projekten. Bei uns bedeutet das:

In drei nummerierten Kästchen auf Deutsch sind die Projektanforderungen aufgeführt: eine ähnliche Verzeichnisstruktur, ein identischer Abhängigkeitsmanager und ein vergleichbares Konzept für die lokale Infrastruktur, insbesondere unter Verwendung von Docker.

Weil wir diese Standards im Vorfeld etabliert haben, können wir nun einen Großteil unserer Anwendungen über das Tool steuern, ohne für jedes Projekt spezielle Wege gehen zu müssen. Die notwendige Vereinheitlichung ist also weniger eine Einschränkung, sondern vielmehr eine Voraussetzung für Automatisierung und zudem ein guter Standard, der es ermöglicht, sich in jedem Projekt gut zurechtzufinden.

Uns war wichtig, diese Automatisierung selbst in die Hand zu nehmen, und mit überschaubarem Aufwand ein Tool zu entwickeln, das genau zu unserer Struktur passt und im Alltag tatsächlich genutzt wird. Dadurch bleibt der Code bei uns: es entstehen keine Mehrkosten und Abhängigkeiten, gleichzeitig sind bei Bedarf schnellere Anpassungen möglich.

Verwendete Technologie

Für den Project Starter setzen wir bewusst auf einfache, aber flexible Technologien: Bash als Skriptsprache und Gum für die interaktive Nutzung im Terminal, ergänzt durch klassische Unix-Werkzeuge.

Die gesamte Anwendungslogik ist in Bash umgesetzt. Ausschlaggebend dafür waren vor allem die breite Verfügbarkeit auf Unix-basierten Systemen (inklusive macOS, Linux und WSL), die nahtlose Integration bestehender Tools wie Docker, sowie die geringe Einstiegshürde für Entwickler:innen. Im Skript selbst kommen typische Shell-Mechanismen zum Einsatz, etwa Funktionen zur Kapselung wiederkehrender Abläufe, Conditional Statements zur Steuerung des Programmflusses, sowie das Einlesen von Konfigurationsdateien (z. B. .env- oder .sh-Files), um projektbezogene Parameter dynamisch zu verwalten.

Für die Interaktion im Terminal nutzen wir Gum. Damit lassen sich ohne großen Overhead interaktive Elemente wie Auswahlmenüs, Eingabemasken oder Bestätigungsdialoge realisieren. Gleichzeitig ermöglicht Gum eine strukturierte und visuell klarere Ausgabe von Statusmeldungen und Fehlern. So bleibt die gesamte Logik in der Shell, während die Nutzung deutlich an Qualität gewinnt – ohne den Einsatz eines vollwertigen UI-Frameworks.

Fazit: individuelle Automatisierung lohnt sich

Mit dem Project Starter entsteht eine Lösung, die genau dort ansetzt, wo sich lästige Aufgaben wiederholen: beim Setup lokaler Infrastruktur und dem Wechsel zwischen Projekten. Anstatt immer wieder von vorne zu beginnen, folgt der Wechsel nun einem klar definierten, automatischen Ablauf.

Der Effekt ist deutlich: weniger Zeit und Aufwand pro Anwendungswechsel, weniger Fehler, weniger Frust – und ein schnelles, leichtgewichtiges Onboarding. Nicht zuletzt, weil das Wissen über lokale Infrastruktur nicht mehr nur in den Köpfen der Entwickelnden oder verstreut in Dokumentationen liegt, sondern zentralisiert in einem Tool gebündelt ist.

Für andere Teams bedeutet das: Gerade wenn Standardlösungen nicht zu speziellen Projektanforderungen passen, lohnt es sich, ein kleines Tool selbst zu schreiben. Es ist schnell entwickelt, kostengünstig, lässt sich flexibel erweitern und verbessert spürbar den Arbeitsalltag des Teams.

Der Project Starter zeigt, dass sich eine individuelle Automatisierung auszahlt:

Sechs schwarze Rechtecke mit deutschem Text in Weiß und Rot beschreiben die Vorteile des Software-Tools, darunter Zeitersparnis, Fehlerreduzierung, Datenkontrolle und einfache Anpassung an die Bedürfnisse jedes Nutzers.

Über den Autor

Luca Fehmel ist Software Engineer bei BettercallPaul und bringt ein starkes Gespür für Qualität, Struktur und nachhaltige Lösungen mit. Er arbeitet als Fullstack-Entwickler mit Fokus auf agiles Projektvorgehen und der Entwicklung von Projektinfrastruktur. Sein Ziel ist es komplexe Systeme & Prozesse verständlich und stabil zu implementieren.

Dabei verbindet er technisches Know-how mit einem guten Blick für Teamdynamik: Er fördert den Austausch und trägt dazu bei, ein Umfeld zu schaffen, in dem Zusammenarbeit und kontinuierliche Verbesserung selbstverständlich sind.