D'après Mark Richards et Neal Ford
Comme le montre le diagramme, l’architecte est responsable de la mise en œuvre du projet. L’analyse des besoins de l’entreprise, extraire et de définir les caractéristiques architecturales, de sélectionner les modèles et styles d’architecture qui conviendraient et créer les composants du système. Mais avec cette vision l’architecte est déconnecté des équipes de développement et, de ce fait, l’architecture fournit rarement ce pour quoi elle a été conçue à l’origine.
Collaboration Architectes et Développeurs
Le barrière virtuelle doit être supprimée et l’équipe doit être composée à la fois de l’architecte et des développeurs. Ce modèle facilite une communication bidirectionnelle forte entre l’architecture et le développement, il permet également à l’architecte d’assurer le mentorat et le coaching des développeurs de l’équipe.
Une collaboration étroite entre l’architecte et l’équipe de développement est essentielle à la réussite de tout projet logiciel. Mais où s’arrête l’architecture et où commence la conception ? Nulle part. Elles font toutes deux partie du cycle de vie d’un projet logiciel et doivent toujours être synchronisées.
On retrouve également ce principe de collaboration dans le livre Java Application Architecture où l’auteur écrit
Dans les organisations dysfonctionnelles, architectes et développeurs ne parviennent pas à communiquer efficacement. Il en résulte un manque de transparence et de compréhension de part et d’autre. Les architectes transmettent leurs expériences aux développeurs qui sont incapables de traduire des concepts de haut niveau en implémentations concrètes.
Les architectes doivent donc transmettre le savoir et leur compréhension. Il y a donc un aspect social dans l’architecture logicielle.