In einem der Unternehmen, in denen ich gearbeitet habe, hatten wir diesen gesamten prozessorientierten Ansatz mit vielen Dokumenten (von denen die meisten vom Projektmanager ausgefüllt werden mussten). Trotz der Länge und der Erklärungen wurde mir klar, dass es kaum Menschen half - den echten Entwicklern.
Also habe ich mich entschlossen, mich mit dem spezifischen Ziel, "den Entwicklern zu helfen", zurückzuziehen. Das Wichtigste, was ich angefangen habe, ist, die grundlegendsten Fragen zu sammeln - die echten FAQs.
Was ich gelernt habe, ist, dass es für die meisten Menschen wichtig ist, bestimmte Prozesse zu übernehmen, wenn sie bestimmte Prozesse übernehmen möchten, und viele Dinge, die sie möglicherweise nicht vorher wissen, die sie aber sofort schätzen würden, wenn sie die Logik verstehen.
Hier sind die wichtigsten Themen, denen eine solche Dokumentation helfen sollte:
Der Prozess der Entwicklung bis zur Bereitstellung - Wie sollte der Code organisiert, kompiliert und veröffentlicht werden (in Form von DLLs, Bibliotheken, ausführbaren Dateien, Installationsprogrammen, Webseiten und wie werden sie bereitgestellt und getestet)?
Wie sollen wir die Versionskontrolle durchführen? (und warum, wenn es Neulinge gibt). Verstehen Sie, wie die Struktur des Repositorys, der Verhaltenskodex - wann ein Check-in akzeptabel ist und wann nicht, wann eine Version / ein Tag angekündigt wird, wie der Patch, die Zusammenführungen angewendet werden und welche Sauberkeitserwartungen bei einem Patch oder Release wird für erledigt erklärt
Ausführen der Methodik - Sind wir agil, entwerfen wir im Voraus, welche Methodik verwenden wir? Angesichts dessen könnte es sich um eine feste Lösung für ein bestimmtes Unternehmen handeln. Jetzt möchten die meisten Menschen wissen, wie wir es für das jeweilige Projekt implementieren werden . Dies ist sehr spezifisch für das Projekt, das es den Menschen ermöglicht, verschiedene Meilensteine und das, was möglicherweise wichtig ist, zu visualisieren. In einem forschungsorientierten Projekt möchten wir in einer Schrumpffolie angeben, dass "kritische Algorithmen immer validiert werden, bevor darauf aufgebaut wird". Ich würde mich auf die Richtigkeit und Wichtigkeit von Merkmalen konzentrieren.
Kommunikationsverantwortung - Festlegen, wie Sie formelle Kommunikation herstellen - dies geschieht nicht damit, ob bestimmte Personen miteinander sprechen können -, sondern die Personen müssen ein Gespür dafür haben, was wichtig genug ist (Probleme, Entwurfsentscheidungen, Einfrieren von Funktionen), um entweder angekündigt zu werden oder sogar diskutiert, bevor mit der Implementierung fortgefahren wird.
Schließlich müssen wir alle ein gemeinsames Verständnis der Codequalität, des Codierungsstandards und allgemein dessen haben, was wir für in Ordnung halten oder unter dem Hygienestandard liegen.
Ich wünschte, ich würde jedes Projekt mit solchen Dokumenten beginnen - aber es ist nicht ganz einfach. Wichtig ist jedoch, alle Probleme zu lösen, die sich auf das tägliche Verhalten und die Auswahl der Entwickler beziehen. Dies ist ein langer Weg, wenn mehrere Releases auf den Markt gebracht werden müssen.
Schließlich würde ich auch vorschlagen, dass Sie versuchen, so informell wie möglich zu sein. Normalerweise mögen die prozessorientierten Leute informelle Dokumente nicht so sehr, die außerhalb des Kontexts möglicherweise missverstanden werden können. Dies sollte jedoch so erfolgen, dass die Entwickler miteinander verbunden werden.