Da ich in der Vergangenheit an vielen Wasserfallprojekten und in letzter Zeit an vielen Ad-hoc- und agilen Projekten gearbeitet habe, gibt es eine Reihe von Design-Artefakten, die ich gerne erstelle, obwohl ich nicht oft genug betonen kann, dass dies wirklich von den Details des Projekts abhängt (Methodik/Teamstruktur/Zeitskala/Werkzeuge usw.).
Für eine allgemeine, serverbasierte "Unternehmensanwendung" würde ich mir ein Minimum in dieser Richtung wünschen:
- Ein detailliertes Dokument zum funktionalen Entwurf (auch Spezifikation genannt). Im Allgemeinen etwas nach dem Muster von Joel s'. WhatsTimeIsIt-Beispielspezifikation Allerdings wahrscheinlich mit einigen UML-Use-Case-Diagrammen.
- Ein Dokument für den technischen Entwurf von Software. Nicht unbedingt detailliert für eine 100%ige Systemabdeckung, aber detailliert in allen Schlüsselbereichen und mit allen Designentscheidungen. Da ich ein kleiner UML-Freak bin, wäre es schön, viele Bilder in Form von Paketdiagrammen, Komponentendiagrammen, Klassendiagrammen für die wichtigsten Funktionen und wahrscheinlich auch einige Sequenzdiagramme zu sehen.
- Ein Dokument zur Planung der Infrastruktur. Wahrscheinlich mit einem UML-Bereitstellungsdiagramm für die konzeptionelle Entwicklung und vielleicht einem Netzwerkdiagramm für etwas Physisches.
Wenn ich von einem Dokument spreche, kann jedes der oben genannten Dokumente in mehrere Dokumente aufgeteilt oder vielleicht in einem Wiki oder einem anderen Tool gespeichert werden.
Was ihre Nützlichkeit angeht, so war es immer meine Philosophie, dass ein Entwicklungsteam in der Lage sein sollte, eine Anwendung an ein Supportteam zu übergeben, ohne seine Telefonnummern weitergeben zu müssen. Wenn aus den Design-Artefakten nicht klar hervorgeht, was die Anwendung tut, wie sie es tut und wo sie es tut, dann wissen Sie, dass das Support-Team der Anwendung die gleiche Sorgfalt und Aufmerksamkeit schenken wird wie einem tollwütigen Hund.
Ich sollte erwähnen, dass ich nicht die Praxis rechtfertige, Software von einem Entwicklerteam an ein Supportteam zu übergeben, sobald sie fertig ist. fertig Ich will damit nur sagen, dass es möglich sein sollte, wenn die Unternehmensleitung dies wünscht.