Eine Kultur des architektonischen Designs

Das API Services-Team des USA Today Network legt Wert auf gut konzipierte Softwaredienste mit guter Architektur. Wer nicht Interessanter ist, dass wir dieses Ziel erreichen wollen, indem alle am Design beteiligt sind.

Traditionell lassen viele Organisationen das Architekturdesign in die Hände von wenigen sehr erfahrenen Entwicklern, die in die Rolle des Architekten befördert wurden. Die Förderung von „Design als Kultur“, bei der alle an der architektonischen Gestaltung beteiligt sind, hat einige wesentliche Vorteile:

  • Das Team hat ein besseres Gesamtverständnis für das Design und ist an den Projektzielen ausgerichtet. Dies führt wiederum zu einer besseren und schnelleren Entwicklung durch ein besseres Verständnis dessen, was zu tun ist, und eine reibungslosere Kommunikation.
  • Jeder, der am Design beteiligt ist, hat Haut im Spiel. Diese Eigenverantwortung für das Projekt erhöht die Arbeitszufriedenheit.
  • Architekten haben etwas Zeit, um an der Entwicklung zu arbeiten. Architekten, die nur Architektur betreiben, verlieren ihre Entwicklungsfähigkeiten und ihre Fähigkeiten werden letztendlich verkümmern. Dies führt zu einer insgesamt geringeren Effizienz.
  • Ich finde es befriedigender, an der Konzeption und Umsetzung eines Projekts beteiligt zu sein, als nur an einem Aspekt zu arbeiten, und ich denke, das trifft für die meisten Leute allgemein zu.
  • Gute Ideen können von jedem kommen, wenn alle dazu beitragen, dass die Qualität und Kreativität Ihrer Lösungen steigt.
  • Das Team wächst mit seinen Fähigkeiten und seinem Verständnis und macht es für das nächste Projekt effektiver.

Sobald Sie an Egoismus vorbeigezogen sind, dass nur diejenigen in Architect-Rollen das Design ausführen sollten, besteht der Hauptnachteil darin, dass mehr Koordinierung und Zeit erforderlich sind, um ein Design fertigzustellen.

Die Idee, dass jeder beim Design arbeitet, hat viele Parallelen zu Teams, die Codeüberprüfungen durchführen. In beiden Fällen tauschen Sie etwas Zeit für andere Vorteile ein, die diese Kosten aufwiegen. Der Gewinn ist eine bessere Qualität und ein besseres Verständnis des Projekts durch einen größeren Teil des Teams. Dies führt zu einer allgemeinen Geschwindigkeitsverbesserung, die die Verlangsamung in frühen Stadien mehr als wettmacht.

xkcd: Zeitleiste des Fahrraddesigns

Praktische Designkultur

Das Ideal des Designs als Kultur zu implementieren ist ziemlich einfach. Weisen Sie den verschiedenen Teammitgliedern Designaufgaben zu. Der Haken ist, dass Sie jetzt Ihrem gesamten Team gute Gestaltungsprinzipien beibringen.

In einigen Fällen erfordert ein Design mehr Zusammenarbeit mit anderen, um damit anzufangen. Dies ist Teil des Lernens. Gute Designpraktiken sind ein großes Thema. Hier sind einige Ideen, über die Sie nachdenken müssen, wenn Ihr Team an Design als Kultur arbeitet:

  • Designs müssen von Experten begutachtet werden. Wenn Sie die Ähnlichkeiten mit Codeüberprüfungen fortsetzen, sind die Designs am wertvollsten, wenn Sie sie überprüfen.
  • Beantworten Sie die Fragen zu Warum, Was und Wie. Erste Antwort, warum ein Projekt als etwas betrachtet wird, für das man Zeit verbringen kann. Was wird dann speziell gefragt? Arbeiten Sie zuletzt daran, wie Sie das Projekt erstellen. Der Teil "Wie" ist der Hauptentwurf, aber die Fragen "Warum" und "Was" stimmen die Prioritäten ab und bilden ein gemeinsames Verständnis, Grundlagen für eine Qualitätsarchitektur.
  • Projekte gibt es in verschiedenen Größen und Designs. Manchmal wird das Design für kleine Projekte oder Änderungen an vorhandenen Projekten übersprungen. Dies ist jedoch in der Regel ein Fehler. Die Fragen nach dem Warum, Was und Wie sollten noch beantwortet werden, können jedoch in angemessener Größe ausgeführt werden.
  • Designdokumente sind nicht nur Prosa, sondern sollten meistens Diagramme enthalten und im Allgemeinen leicht überprüfbar sein. Ein allgemeines Format, das vom Team verwendet wird, kann auch die Lesbarkeit verbessern.
  • Design-Dokumente speichern - Sie sind gut für eine Historie der Änderungen und für die Unterstützung neuer Teammitglieder. Aktualisierungen können durch das Erstellen neuer Revisionen vorgenommen werden, sodass der Verlauf bei Bedarf leicht erkennbar ist.