NDC London 2013 – D2 – Juval lowy – the zen of architecture

Le pitch:

Pour l’architecte débutant il y a plein d’options
Pour le senior il ne reste plus que quelques options

L’architecture est l’art de décomposer un grand problème en beaucoup de petits. Pour cela on parle en général de décomposition fonctionnelle, pas technique. La décomposition peut être fonctionnelle mais aussi temporelle (workfkows, séquences).

Mais si on y regarde de plus près est ce que c’est vraiment une bonne solution? Prenons une maison, est qu’on peut vraiment découper la construction d’une maison en fonction de l’usage qu’on voudrait des pièces? Puisqu’on l’a fait comme ça on devrait pouvoir rajouter une chambre à une maison simplement en copiant la définition d’une chambre existante, non?

Une bonne manière de découper un système ne doit pas être base sur les fonctionnalités mais sur la volatilité. Ceci n’est pas spécifique au soft mais fait partie des règles générales de bon design.

On doit donc identifier les zones de changement et les isoler dans des services. L’idee est de minimiser l’impact produit par le changement.

Le problème est que la volatilité n’est pas aussi simple à voir et prévoir que le fonctionnel, que cela prend plus de temps et surtout qu’il doit y avoir une bonne implication du business car ce sont eux qui sont capables de définir les zones de changement du business et donc du système. Puis il y a aussi dans ces phases de conception l’effet Dunning-krugger. . On minimise toujours les impacts du changement.

Les axes de volatilité.
Un système change soit avec le temps, soit avec l’usage qui en est fait, mais dans tous les cas il ne faut jamais designer un système à partir des besoins parce que par définition votre architecture devra changer en fonction de l’evolution des besoins, ce qui sera le cas par définition…

Ces deux axes doivent être indépendants.

Si on reprend l’exemple de la maison et qu’on se concentre sur la volatilité: les meubles peuvent changer, les occupants, l’apparence, les outils…si je déplace la maison les changement seront la situation géographique, les voisins.

Donc si on y regarde bien la pièce pour faire à manger qui nous apparaissait comme un bloc fonctionnel important n’en est pas un. Le vrai besoin est de prendre soin des occupants, et donc de pouvoir les nourrir, pouvoir faire la cuisine à la maison n’est finalement qu’une solution (on peut très bien commander une pizza ou sortir manger au Resto, le besoin initial sera quand même comblé).

Avant de commencer le design d’un système il faut donc essayer de définir une liste des zones de volatilité avant de rentrer plus dans les détails. Puis lors de la mise en place toujours avoir les abstractions nécessaires.

20131205-184243.jpg

20131205-184558.jpg

Pour conclure:

20131205-185945.jpg

20131205-190026.jpg

 

 

Notes: Juval est certes une référence mais il le sait et aime le dire…ça c’est pour le coté négatif. Sinon c’est vraiment un bon talk, avec plein d’énergie et de bon sens. Le concept principal de ce talk qui est la volatilité est vraiment un point important auquel j’étais arrivé il y a quelques années mais sous une forme loin d’être aussi claire et aboutie.

Tagged with: , , ,
Posted in Event
2 comments on “NDC London 2013 – D2 – Juval lowy – the zen of architecture
  1. Julien says:

    Bonjour,
    Ne pouvant pas vous laisser un message en direct, pouvez vous réparer votre flux rss?
    Merci d’avance et bonne année 2014!

    • Rui Carvalho says:

      tu peux me tutoyer hein Julien ;-)

      merci, il y avait effectivement un pb de plugin qui se retrouvait dans le flux rss sans les bons namespaces…

      Bonne année!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>