Ich stimme der Antwort von maple_shaft nicht ganz zu, aber der Kommentar enthielt nicht genügend Platz, um mein gesamtes Wort zu sagen! ;-);
Ich stimme zu, dass jeder Entwickler ein Architekt sein kann und sollte, aber das bedeutet nicht, dass jeder Entwickler für die Architektur eines gesamten Produkts oder Systems verantwortlich sein sollte. Außerdem glaube ich nicht, dass Sie jedes Architektenteam mit demselben breiten Pinsel malen können, und wenn es richtig gemacht wird, können Architektenteams einen großen Wert für den gesamten Produktentwicklungsprozess liefern. Das Missverständnis ist, dass die Architekten jeden Aspekt des Systemdesigns bestimmen sollten. Sie sollten sich stattdessen auf das übergeordnete Design konzentrieren und die Implementierungsdetails ihren Entwicklungsteams überlassen. Das heißt jedoch nicht, dass die Entwickler nicht von Anfang an in den Planungs- und Entwurfsprozess einbezogen werden sollten.
Je größer und modularer und letztendlich komplexer ein Produkt ist, desto wahrscheinlicher werden Sie verschiedene Teile des Produkts finden, die von verschiedenen Entwicklungsteams gehandhabt werden. Solche Teams müssen das System als Ganzes nicht verstehen, vorausgesetzt sie haben ein umfassendes Verständnis der Teile des Systems, für die sie verantwortlich sind. Oft werden diese zusätzlichen Teams als Subunternehmer für den spezifischen Zweck der Entwicklung eines Moduls in einem bestimmten Technologiebereich eingesetzt, in dem die Architekten oder andere Teams möglicherweise kein Fachwissen haben. Meine eigenen besonderen Talente liegen in der Entwicklung von APIs, und ich habe sie noch nicht gesehen eine gut faktorisierte API, die vollständig organisch entwickelt wurde, ohne die Benutzerfreundlichkeit zu beeinträchtigen. oder das erforderte nicht, dass sich jemand als die Person hervorhob, die dafür sorgte, dass zwischen verschiedenen Aspekten der API ein gewisses Maß an Einheitlichkeit bestand. Ich kann weiter viele Beispiele und Gründe auflisten, aber ich glaube nicht, dass diese Art von Situationen der Elfenbeinturm BS sind, von dem viele denken, dass sie es sind. Leider gibt es viele Stellen, insbesondere in den Bereichen Verteidigung, Medizin und Finanzen, an denen die Paranoia von Unternehmen zu einer schlecht spezifizierten und noch schlechter verwalteten Produktentwicklung führt, von der ich sicher bin, dass maple_shaft am meisten besorgt war. Dies sind die Dinge, von denen ich glaube, dass sie Architekten einen schlecht verdienten schlechten Ruf geben (im Allgemeinen). Leider gibt es viele Stellen, insbesondere in den Bereichen Verteidigung, Medizin und Finanzen, an denen die Paranoia von Unternehmen zu einer schlecht spezifizierten und noch schlechter verwalteten Produktentwicklung führt, von der ich sicher bin, dass maple_shaft am meisten besorgt war. Dies sind die Dinge, von denen ich glaube, dass sie Architekten einen schlecht verdienten schlechten Ruf geben (im Allgemeinen). Leider gibt es viele Stellen, insbesondere in den Bereichen Verteidigung, Medizin und Finanzen, an denen die Paranoia von Unternehmen zu einer schlecht spezifizierten und noch schlechter verwalteten Produktentwicklung führt, von der ich sicher bin, dass maple_shaft am meisten besorgt war. Dies sind die Dinge, von denen ich glaube, dass sie Architekten einen schlecht verdienten schlechten Ruf geben (im Allgemeinen).
Wo ist also der Mittelweg, nach dem das OP gesucht hat? Die Antwort hat alles mit dem Öffnen von Kommunikationskanälen zu tun. Die Architekten müssen Spezifikationen übergeben, die ihre Entwürfe so detailliert beschreiben, dass die Entwicklungsteams verstehen, wo die Grenzen liegen. Geschichten und Feature-Szenarien im weitesten Sinne, bei denen alles als Black-Box betrachtet wird. Die Architekten müssen dann sicherstellen, dass die Teams Zugriff auf die Zeit des Architekten haben, um etwaige Annahmen zu bestätigen und Fragen zu Spezifikationen zu beantworten, die zu weit gefasst oder unklar erscheinen. Danach geht es wirklich darum sicherzustellen, dass einzelne Teams darauf aufmerksam gemacht werden, woran die anderen Teams arbeiten, und dass sie wissen, mit wem sie in Verbindung mit den anderen Teams stehen müssen, um sicherzustellen, dass jeder Teil des Systems gut mit den anderen Teilen zusammenarbeitet. Diese Teams treffen sich direkt. Sobald das System auf der breitesten Ebene entworfen wurde, sollten die Architekten eigentlich nur die Personen sein, an die sich die Teams wenden, wenn sie eine Überprüfung der Gesundheit benötigen, und um sicherzustellen, dass die "Vision" des Produkts erhalten bleibt. Sie sollten auch alle erforderlichen Integrationsprozesse berücksichtigen und den Entwicklungsteams von Managern, Kunden und anderen Beteiligten die dringend benötigte "Luftabdeckung" bieten und gleichzeitig sicherstellen, dass diese verschiedenen Personen zusammenkommen können, um zwischen ihnen zu trainieren ihnen, wie die Dinge funktionieren sollen.
IMHO-Architekten sollten in erster Linie Moderatoren und Kommunikatoren sein, und Designer in zweiter Linie. Auf welcher Spezifikationsstufe? Ich denke, dass die besten Architekten diejenigen sind, die ihre Teams nach dem Detaillierungsgrad fragen, den ein Team wünscht, und zwischen ihnen ein Gleichgewicht finden, das funktioniert. Unterschiedliche Teams haben möglicherweise unterschiedliche Anforderungen hinsichtlich des Umfangs der erforderlichen Dokumentation oder Anleitung. Ältere Teams finden möglicherweise ein grob gezeichnetes Diagramm, und ein kurzer Chat kann ausreichen, um loszulegen, während Teams mit relativ jungen Entwicklern möglicherweise etwas mehr benötigen, um sie zum Laufen zu bringen. Vor allem muss der Architekt die Entwickler ermutigen, ihre eigenen Designtalente einzusetzen, um von jedem Team das beste Endergebnis zu erzielen.