Passer au contenu principal
RNCP36024

Ingénieur en développement de logiciels

Page France Compétence
Description Gérer un projet international · Identifier les parties prenantes afin d'établir une communication et un rapport de confiance immédiat · Identifier la Core Team (équipe projet minimale) afin d'être à même de débuter le travail au plus vite · Rédiger le plan de management de projet afin de pouvoir le partager avec le client et partir sur des bases communes · Estimer les durées des différentes tâches afin de réaliser un planning de projet · Estimer les coûts de chaque tâche afin de définir le coût prévisionnel estimé du projet · Définir les indicateurs suivis afin de partager le tableau de bord projet · Identifier les risques projet afin de sécuriser ce dernier · Rédiger les fiches de risques afin de déterminer les solutions palliatives en cas de problème survenu · Organiser une réunion de lancement afin de partager la vision du projet · Conduire, indifféremment en français ou en anglais, avec assurance et professionnalisme la réunion de lancement, afin de rassurer le client · Comprendre et s’exprimer en anglais sans problème, et ce, dans un contexte professionnel afin de pouvoir diriger une équipe projet internationale · Accepter et exécuter les directives de sa direction afin de garantir la stratégie de son entreprise · S’adapter lors d’interactions avec des personnes de cultures différentes afin d'accroitre sa créativité · Gérer les conflits au sein de l'équipe afin d'affiner son organisation et de gagner en productivité · Renforcer la cohésion d'équipe afin de gagner en productivité · Gérer les relations humaines afin de maintenir une efficience au sein du projet · Animer les revues de projet, indifféremment en français ou en anglais, internes et avec le client afin de traiter les points de blocage et de donner des informations d'avancement · Suivre les dépenses budgétaires afin de rester dans l'enveloppe budgétaire définie initialement · Communiquer de manière aisée à l’écrit comme à l’oral, en français comme en anglais, afin de transmettre des informations sur le projet · Suivre et analyser les dérives du projet afin de réduire les écarts à échéance · Gérer avec calme les événements inattendus afin de satisfaire et rassurer le client · Négocier avec professionnalisme afin de construire une relation client gagnant/gagnant · Gérer la sous-traitance afin de s'assurer de ne pas avoir de non-conformités ou de dérives à terminaison · Gérer son équipe projet afin de s'assurer de ne pas avoir de non-conformités ou de dérives aux termes du projet · Mesurer la satisfaction des parties prenantes afin de déterminer les axes d'amélioration · Analyser le déroulement du projet afin de déterminer les erreurs qui ont eu lieu durant le projet · Rédiger un rapport de clôture afin de partager l'expérience du projet avec l'ensemble des parties prenantes Recueillir et analyser les exigences du client · Identifier les problèmes ou manques à l’origine du besoin afin de mieux comprendre ce dernier · Identifier les différents types d'utilisateurs afin de prendre en compte les spécificités · Extraire d'un cahier des charges les exigences du client afin de pouvoir les tracer de manière unitaire et être sûr de ne pas en oublier · Identifier les enjeux afin de mieux cerner la problématique du client · Identifier les exigences connexes afin de répondre au besoin du client · Identifier, gérer et suivre les contraintes qualité afin de respecter les impératifs qualité · Identifier, gérer et suivre les contraintes juridiques et légales afin de respecter les impératifs juridiques et légaux · Reformuler la demande afin de s'assurer de la bonne compréhension du besoin · Rédiger les documents formalisant les exigences afin de tracer l'ensemble des exigences sans en omettre · Rédiger les spécifications fonctionnelles du besoin afin de transcrire les exigences du client au sein du projet · Rédiger les spécifications techniques du besoin, c'est à dire les méthodes, procédés, et technologies sélectionnées pour faire face aux contraintes de réalisation du projet · Effectuer des tests exploratoires afin de valider les solutions techniques envisagées · Choisir les technologies appropriées afin de réaliser l'ensemble des exigences client au mieux et au moindre coût · Exposer la solution aux parties prenantes afin de partager les solutions techniques envisagées · Identifier les fonctions représentatives des solutions techniques retenues afin de les mettre en application sur une maquette · Formaliser les cas d’utilisation de chaque fonction retenue pour la maquette afin de définir une manière de l'utiliser pour chacune d'elles · Réaliser des maquettes afin de vérifier et prouver le bon fonctionnement de la solution technique retenue · Rédiger un cahier de recette afin de permettre la validation de chaque fonction de la maquette · Conduire une recette afin de prouver au client le bon fonctionnement des solutions techniques retenues Concevoir l'architecture, développer et industrialiser la solution technique · Concevoir, de manière autonome, une architecture générale répondant aux spécifications techniques et fonctionnelles, afin de répondre à l'ensemble des exigences du client · Définir une architecture détaillée afin de définir le détail des fonctionnalités en créant des lots, ou des sous-ensembles du logiciel qui regrouperont des fonctionnalités apparentées ou liées · Réaliser des diagrammes d’architecture, notamment à l’aide du langage UML afin de représenter la solution finale · Rédiger les documents formalisant l’architecture afin de produire la documentation du projet · Définir les impacts des changements afin de préparer la conduite du changement indispensable · Communiquer les décisions d’architecture afin de partager les choix architecturaux avec le client · Concevoir un processus de livraison continue afin de l’intégrer au processus de développement · Adapter l’architecture d’une application en micro-services afin de réduire la complexité globale du système · Mettre en œuvre les bonnes pratiques de développement afin de rendre lisible et maintenable son code · Mettre en œuvre les techniques de sécurisation du code afin de rendre plus sûrs les développements, notamment avec la méthodologie OWASP et la technique du fuzzing · Gérer la configuration de l'application afin de garder trace de toutes les différentes versions réalisées · Utiliser des Framework et des bibliothèques afin de développer le logiciel · Réaliser des revues de code afin d'améliorer la qualité du code · Intégrer l’ensemble des éléments développés séparément afin de vérifier qu’ils communiquent correctement et qu’ils fonctionnent ensemble · Rédiger la documentation technique afin de produire la documentation du projet · Développer des tests unitaires, des tests d’intégration et des tests d’acceptations automatiques afin de simplifier et de sécuriser la future qualification et éviter les régressions · Mettre en œuvre l’intégration continue afin de vérifier que le résultat des modifications du code ne produit pas de régression · Industrialiser le déploiement de la solution afin de simplifier l'opération pour le client, notamment à l'aide de patch management, d'infrastructure as à code ou encore de pipeline de déploiement Maintenir et gérer le cycle de vie du logiciel · Mettre en œuvre des outils de suivi des faits techniques et des demandes d'évolution afin de suivre les futurs codes à réaliser · Corriger des faits techniques afin d'améliorer la qualité du logiciel · Proposer des solutions de contournement face à des faits techniques, afin de permettre au client d'utiliser le logiciel lorsqu'une correction n'est pas possible ou pas réalisable rapidement · Maintenir une base de connaissances afin de partager les informations avec l'ensemble des parties prenantes · Communiquer les modifications afin d'avertir le client de l'évolution et l'amélioration du logiciel · Déterminer les indicateurs de qualité afin de prouver au client la démarche d'amélioration continue mise en place · Analyser les indicateurs de qualité afin de palier certaines dérives · Améliorer la qualité du logiciel afin de garantir la satisfaction du client et de créer de nouvelles opportunités d'affaire avec ce dernier · Mettre en œuvre des méthodes de suivi afin de garantir la traçabilité de toutes les actions réalisées · Concevoir un système de veille technologique permettant la collecte, la classification, l’analyse et la diffusion de l’information aux différents acteurs de l’organisation afin d’améliorer la prise de décisions techniques · Identifier les axes d’amélioration de la productivité afin d’optimiser le cycle de production d’une application à l’aide de la cartographie des chaînes de valeur · Évaluer les performances d’une application en récoltant les données et mesures liées à son utilisation à différentes étapes de son cycle de vie en vue de son amélioration · Adopter une démarche d’amélioration continue en identifiant les axes de perfectionnement d’un produit à l’aide d’une méthode adaptée de manière à améliorer la performance du produit · Mettre en œuvre des outils permettant l’automatisation de la livraison afin de simplifier le déploiement de la solution · Exécuter la livraison de l’application afin de rendre opérationnelle pour le client la solution développée · Coordonner les parties prenantes afin d'éviter tout malentendu et toute anicroche lors du déploiement · Rédiger la documentation à destination des opérationnels afin de faciliter l'utilisation du logiciel et leur adhésion à celui-ci · Comprendre les causes des résistances afin de pouvoir mieux les contourner · Identifier les porteurs du changement afin de créer un réseau de relais pour porter le changement localement · Communiquer les changements afin d'avertir tous les utilisateurs de l'arrivée prochaine du logiciel et des apports de celui-ci. · Préparer des supports de formations afin de pouvoir les remettre aux apprenants lors des sessions de formation au logiciel · Organiser et animer des formations afin de faciliter la prise en main du logiciel
Objectif

