Welchen Dokumentationsgrad erwarten Sie von Entwicklern?


8

Der Titel sagt wirklich alles.

Es kann manchmal vorkommen, dass Entwicklung und IT bei solchen Dingen im Streit sind. Welchen Dokumentationsgrad erwarten Sie, wenn Sie eine Lösung installieren, patchen, warten, starten, stoppen und diagnostizieren sollen, die auf einem oder mehreren Servern ausgeführt wird?


Antworten:


9

All diese Dinge sollten detailliert dokumentiert werden. Wenn der Vorgang jedoch Standard für das Betriebssystem, den Anwendungsserver, den Webserver usw. ist, können Sie davon ausgehen, dass die IT-Mitarbeiter wissen, wie das geht.

Installation: Dokumentieren Sie alles darüber, wie es installiert und konfiguriert ist, einschließlich der Feststellung, ob es ordnungsgemäß funktioniert.

Erzählen Sie uns von der Architektur, insbesondere von der Kommunikation zwischen verschiedenen Lösungskomponenten (z. B. Bereich von Ports - RPC-Mechaniker verwenden häufig einen Bereich von Ports - wir müssen wissen, wie groß der Bereich ist und wann der Anwendung möglicherweise die Ports ausgehen).

Patchen: Dokumentieren Sie alles, was für die Anwendung spezifisch ist - was vor dem Patchen heruntergefahren werden muss und alle Folgeaktionen nach dem Patchen (Caches, Indizes, Proxys, die möglicherweise gelöscht oder neu erstellt werden müssen).

Wartung: Dokumentieren Sie, wie normaler und abnormaler Betrieb aussieht - welche Warteschlangen und andere Dinge überwacht werden sollten und wie normal diese sind.

Erklären Sie uns, wie die Daten verwaltet werden - insbesondere Tabellen und Dateien, die unbegrenzt wachsen (z. B. Protokolldateien und Transaktionsverläufe). Wie sollen diese gelöscht werden und wie wirkt sich das Entfernen alter Einträge aus? (zur Berichterstattung usw.).

Erklären Sie uns, wie Sie standardmäßige "Business as usual" / In-Life-Management-Aktionen ausführen. Dies kann beispielsweise das Hinzufügen oder Ändern von Benutzerkonten sein.

Informieren Sie uns über weitere reguläre Verwaltungsmaßnahmen, die möglicherweise erforderlich sind (z. B. welche Zertifikate verwendet werden und was zu tun ist, wenn sie ablaufen).

Sagen Sie uns für alle Änderungen, wie Sie sie zurücksetzen sollen (nicht alle Änderungen sind erfolgreich). Und sagen Sie uns, dass Sie die Rollback-Pläne getestet haben!

Diagnose: Dokumentprotokolldateiformate und -speicherorte sowie JEDE Anwendungsfehlermeldung, die möglicherweise angezeigt wird, mit der Angabe, was die Fehlermeldung bedeutet, dass ein Fehler aufgetreten ist und was möglicherweise geändert werden muss, um das Problem zu beheben. Verwenden Sie niemals dieselbe Fehlermeldung für zwei verschiedene Ereignisse.

Abgeschossen und gestartet: Wie, in welcher Reihenfolge, spezielle Verfahren (z. B. Server vor dem Herunterfahren Verbindungen abbauen lassen).

Ich bin nicht der Meinung, dass der beste Weg, dies zu tun, darin besteht, die Anwendung über den Zaun zu werfen und die IT-Mitarbeiter herausfinden zu lassen, was benötigt wird. Die Betriebsdokumentation (und im Allgemeinen die Verwaltbarkeitsfunktionen der Anwendung) müssen im Voraus bedacht werden.


1
Wow, dieser Kenntnisstand über das System vor der Bereitstellung und die Dokumentation wären erstaunlich. Ist das nicht der Grund, warum einige Unternehmen SREs mit Entwicklern beschäftigen, anstatt sich darauf zu verlassen, dass Entwickler so denken?
Cawflands

