L'ingénierie à visage humain

Les métiers : Maîtrise d’oeuvre

MOE

Le MOE (maître d’œuvre ou l’organisation qui assure la maîtrise d’œuvre) est chargé de la réalisation des solutions.

Il est responsable de la conception, du développement et de la qualité technique de la solution.

En informatique le MOE est le Chef de Projet (CP). Il gère et coordonne les tâches au quotidien de son équipe constituée d’ingénieurs d’études et développement ou d’analystes programmeurs.
Le MOE est en relation directe avec la MOA (Maîtrise d’Ouvrages).

 

Architecte

Bien que ce rôle soit difficile à définir, on peut avancer qu’un architecte se trouve à l’intersection des chefs de projet, des équipes de développement, du client et des architectes des systèmes externes afin de définir la cartographie du système informatique (logiciel et matériel).

Ses connaissances techniques lui permettent de choisir des solutions, de développer des prototypes voire même d’intégrer ponctuellement l’équipe de développement. Il doit assurer la veille technologique, former sur l’architecture, communiquer sur ses choix.

L’architecte logiciel est un expert organisateur en informatique qui est responsable de la création du modèle d’architecture logicielle. Il se distingue de l’architecte informatique qui lui, travaille sur le matériel.

Le rôle d’architecte logiciel peut, dans de petits projets, être gérer par l’analyste, le chef de projet ou le développeur responsable du projet.
Dans les grandes entreprises, il est possible de retrouver un architecte en chef qui est responsable de l’application des normes d’architecture à l’ensemble des projets et de la gestion de la réutilisation des composants logiciels à la grandeur de l’entreprise.

Dans les projets d’envergure, il est possible de retrouver un architecte logiciel et plusieurs sous-architectes, responsables du développement de l’architecture de parties disjointes du logiciel à construire.

 

Ingénieur Etude et Développement

Son rôle :
Concevoir, développer et assurer le suivi des applications destinées au système.

Ses missions :

  • Traduction technique des besoins fonctionnels, participation à l’analyse fonctionnelle des besoins utilisateurs.
  • Étudier les opportunités et la faisabilité technologique de l’application.
  • Élaborer et rédiger le cahier des charges technique, à partir des spécifications fonctionnelles.

Conception et développement d’une une architecture logicielle.

  • Analyser et développer les composants en utilisant les langages appropriés (C++, C, Java…).
  • Assurer le développement et la réalisation des applications (prototypes et modules).
  • Adapter et paramétrer les progiciels retenus pour l’architecture logicielle.
  • Harmoniser et industrialiser l’ensemble des composants et applications.

Tests et recette :

  • Définir les protocoles et les scenarii de test.
  • Tester, identifier et traiter les dysfonctionnements éventuels du logiciel développé.
  • Analyser les résultats et rédiger le rapport de test.
  • Vérifier la conformité des capacités de l’ouvrage avec la demande formulée par le client.

Mise en production et suivi des exigences :

  • Intégrer les sites pilotes chez le client permettant de tester l’ouvrage, dans sa version définitive.
  • Déployer en masse le produit auprès des utilisateurs.
  • Maintenir le logiciel: maintenance évolutive et corrective.

 

Analyste Concepteur

Le rôle de l’analyste (parfois appelé aussi Ingénieur d’étude) est d’étudier les différentes manières de mettre en œuvre un besoin informatique au sein d’un système d’information, sous la responsabilité du chef de projet.

Un besoin informatique peut être :

  • une demande d’un utilisateur du système informatique (SI), généralement dans le but d’améliorer l’ergonomie ou la performance du SI ;
  • la mise en place d’une nouvelle fonctionnalité du SI ;
  • l’intégration de contrainte extérieure au SI (réglementation) ;
  • la correction d’une défaillance du SI.