Depuis 20 ans, le nombre d’ingénieurs logiciel est en relation directe avec la pénétration croissante du logiciel dans tous les domaines d’activités. Il est en permanente augmentation dans les nouvelles technologies aux dépens des métiers plus traditionnels, même si ceux-ci perdurent, notamment dans les industries où les systèmes mis en place ont une grande durée de vie, comme dans la défense. Aujourd'hui, nous assistons à une accélération croissante de la transformation numérique qui affecte toutes les sphères de la vie, y compris les affaires, la santé, la fabrication…, avec, depuis début 2020, la crise du COVID qui accentue encore ce phénomène. Les applications mobiles, les boutiques en ligne et les réseaux sociaux sont devenus des outils irremplaçables pour acheter, vendre et promouvoir des biens / services. Dans ce cadre d’explosion des besoins du marché et l’obligation de trouver des ingénieurs en développement de logiciels, les nouvelles technologies, répondant aux besoins des entreprises, ont été introduites dans la formation, permettant ainsi d’être encore plus pointues sur les compétences acquises (IA, DEVOPS, IOT, Mobiles, sécurité des développements, etc.).

Niveau 7 - Savoirs hautement spécialisés
Date de validité 10/11/2024
Domains
  • génie logiciel
NSF
  • Programmation, mise en place de logiciels
GFE
Rome
Nom légal Rôle