Der Segen einer guten Dokumentation

Als Programmierer gehört das Thema Dokumentation für mich zum Arbeitsalltag. Doch auch in anderen Bereichen können gut sortierte Notizen zu einem Auftrag schnell Zeit und Geld sparen. Dieser Artikel zeigt, warum eine Dokumentation wichtig ist und welche Vorteile sie mir als Gründer bringt.

Dokumentation für Programmierer

Ich hatte als Webseitenprogrammierer bisher noch keinen Kunden, der von sich aus eine Dokumentation verlangt hat. Dennoch fertige ich mir für alle Aufträge Notizen an. Das schnelle Nachschauen hat mir schon in vielen Situationen Zeit und damit Geld gespart. Das merken zunehmend auch meine Kunden. Typische Fälle in denen mir eine Dokumentation bisher geholfen hat.

  • der Kunde erteilt einen Folgeauftrag
  • der Kunde hat eine Nachfrage zur Umsetzung
  • etwas funktioniert nicht
  • ein neuer Entwickler möchte wissen, was ich geändert habe

Je länger der Auftrag her ist, desto schwerer fällt es mir, mich an die konkrete Umsetzung zu erinnern. Zu meinen Notizen kommt regelmäßig auch das, was der Kunde mir zu welcher Anforderung gesagt hat.

Ohne diese Notizen müsste ich mich meist wieder durch den Quellcode wühlen, was gerade bei komplexen Themen wie Webshops alles andere als schnell geht.

Nach 6 Monaten ist das meiste weg

Ich habe die Erfahrung gemacht, dass ich mir Details zu Aufträgen zwischen 3 und 6 Monate lang noch merken kann. Danach kam zu viel Neues dazwischen und ohne Notizen kann ich mir die ursprünglichen Anforderungen und meine Umsetzung nicht merken.

Was beinhaltet meine Dokumentation?

Als Programmierer notiere ich mir neben den Anforderungen des Kunden, meinen Fragen und den Antworten auch, welche Argumente ich für und gegen eine bestimmte Art der Umsetzung hatte und wie und warum ich mich schließlich für das entschieden habe, was ich gemacht habe.

Hinzu kommen Dateinamen, ggf. Codeschnipsel und Links, die mich auf dem Weg zur Umsetzung begleiteten.

Anleitungen für Kunden

Es gibt leider viel zu viele Kunden, die sich in ihren Merkfähigkeiten überschätzen. Daher fertige ich bei komplexen Änderungen, die nicht unbedingt dem normalen Workflow entsprechen, auch mal Dokumentationen für den Kunden an, deren Inhalte dann eher eine Anleitung sind.

Aktuell erlebe ich den kompletten Wechsel des Online-Marketing-Teams bei einem Kunden. Nun scheint dort niemand mehr zu wissen, was ich wann wie umgesetzt habe. Einen großen Teil der Fragen konnte ich mit einer vor einem Jahr geschriebenen, ausführlichen Anleitung beantworten. Diese habe ich zusammen mit allen anderen Informationen in einem eigenen Ordner hinterlegt. Ich musste mich nur an ein paar Schlagworte erinnern und konnte das Dokument über die Dateisuche meines Macs finden.

Dieser Punkt gehört übrigens zum Bereich Kommunikation, den ich vorsorglich schon bei der Kalkulation eines Projektes berücksichtige.

Dokumentation für Gründer

Wir haben bei netVoKi schon früh ein Wiki eingerichtet, auf das jeder Mitarbeiter von Außen zugreifen konnte. Dort befanden sich Protokolle von internen Treffen und Gesprächen mit Partnern und Notizen zu Recherchen. Jeder konnte darauf zugreifen. Auch wenn diese ersten Anfänge mit einem solchen System noch sehr unbeholfen waren und das organische Wachsen nicht unbedingt zur Übersichtlichkeit beigetragen hat, so wurde uns allen schnell der Vorteil einer guten Dokumentation bewusst. Alle wussten, dass dort die Informationen lagen, nur eine Person musste sie einpflegen (und nicht jeder seine eigenen Notizen verwalten) und niemand musste die anderen fragen, ob er etwas nochmal wiederholen oder sich an etwas erinnern könnte.