Es ist wahr, dass die meisten Entwickler nicht über solche Dinge nachdenken (ich habe sowohl als Softwareentwickler als auch später als Architekt in einem Infrastrukturmanagementunternehmen gearbeitet, und letzteres hat mir die Augen geöffnet ...). Ich denke, Entwickler sollten über diese Themen Bescheid wissen, aber wenn dies nicht der Fall ist, sind möglicherweise Spezialisten, die an der Seite arbeiten, der richtige Weg. Dies ist wirklich Teil einer umfassenderen Frage, was bei Software wichtig ist - der Wert ist die Software, die ausgeführt wird und verfügbar ist - und die Bereitstellung eines Dienstes, nicht nur der vollständigen Funktionen. Möglicherweise muss ich noch weitere Fragen stellen, damit ich diese genauer beantworten kann :)
Der archetypische Paul

2

Eine weitere Frage wäre: Was passiert, wenn (nicht wenn) die Entwickler keine ausreichende Dokumentation bereitstellen?

Ich empfehle der IT, die Möglichkeit zu haben, Fehlerberichte für die Software einzugeben, wobei jedes von den Entwicklern verwendete Fehlerverfolgungssystem verwendet wird. Auf diese Weise können Sie einen Fehler eingeben, der besagt, dass die Anwendung die Festplatte mit Protokolldateien füllt, wenn sie Ihnen beispielsweise nicht mitteilen, dass die Dateien in einem bestimmten Ordner gelöscht werden müssen und dass nur eine Woche aufbewahrt werden soll "und schlagen vor, dass sie mit der IT an einer dokumentierten Technik zum Löschen dieses Ordners arbeiten.


Ja, war dort, habe das getan. Es dauerte vier Wochen, bis die Entwickler uns sagten, wie wir die drei Tabellen, die unbegrenzt wuchsen, löschen konnten. Schneller darüber nachgedacht zu haben. Aber ich stimme Ihnen voll und ganz zu, dass Verwaltbarkeitsprobleme Fehler in der Software sind ...
The Archetypal Paul

Normalerweise lehne ich die Bereitstellung von Servern (wie in Daemons) ab, die nicht dokumentiert sind. Wenn ich sie wirklich mit Gewalt einsetzen muss (das Management verlangt es), gebe ich klar an, wie viel es kosten wird, all das herauszufinden
Martin M.

2

Meine Liste der Anforderungen an die Dokumentation wäre (nicht in einer bestimmten Reihenfolge):

(Dokumentation zu :)

  • alle Befehlszeilenschalter
  • alle Ausgangszustände und Rückgabewerte
  • Protokollnachrichten (nicht so sehr der Inhalt, sondern das Erklären von Feldern, wenn diese nicht konfigurierbar sind)
  • Konfigurationssyntax
  • wechselt in den Konfigurationsdateien
  • Speichernutzung
  • ist es mit Gewinde oder Gabel
  • Auf welche Signale reagiert der Server?
    • Gibt es ein Signal, das den Server nicht neu startet, sondern die Konfiguration erneut liest?
    • Wie verhält es sich? (Wartet es, bis vorhandene Threads / Prozesse mit der alten Konfiguration abgeschlossen sind. Tötet es sie, ...)
  • Was passiert beim unsauberen Herunterfahren (insbesondere wenn es sich um eine Art Persistenzdienst / -server handelt)?
  • Protokolliert es über vom System bereitgestellte Anrufe oder protokolliert es mit etwas, das von ihm selbst geschrieben wurde ( yuck für Apache und Zugriffsprotokoll - ich bevorzuge eindeutig integrierte Tools für die Protokollierung) ?
  • IPv4 und IPv6 sind bereit, wenn es sich um einen Netzwerkdienst handelt
  • Dokumentation zum Trunk und Dokumentation zu einer bestimmten Version
    • Nichts ist so schlecht wie stundenlanges Konfigurieren, nur um herauszufinden, dass es ignoriert wird, da die Konfigurationsoption nur im Trunk verfügbar ist
  • Welche Konfigurationsoption ist in welcher Version gültig (verfügbar seit: v1.0, veraltet seit: v1.2 oder ähnlichem)

