vendredi 16 décembre 2011

Quel est le rôle de l'architecte logiciel ?

Michael Stiefel donne dans sa présentation "Architects? We Don't Need No Stinkin’ Architects!"  une définition du rôle de l’architecte logiciel que je trouve très intéressante et pas uniquement parce qu'il l'associe à la prise en compte de l'expérience utilisateur ;)

  
La présentation est en elle-même excellente (la définition de l’abstraction en se basant sur la peinture moderne par exemple) mais je vais surtout revenir sur les points qui m’ont marqué :
  • L’architecte n’est pas obligatoirement le meilleur développeur car son rôle dans une équipe n’est pas le même.
  • Le rôle de l’architecte est de transformer la vision de l’expérience utilisateur en une abstraction correcte : l’architecture du logiciel. L’expérience utilisateur dépasse le domaine de l’UI et doit couvrir l’ensemble du logiciel.
  • Il insiste sur le fait que prendre en compte la facilité d’utilisation permet de pousser l’unité du design et son intégrité conceptuel ou, dans l’autre sens, une intégrité conceptuelle portée par l’architecte permet une unité du design et est vecteur de facilité d’utilisation. C'est d'ailleurs un des meilleurs points d'une vision UX dans le cadre du développement.
  • L’architecte doit avoir une vision holistique du projet et tenir compte de l’ensemble des besoins: performance, scalabilité, coût, sécurité, robustesse, facilité de déploiement, workflow...
  • L’architecte est l’intermédiaire entre les personnes du métier et les « technologistes ».
  • L’architecte doit aider le métier à comprendre les implications techniques d’une story et, pour cela, il doit s’aider du contexte. Le contexte permet de se trouver les bonnes réponses en fonction du projet et de l’organisation.
  • Il met en avant que le point fort de l’architecte est de poser les bonnes questions et non pas d’avoir les bonnes solutions ce qui est le point fort des meilleurs développeurs.
 
Que pensez vous de cette vision du rôle de l'architecte ?