Was ist zu dokumentieren?

Ich dokumentiere nach Möglichkeit alle Entscheidungen, Recherchen, Konzepte, Protokolle und Aufgaben. Beispiele habe ich aus meinem Blickwinkel als Programmierer schon genannt. Im Laufe eines Auftrages nutze ich eine Redmine-Installation. Dort werden Aufgaben gleich zusammen mit Diskussionen und Notizen zur Lösung festgehalten. Das projektbasierte Wiki im System hält dann ausführliche Notizen fest, z.B. welche Änderungen ich wo, warum und wie durchgeführt habe.

Bei Übersetzungsaufträgen notiere ich mir alle Elemente der Kommunikation mit Datum. Also z.B. wann hat der Kunde ein Angebot mit welchem Inhalt angefordert, welcher Übersetzer wurde wann beauftragt oder wann ging die Rechnung wie an den Kunden und mit welcher Zahlungsfrist. Ich habe gelernt, dass alles, was ich mir nicht merken muss, mir das Leben einfacher macht. Ich muss also nur noch wissen, wo etwas steht. Der Mehraufwand ist zwar nicht unerheblich, doch bisher hat er sich immer ausgezahlt.

Dokumentation ja – aber wo?

Redmine

Für alles, was mit meinen Programmierprojekten zu tun hat, nutze ich mein eigenes Redmine oder eine Installation des Kunden, sofern vorhanden. Da der Kunde hier auch Zugang erhält, kann die Kommunikation und das Controlling komplett in diesem System erfolgen und geht nicht in ausufernden E-Mails verloren. Auf die Frage, wie weit ein Projekt ist und was ich noch zu tun habe, muss ich mir einfach die Liste der Tickets ansehen.

Wiki

Für jedes Projekt in Redmine kann man ein Wiki anlegen. Auf ein zusätzliches allgemeines Wiki verzichte ich mittlerweile, weil es dort keine nutzerspezifischen Zugänge gibt, so dass alle Informationen allen Menschen mit Zugängen offen stehen. Das ist in der Praxis sehr ungünstig.

Schreibprogramme

Die Dokumentation der Übersetzungsaufträge halte ich in einer Excel-Tabelle fest. Hier gibt es fertige Spalten für die wichtigsten Vorgänge wie Auftragserteilung, -durchführung, Kommunikation mit Übersetzern und Bezahlung. Dieses Dokument liegt in einem Ordner in Dropbox, so dass ich auch externe Projektmanager einbinden kann. Ebenfalls befindet sich dort ein Unterordner mit Angeboten und einer für Aufträge, die dann wiederum je einen Ordner pro Projekt für Dokumente wie Vorlagen und die fertigen Übersetzungen beinhalten. Redmine wäre hier ungeeignet, da hier die Verwaltung von Dateien im Vordergrund steht.

Früher habe ich auch Projekte in einfachen Schreibdokumenten festgehalten. Das ist sinnvoll, wenn Projekte einen gut auffindbaren Ordner im Dateisystem haben. Mittlerweile gehe ich nach und nach darin über, diese Informationen in Redmine zu überführen, damit auch meine Kunden etwas davon haben.

 

Wie ich kürzlich bei der Lektüre von Getting Things Done gelernt habe, sollte man seiner Dokumentation vertrauen. Es ist daher unwichtig, wie und wo ihr eure Gedanken und Informationen hinterlegt. Wichtig ist, dass ihr eurem System alles anvertrauen könnt und ihm vertraut. Nur eines ist sicher: der eigene Kopf ist das denkbar schlechteste Speichermedium für die Unternehmensdaten. Ich freue mich aber auf gegenteilige Meinungen in den Kommentaren.

Bildquellen

  • Dokumentation: Bildrechte beim Autor