Architecture agile

L’architecture agile signifie comment les architectes d’entreprise / système / logiciel appliquent la pratique architecturale dans le développement logiciel agile. Un certain nombre de commentateurs ont identifié une tension entre l’architecture logicielle traditionnelle et les méthodes agiles le long de l’axe d’adaptation (laissant les décisions architecturales jusqu’au dernier moment possible) par rapport à l’anticipation (planification préalable). (Kruchten, 2010)

Waterman, Nobel et Allan (2015) ont exploré les tensions entre passer trop peu de temps à concevoir une architecture initiale, augmenter les risques et passer trop de temps, ce qui a un impact négatif sur la fourniture de valeur au client. Ils identifient six forces qui peuvent affecter l’architecture agile: l’instabilité des exigences, le risque technique, la valeur initiale, la culture d’équipe, l’agilité et l’expérience du client. Ces forces peuvent être traitées par six stratégies; Répondre aux changements, aborder les risques, l’architecture émergente, la grande conception à l’avant et utiliser les frameworks et les architectures de templates.

Plusieurs tentatives ont été faites pour spécifier ce qui constitue une approche agile de l’architecture. Selon le framework SAFe, les principes de l’architecture agile sont:

Le design émerge. L’architecture est une collaboration. (architecture intentionnelle)
Plus le système est grand, plus la piste est longue (piste architecturale)
Construire l’architecture la plus simple qui puisse fonctionner (principes de conception établis)
En cas de doute, coder ou modéliser (pics, prototype, domaine et modèles de cas d’utilisation)
Ils le construisent, ils le testent (conception pour testabilité)
Il n’y a pas de monopole sur l’innovation (équipes, hackathons) – Le bouton Like de Facebook a été conçu dans le cadre d’un hackathon
Mettre en œuvre le flux architectural (épopées architecturales et portfolio kanban) – le portefeuille Kanban passe par l’entonnoir, la revue, l’analyse, le backlog du portefeuille et la mise en œuvre
Au niveau de l’architecture d’entreprise, Scott Ambler (2016) propose les principes suivants

Collaboration évolutive sur le blueprinting
Communication sur la perfection
Participation active des parties prenantes
Les architectes d’entreprise sont des participants actifs dans les équipes de développement
Activation par rapport à l’inspection (exemples)
Modèles de haut niveau (plus complexe, plus abstrait)
Capturez les détails avec le code de travail
Guidance Lean et règles, pas de procédures bureaucratiques
Avoir une équipe dédiée d’architectes d’entreprise expérimentés