Dokumentation wie diese sind Beispiele für eine gute Dokumentation:

Ich würde eine Dokumentation wie diese als fehlerhaft betrachten:

Auch das FreeBSD-Handbuch ist ein hervorragendes Beispiel für die Dokumentation und den Ansatz von OpenBSD. Sie werfen Sachen raus, die nicht richtig dokumentiert sind.

EDIT: Diese Liste ist keineswegs vollständig, es sind nur die grundlegenden Dinge , die mir sofort in den Sinn kamen. Auch die Dokumentation sollte gut lesbar sein, nicht nur etwas, das sich liest, als hätte sich jemand übergeben .


1

Kurz gesagt, ich erwarte die Dokumentation, die ich spezifiziere und für die ich einen Vertrag abgeschlossen habe.

Zu oft wird dieses kritische Detail in einer Vereinbarung nicht berücksichtigt. Der Endbenutzer erwartet es und möchte es natürlich kostenlos. Gute Entwickler werden dieses Versehen frühzeitig korrigieren und Erwartungen festlegen, einschließlich Preis- und Zeitbedarf.


0

Ich glaube, die IT muss mit den Entwicklern kommunizieren, welche Art von Dokumentation benötigt wird. Der beste Weg, dies zu tun, ist, wenn die Entwicklung Vorabversionen (oder Iterationsversionen) einer Lösung liefert, mit der die IT spielen und testen kann, damit die IT mit den erforderlichen Antworten reagieren kann.


0

Das Erstellen angemessener Versionshinweise mit einer Anwendung wäre ein guter Anfang. Wenn sich mit der Version Änderungen am aktuellen Verhalten ergeben, Hinweise aus der Qualitätssicherung zu Änderungen an Abhängigkeiten oder Start / Stopp-Verhalten, Änderungen der Auslastung abhängiger Server oder Datenbanken usw.


0

@Spoike (Ich kann die Antworten noch nicht kommentieren ..)

IT-Implementierer (die Rolle variiert je nach Unternehmenstyp und -größe) müssen konsequent arbeiten, um Folgendes zu erreichen:

  • Mindestanforderungen für Installation / Umsatz - Mit anderen Worten, die IT kann nicht passiv sein und von Entwicklern erwarten, dass sie "wissen", welche Informationen zum Zeitpunkt der Installation / des Umsatzes benötigt werden. Ich habe festgestellt, dass es in der IT häufig erhebliche Verwirrung / Uneinigkeit darüber gibt, was eine ordnungsgemäße Dokumentation einer App ausmacht. Dev versteht die Anforderungen (wir hoffen) und die IT muss sich zusammenfinden, um herauszufinden, was - zumindest - erforderlich ist.

  • Ein Installations- / Umsatzverfahren - in Unternehmenseinstellungen können Sie dies als Änderungskontrolle oder Governance bezeichnen. Es handelt sich jedoch im Wesentlichen um einen Standardüberprüfungszyklus, bei dem sich die IT mit Dev PRIOR top install zusammensetzt, um eine Einweisung in das Produkt und seine Anforderungen zu erhalten.

Das Installieren einer App ist nicht anders als das Debüt einer Theaterproduktion. Bevor der Vorhang aufgeht, trifft sich der Regisseur (Hauptentwickler) wiederholt mit dem Bühnenproduktionsteam (IT-Implementierer), um sicherzustellen, dass für den Eröffnungsabend (die öffentliche Installation) alles "nur so" ist.

Sie können die Dev-Persona nicht ändern (warum sollten Sie das wollen?), Aber Sie können auf Ihr gemeinsames Ziel einer fantastischen App verweisen, die für alle Benutzer unglaublich schnell läuft. Ihre konsensfähigen IT-Dokumentanforderungen sind nur eines der Dinge, die erforderlich sind, um dies sicherzustellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.