Ist es nicht aufgeschrieben, ist es nicht passiert.
Der Spruch ist aus dem Kopf frei zitiert, da ich keine Lust habe die über 600 Seiten eines Romans nach dem genauen Wortlaut zu durchsuchen. Er fasst das Problem mit der Dokumentation sehr gut zusammen. Wenn man nirgends aufschreibt, was man getan hat, so hat man die Arbeit schlicht nicht getan.
Wieso ist Dokumentation verdammt wichtig
In den ersten paar Jahren war das Wachstum meines Arbeitgebers so schnell, dass ich mir nie die Zeit für eine saubere Dokumentation genommen habe. Auch war die Kadenz der Änderungen so hoch, dass eine Dokumentation nach einer Woche veraltet war.
Dabei spielt es keine Rolle, ob es Software, Server- oder Netzwerkkonfiguration betrifft. Spätestens als wir den zweiten Standort bezogen haben, wurde das Problem klar. die alte Infrastruktur und die selbstgeschriebene Software ist nicht dokumentiert und viele Arbeitsgänge und Probleme mussten erneut mühsam im Internet zusammengesucht werden. Da am neuen Standort das Netzwerk komplizierter geworden. Hätte ich die Konfiguration und Verkabelung nirgends dokumentiert, so wäre der erste Infrastrukturwechsel nach ca. 8 Monaten nicht so flüssig verlaufen.
Bei der Software ist der Fall noch einfacher zu beschreiben. Ich habe mehrere tausend Zeilen Code geschrieben für meinen Arbeitgeber. Zu Beginn konnte ich mir die Abläufe und Strukturen der einzelnen Programme gut merken. Unterdessen sind es einfach zu viele. Wenn ich jetzt an einem Programm arbeiten muss, welches ich über ein halbes Jahr nicht benutzt habe, so brauche ich je nach Grösse mindestens eine Stunde, um mich wieder einzulesen.
Zum Teil liegt dies auch daran, dass sich mein Programmierstil in den Jahren verändert hat. Jedoch habe ich erst in dem letzten Jahr angefangen umfassende Komentare im Code einzufügen. Dazu war "nur" ein komplettes Refaktoring eines ca. 3000 Zeilen grossen Programmes von Nöten. Dies zielte vor allem auf den Code selber ab, war aber eine gute Möglichkeit die Dokumentation zu verbessern.
Dokumentiere was du antriffst
Solltest du ein grösseres Softwareprojekt ohne jegliche Dokumentation bekommen mit der Aufgabe Änderungen daran durchzuführen, so nutze dies als Chance die Dokumentation zu beginnen und aufzubauen. Das heisst nicht das du 5 Wochen den alten Code studieren und Dokumentieren sollst, sondern alles was du über die Software lernst während deinen Änderunge zu dokumentieren. So verlierst du nicht viel Zeit, weil du nur niederschreibst, was du sowieso gelernt hast. Aber für die nächste Person welche Änerungen durchführen muss, hat schon einmal gewisse Informationen zum Starten und kann ihre Erkenntnisse zur Dokumentation beitragen
Dokumentiere nicht für dich
Dokumentation über egal welches Thema sind nicht nur für dich. Ich bin der einzige ITler bei meinem Arbeitgeber. Falle ich aus muss mein Chef als Wirtschaftsinformatiker mit Hilfe der Dokumentation kleiner Probleme beheben können.
Sprich es kann sein, dass die Person, welche die Dokumentation benötigt nicht deinen Wissensstand hat. Trotzdem muss die Dokumentation dieser Person alles vermitteln, was sie benötigt um Probleme behandeln zu können.
Auch kann ein neuer Mitarbeiter zum Team hinzustossen, welcher keine Ahnung von den Gegebenheiten hat. Die Dokumentation sollte alle nötigen Informationen für eine solche Person bereitstellen oder ihr mitteilen wo sie diese findet.
Rechne Stress mit ein
Geht es um kritische Infrastruktur für den Arbeitgeber, so rechne ein das im Problemfall ein höherer Stressfaktor vorhanden ist. Halte die Dokumentation einfach und klar. Tabellen und Grafiken erklären gewisse Umstände besser als mancher Absatz Text. Auch sind sie schneller erfassbar. Beispiele dazu sind Verteillungen von IP-Addressen oder die Belegungen von Switches und Patchpanels.