Warum wir ein eigenes Programm geschrieben haben
Für das Aufräumen gewachsener Datenbestände gab es kein Werkzeug, dem wir fremde Daten anvertrauen wollten. Also haben wir eines gebaut und dabei gelernt, warum Analyse und Löschen strikt getrennt gehören.
Über die Jahre sammelt jeder Betrieb Daten an, die niemand mehr überblickt. Alte Sicherungskopien, doppelt abgelegte Projektordner, drei Generationen von Fotoarchiven auf zwei externen Festplatten. Irgendwann ist der Speicher voll, und die Frage steht im Raum: Was davon ist eigentlich doppelt?
Werkzeuge für diese Aufgabe gibt es reichlich. Wir haben trotzdem ein eigenes geschrieben. Warum, ist ein gutes Beispiel dafür, wann sich Eigenentwicklung lohnt und wann nicht.
Was an den vorhandenen Werkzeugen störte
Die meisten Duplikat-Sucher haben einen gemeinsamen Konstruktionsfehler: Sie finden und löschen in einem Arbeitsgang. Man startet den Suchlauf, bekommt eine Liste mit Häkchen und einen grossen Knopf, der „Ausgewählte löschen" heisst. Manche setzen die Häkchen sogar selbst, nach Regeln wie „behalte die neueste Datei".
Bei den eigenen Urlaubsfotos mag das gutgehen. Bei fremden Geschäftsdaten ist es unverantwortlich. Denn eine inhaltlich identische Datei ist nicht dasselbe wie eine überflüssige Datei.
Ein Vertrag kann bewusst an zwei Orten liegen: im laufenden Projektordner und im Archiv. Beide Kopien sind Byte für Byte gleich. Eine davon zu löschen, weil ein Programm sie für redundant hält, zerstört eine Ablagestruktur, die jemand mit Absicht angelegt hat.
Die Entscheidung: zwei getrennte Schritte
Unser Werkzeug trennt deshalb strikt, was andere zusammenlegen:
Schritt eins, die Analyse. Das Programm durchsucht die angegebenen Laufwerke und vergleicht Dateien nach ihrem tatsächlichen Inhalt, nicht nach Namen oder Grösse. Zwei Dateien mit völlig verschiedenen Namen werden als identisch erkannt, zwei gleichnamige mit minimalem Unterschied nicht. Das Ergebnis ist ein Bericht: eine Tabelle, welche Dateien zusammengehören, wo sie liegen und wie viel Platz sich zurückgewinnen liesse.
Dieser Schritt löscht, verschiebt und verändert nichts. Man kann ihn über Nacht auf alle Laufwerke loslassen, ohne ein Risiko einzugehen. Bricht man ihn ab, ist ebenfalls nichts passiert.
Schritt zwei, das Aufräumen. Erst danach, auf Basis eines Berichts, den ein Mensch angeschaut hat, wird entschieden, was tatsächlich weg kann.
Warum die Trennung mehr ist als Vorsicht
Sie verändert, wer die Entscheidung trifft. Ein Programm, das automatisch auswählt, entscheidet über Daten, deren Bedeutung es nicht kennen kann. Ein Bericht dagegen legt die Entscheidung dorthin, wo das Wissen sitzt: beim Betrieb.
Das ist derselbe Grundsatz, nach dem wir auch Automatisierungen bauen: Was Folgen hat, läuft nicht ohne Freigabe. Ein System darf beliebig viel Arbeit abnehmen. Aber Schritte, die sich nicht rückgängig machen lassen, brauchen einen Menschen davor.
Wann sich Eigenentwicklung lohnt
Nicht bei jedem fehlenden Knopf. Ein eigenes Programm ist dann sinnvoll, wenn drei Dinge zusammenkommen:
- Die Aufgabe wiederholt sich und ist damit den Aufwand überhaupt wert.
- Die Standardlösung scheitert an genau der Stelle, auf die es ankommt, nicht an einer Nebensächlichkeit.
- Die Anforderung ist klar umrissen. Ein Werkzeug für eine Aufgabe lässt sich bauen und wartungsarm halten. Ein Werkzeug für „alles Mögliche" wird ein Projekt ohne Ende.
Trifft das nicht zu, ist Kaufen fast immer richtig. Warum eine gekaufte Lösung trotzdem selten alles abdeckt, steht in diesem Artikel.
Was daraus geworden ist
Das Werkzeug läuft und steht bei unseren Projekten. Wichtiger als das Programm selbst ist aber die Regel, die daraus entstanden ist und die wir seither auf jedes Projekt anwenden: Analyse und Eingriff gehören getrennt. Erst wissen, dann handeln.
Diese Reihenfolge finden Sie auch in unserem Angebot wieder. Sie ist kein Zufall.