Rôle: Architecte logiciel
Ce rôle a pour mission de développer l'architecture logicielle du système, ce qui comprend la promotion et la création d'un support pour les principales décisions techniques qui influent sur la conception et l'implémentation du projet.
Relations
Effectue:Responsable de:
Effectue également:Modifie:
Description principale

L'architecte logiciel assume la responsabilité de prendre les principales décisions techniques en termes d'architecture logicielle. Ceci comprend habituellement l'identification et la documentation des aspects architecturalement significatifs du système, y compris les exigences, la conception, l'implémentation et les "vues" de déploiement du système.

L'architecte doit également fournir les raisons qui ont conduit à ces décisions, établir un compromis entre les soucis des différents intervenants, limiter les risques techniques et s'assurer que les décisions sont correctement communiquées, validées et acceptées de tous.

Propriétés
Plusieurs occurrences
Facultatif
PlanifiéYes
Affectation du personnel
Compétences

"L'architecte idéal serait un homme de lettres, mathématicien, amateur d'études historiques, étudiant en philosophie, mélomane, attiré par la médecine, au courant de la jurisprudence, passionné d'astronomie et de calculs astrophysiques." - Vitruvius, vers l'an 25 avant Jésus-Christ

En résumé, l'architecte logiciel doit être expérimenté et posséder une maturité, une vision et une expérience qui lui permettent de saisir rapidement les problèmes et de se faire rapidement un jugement éclairé et critique en l'absence d'informations complètes. Plus particulièrement, l'architecte logiciel, ou les membres de l'équipe d'architecture, doivent réunir les compétences suivantes :

  • Expérience, aussi bien dans le domaine concerné, à travers une compréhension profonde des exigences, que dans le domaine de l'ingénierie logicielle. S'il y a une équipe, ces qualités peuvent être réparties sur les membres de l'équipe, mais au moins un architecte logiciel doit avoir une vision globale du projet.
  • Leadership, pour pouvoir répartir le travail technique entre les diverses équipes, prendre des décisions critiques sous pression et assurer la bonne application de ces décisions. Pour être efficace, l'architecte logiciel et le responsable de projet doivent travailler étroitement ensemble, l'architecte logiciel conduisant les affaires techniques et le responsable de projet conduisant les affaires administratives. L'architecte logiciel doit être habilité à prendre des décisions techniques.
  • Communication, pour gagner la confiance, persuader, motiver et être le mentor. L'architecte logiciel ne peut pas diriger par décret, mais seulement par le consentement du reste de l'équipe. Pour pouvoir être efficace, l'architecte logiciel doit gagner le respect de l'équipe de projet, du responsable de projet, du client, de la communauté des utilisateurs et de l'équipe de direction.
  • Concentration sur les objectifs et proactivité, avec un souci permanent du résultat. L'architecte logiciel est la force technique directrice du projet, et non pas un visionnaire ou un rêveur. La carrière d'un bon architecte logiciel est constituée d'une longue série de décisions sous-optimales, prises dans l'incertitude et sous pression. Seuls ceux qui sont capables de se concentrer sur ce qui doit être fait réussiront dans l'environnement du projet.

Du point de vue de l'expertise, l'architecte logiciel doit également couvrir les capacités du Rôle : Concepteur. Mais contrairement au concepteur, l'architecte logiciel :

  • tend à être un généraliste plutôt qu'un spécialiste, avec des connaissances de base sur de nombreuses technologies, plutôt que des connaissances détaillées sur quelques technologies
  • prend des décisions techniques plus larges, et détient de ce fait une connaissance et une expérience plus larges, ainsi que de bonnes aptitudes à la communication et au leadership.
Approches d'affectation

Si le projet est suffisamment important pour justifier une équipe d'architecture, l'objectif sera de constituer un savant mélange de talents, couvrant un large spectre d'expériences et partageant une compréhension commune du processus d'ingénierie logicielle. L'équipe d'architecture ne doit pas être un comité ou constituée de représentants de diverses équipes, divers domaines ou sous-traitants. L'architecture logicielle est une fonction à plein temps, avec un personnel qui lui est dédié en permanence.

Pour les petits projets, une seule personne peut remplir les fonctions d'architecte logiciel et de responsable de projet. Mais si possible, il serait préférable de voir ces deux rôles remplis par deux personnes distinctes, pour garantir que la pression exercée sur un rôle ne conduise pas à négliger l'autre rôle.

Plus d'informations