Rôle de l’analyste :

  • évaluer la faisabilité du besoin ;
  • déterminer les impacts sur le SI ;
  • proposer différentes solutions ;
  • réaliser la solution choisie (ou coordonner sa réalisation par un développeur);
  • veiller à la bonne intégration au SI de l’évolution demandée.

Selon l’étape du projet où intervient l’analyste et la portée de son rôle, l’analyste sera qualifié d’analyste fonctionnel, d’analyste technique ou d’analyste système, chacune de ses fonctions ayant un rôle propre au sein du projet.

Ces différents rôles peuvent être exercés par une seule personne ou par des personnes distinctes, selon le contexte.

 

Analyste Développeur

Sous la direction d’un chef de projet qui consigne les besoins du client dans un cahier des charges (analyse fonctionnelle), le développeur (appelé également Analyste Programmeur ou Analyste développeur) détermine une solution technique et crée un modèle (analyse organique) du futur logiciel. Il écrit ensuite des lignes de code nécessaires à son fonctionnement (programmation), participe aux phases d’essais, réalise la documentation technique, s’occupe du suivi et de la maintenance de son produit.

Le travail d’équipe :
Les projets sont en général une collaboration entre plusieurs développeurs sous la responsabilité du chef de projet, qui traitent chacun une partie du programme.
Le développement peut être aussi en relation avec d’autres collaborateurs tels que les commerciaux, qui définissent en relation avec le client la finalité du produit ou bien les concepteurs graphiques qui en définissent l’aspect et l’ergonomie.

La conception (design) :
À partir d’un cahier des charges (software requirement specifications – SRS ou user requirement specifications), le développeur doit définir les spécifications techniques du programme : structure des données, communication entre les modules…

Les tests :
Il met en place des tests qui servent à détecter les non-conformités, les erreurs (bugs), et la non-régression.

La maintenance :
Il effectue la maintenance, c’est-à-dire la correction des erreurs après la sortie du logiciel (maintenance corrective), ainsi que l’amélioration et l’évolution du produit (maintenance évolutive).

On retrouve ces différents aspects du travail dans plusieurs méthodes de production.

 

Intégrateur

L’ingénieur d’intégration est la personne en charge :

  • D’intégrer le travail de plusieurs équipes de développeurs, et de garantir la gestion en configuration des différents composants.
  • D’intégrer des outils, logiciels, progiciels provenant d’éditeurs dans un système d’information.
  • De livrer à intervalle plus ou moins régulière, le produit aux testeurs de l’équipe qualité. L’ingénieur va assurer l’intégration et le support des solutions applicatives du système.

Son champ d’action :

  • Appuyer la maîtrise d’ouvrage pour :
    l’étude des processus, intégration logiciels
    la conception, debug
    le paramétrage,
    les tests, release
    la documentation,
    les dossiers de mise en production,
    la formation des utilisateurs.
  • Intervenir en soutient de deuxième niveau avec les équipes de développement interne ou externe.
  • Participer à la veille technologique permanente sur l’évolution des solutions fonctionnelles.
  • Contribuer à son déploiement sur sites, qui implique de l’adapter aux spécificités locales, dans le cas d’intégration plus complexe (notamment dans le cas de projets internationaux.

 

Ingénieur test et validation

L’ingénieur test et validation est une personne chargée de tester le logiciel produit par les développeurs, et de livrer à intervalles réguliers un rapport décrivant les erreurs trouvées dans le produit.
Les erreurs sont appelées « bugs », et leur description doit inclure les étapes nécessaires à la reproduction du bug.

Il représente le client ou l’utilisateur final et, à ce titre, il est chargé de vérifier le bon fonctionnement du logiciel. On parle alors de tests de recette.

Des tests dits de non-régression doivent ensuite être faits sur les versions subséquentes du logiciel, une fois que les programmeurs disent avoir réglé le bug, pour vérifier que les modifications ont bel et bien corrigé l’erreur et n’en ont pas introduit de nouvelles.

Il valide que le fonctionnement du logiciel est en phase avec le cahier des charges.