Ingénieur développement logiciel - Apec.fr - Cadres

Vous êtes actuellement sur le site Cadres. Changer de site ?

Informatique

commentaire (0) | lu 10702 fois | publié le 21/09/2017

Ingénieur développement logiciel

L’ingénieur développement conçoit, développe et fait évoluer les applications informatiques destinées au système d’information de l’entreprise.

Autres intitulés

  • Ingénieur études et développement
  • Ingénieur d’études informatiques
  • Ingénieur temps réel
  • Développeur informatique embarquée
  • Concepteur/Développeur
  • Ingénieur test et recette
  • Analyste programmeur
  • Ingénieur informatique
  • Architecte logiciel

 

Activités principales

Traduction technique des besoins fonctionnels

  • Participer à l’analyse fonctionnelle détaillée des besoins utilisateurs.
  • Etudier les opportunités et la faisabilité technologique de l’application.
  • Elaborer et rédiger le cahier des charges techniques, à partir des spécifications fonctionnelles.

 

Conception et développement

  • Concevoir une architecture logicielle avec les architectes, et proposer le framework du projet, constitué de motifs de conception et de librairies.
  • Analyser et développer les composants en utilisant les langages appropriés (c++, c, java, c#...).
  • Assurer le développement et la réalisation des applications (prototypes et modules).
  • Adapter et paramétrer les progiciels retenus pour l’architecture logicielle.
  • Participer à la structuration des bases de données.
  • Harmoniser et industrialiser l’ensemble des composants et applications.
  • Documenter les applications pour les développements ultérieurs et la mise en production.

 

Tests et recette

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

 

Mise en production et intégration

  • 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.

 

Maintenance évolutive et corrective

La mission de l’ingénieur de développement peut se prolonger après la mise en service des applications. Cette étape porte le nom de tierce maintenance corrective et/ou évolutive applicative (TMA).

 

Activités éventuelles

Assurer une veille technologique afin de proposer au client des solutions prenant en compte les innovations en matière de développement et de langages.

Dans le cadre de ses missions, l’ingénieur développement peut être amené également à rédiger les documentations techniques et dispenser des formations aux utilisateurs. Cette étape est une composante clé pour optimiser l’appropriation de l’outil, par les populations cibles.

 

Variabilité des activités

La nature des applications à la charge du développeur peut être un élément de variabilité :

  • Les progiciels développés chez les éditeurs
  • Les applications spécifiques, ayant pour vocation de répondre à un besoin technique ou fonctionnel précis, sur lequel aucune solution générique n’a été retenue
  • Les applications en informatique de gestion et celles en informatique industrielle, plus proches du « langage machine »

 

D’autre part, la nature des projets sur lequel l’ingénieur d’études est amené à intervenir, peut varier selon sa taille et sa durée :

  • Petits projets et/ou cycles courts de développement : impliquant peu d’interlocuteurs et pouvant être gérés de manière autonome par l’ingénieur développement, lui permettant d’avoir une vision globale d’un cycle de production : analyse du besoin, conception et développement, tests et livraison de l’application. La méthode agile notamment est un exemple de méthodologie permettant à l’ingénieur développement de prendre en charge un projet de l’analyse des besoins des utilisateurs à la recette fonctionnelle.

 

Sur certains projets, l’ingénieur développement prend en charge la conception de l’architecture des applicatifs (architecture logicielle).

  • Grands projets avec cycles de développement longs (notamment les grands projets industriels de type aéronautique, défense ou bancaire.) : plus significatifs et impliquant un nombre important d’interlocuteurs (architectes, consultants fonctionnels, chefs de projet…), ils nécessitent une définition plus précise du périmètre d’intervention de chacun des acteurs. Dans ce cadre, l’ingénieur développement peut même être centré et spécialisé sur des éléments du projet bien précis : tests, débugage, développement de modules spécifiques…

 

Enfin, en SSII, l’ingénieur développement est en contact direct avec le client. De sa capacité à s’imposer non seulement techniquement mais également au niveau relationnel dépend la satisfaction du client et donc la pérennité de sa mission. Il peut travailler :

En régie, c'est-à-dire, en fonction de sa présence au sein des équipes du client : il exerce alors un rôle très opérationnel de développement sur des tâches précises et encadrées. S’il dépend hiérarchiquement du directeur d’agence ou du consultant manager de sa SSII, il relève fonctionnellement du chef de projet de la société cliente.

Au forfait : dans ce cas, l’ingénieur développement est davantage soumis aux problématiques de délais, la rentabilité de sa prestation dépendant de sa vitesse de réalisation.

Quelques développeurs travaillent en indépendant, ce qui leur impose une activité commerciale et de gestion en plus de leurs missions.

 

Rémunération

Jeune diplômé : entre 25 et 35 k€

Jeune cadre : entre 35 et 45 k€ (et plus)

 

Compétences requises

Compétences techniques

  • Maîtrise des méthodes et outils de développement (UML, Merise, Rational Rose, méthodes agiles, méthodologies objet…)
  • Environnement de développement (ex : technologie objet, NETPlateforme de développement : J2EE...)
  • Connaissance des applications web (ex : JavaScript, Flash, dreamweaver, Visual Basic, PHP, Flash et autres logiciels associés...)
  • Connaissance des framework
  • Connaissance de plusieurs langages de programmation (C,C#, javascript, C++, COBOL, Visual C++, Assembleur…), ainsi que de certains systèmes d’exploitation (Windows, Unix, Linux…) ou d’OS (operating system) temps réel (QNX, eCos, VxWorks...)
  • Bonne connaissance des normes et procédures de sécurité
  • Compréhension de l’environnement et du fonctionnement de l’entreprise
  • Une bonne maîtrise de l’anglais technique peut être suffisante mais un bon niveau en anglais est un atout majeur pour comprendre les documentations techniques et/ou se voir confier des missions en environnement international

 

Aptitudes professionnelles

  • Forte motivation pour l’informatique et pour l’apprentissage de nouveaux langages et systèmes
  • Souplesse pour répondre aux demandes des clients tout en respectant les normes de développement
  • Rapidité d'exécution pour rendre les livrables dans les délais impartis
  • Facilité à s'adapter à de nouveaux langages et de nouvelles méthodes de développement
  • Polyvalence, créativité pour identifier les solutions techniques appropriées
  • Bonnes qualités relationnelles (écoute et expression) permettant de communiquer efficacement avec les utilisateurs
  • Ouverture d’esprit, compte tenu de la variété des problématiques clients et technologiques
  • Capacité à travailler en équipe
  • Autonomie : l’ingénieur développement est souvent amené à exercer son activité en dehors de son entreprise, il lui faut donc faire preuve d’autonomie une fois placé chez un client car il ne dispose pas toujours d’un support
  • Adaptabilité en particulier chez les ingénieurs de développement en SSII car les missions sont de durées variables et l’ingénieur peut être affecté chez des clients différents dans un laps de temps limité
  • Forte motivation afin de pouvoir s’impliquer dans des projets souvent lourds et longs

 

Le profil

Diplômes requis

  • Formation de niveau bac +2 / 3 (BTS informatique, DUT informatique ou télécommunications, licence professionnelle spécialisée en informatique …)
  • Formations professionnelles délivrées par l’AFPA ou le CNAM
  • Formation de niveau bac +4/5 (Master) spécialisée en informatique, réseaux et télécommunications
  • Écoles d’ingénieurs (informatique, télécoms, généralistes…)
  • Une certification professionnelle à certains outils (notamment Microsoft) peut être exigée.

 

Durée d’expérience

Ce poste s’adresse le plus souvent à des profils débutants ou de jeunes cadres, surtout en informatique de gestion. Il constitue un passage fréquent pour les jeunes diplômés informaticiens.

Il est souvent demandé un stage significatif et/ou deux à trois ans d’expérience professionnelle, en fonction des contraintes technologiques associées au projet.

Certains cadres confirmés peuvent être des experts d’une technologie de développement.

 

Postes précédents (P-1)

La fonction d’ingénieur de développement logiciel est une porte d’entrée pour les débutants, leur offrant un moyen de compléter leur formation.

Il est fréquent que les ingénieurs en développement aient réalisé un stage au préalable.

 

Qui recrute ?

  • SSII, majoritairement, dans le cadre de projets au « forfait » (solution clé en main), ou lors d’une prestation en « régie » (rémunération en dépense contrôlée)
  • Editeurs de logiciels
  • La plupart des entreprises utilisatrices ayant une entité R&D ou une DSI de taille significative

 

Rattachement hiérarchique

 

Environnement de travail et interlocuteurs

 

Evolution professionnelle (P+1)

 

Contexte et facteurs d’évolution du métier

Le métier d’ingénieur développement informatique tend à se rapprocher de celui de concepteur développeur web dans la mesure où les technologies web sont utilisées désormais dans la plupart des applications informatiques.

Simultanément, le métier tend à devenir techniquement plus complexe avec la multiplication des outils de développement, et les problématiques d’architecture technique. Cela amène les entreprises à rechercher des développeurs de plus en plus qualifiés, capables d’apprendre et de maîtriser très vite de nouveaux langages, et susceptibles de réaliser la conception de l’architecture logicielle ainsi que l’analyse fonctionnelle des besoins utilisateurs notamment s’ils travaillent sur des projets de type « agile ».