Compétences attestées :
Analyser, identifier et formaliser la demande et les données recueillies auprès du client, en mobilisant les méthodes d'entretien d'explicitation, en analysant le contexte, les contraintes et les attentes en termes de spécifications techniques et fonctionnelles afin d'expliquer les objectifs et les enjeux du projet et de faire éclore des pistes de solution Réaliser l’état des lieux des applications existantes au sein du système d’information afin de déterminer leur état de fonctionnalité. Analyser le système d’information existant en identifiant les contraintes physiques, techniques, budgétaires et réglementaires associées à la mise en œuvre de la solution pour définir l’architecture globale et éventuellement les spécifications techniques Superviser la rédaction ou rédiger les spécifications techniques et fonctionnelles afin de définir le cadre du projet de développement (contraintes, critères, solutions, coûts), de proposer une solution applicative adaptée aux besoins, et de préparer la contractualisation Élaborer et justifier l’opportunité et la faisabilité d’une conception ou d’un projet en développant une méthodologie adaptée (ex: PoC (Proof of Concept) et en testant la solution grâce à la mobilisation des technologies et des choix techniques adaptés aux spécifications afin de vérifier la validité de la conception technique ou la faisabilité d’un projet Développer un système de veille ou faire la prospective sur l’évolution du marché, plus largement, sur les nouvelles technologies, en identifiant les apports possibles pour l’entreprise et en évaluant les enjeux et implications des différentes architectures afin de garantir l’opérationnalité des outils de l’entreprise Effectuer et valider les choix techniques et technologiques (langages de programmation, frameworks, librairies, etc.) adéquats en fonction de l’architecture et des contraintes projet afin d’optimiser le développement et la performance du produit final (application ou logiciel) Concevoir une architecture logicielle avancée de qualité en utilisant un outil dédié (Miro, LucidChart, etc.), en définissant le schéma de l’architecture, le comportement et les interactions de l'application et prenant en compte les contraintes techniques afin de proposer une solution pérenne, maintenable et conforme aux besoins internes ou externes Structurer la base de données en assurant la conformité avec les spécifications fonctionnelles, techniques et légales (RGPD), en établissant les différentes tables ainsi que leurs relations pour une base relationnelle (SQL) ou une structure adaptée pour une base non relationnelle (NoSQL) Mettre en place une méthodologie de gestion de versionnage de codes adaptée au besoin de l’entreprise, en vue de centraliser et de partager le code, d'en contrôler les versions, et de permettre le travail collaboratif Piloter le développement ou développer le front-end en veillant à la pertinence du langage de programmation ( Javascript, TypeScript, etc.), et à la mobilisation des apports des experts UI/UX (en fonction des contraintes matérielles, de l’agencement de l’affiche et de la charte graphique, etc.), pour construire une interface responsive et adaptée aux besoins des utilisateurs (y compris les utilisateurs en situation de handicap Conduire le développement ou programmer un logiciel back-end de qualité, en fonction des user-stories, en vérifiant la pertinence du langage de programmation (Java/J2EE, C#/.Net, etc.), et la mobilisation des pratiques de maintenabilité et d'optimisation, afin de valider les critères d'acceptance et de se conformer au besoin du client (spécifications fonctionnelles) et aux contraintes techniques (architecture) Conduire ou prendre en charge l'Intégration du back-end et front-end au logiciel de gestion centralisé (cloud / database) en supervisant l’harmonisation de l’ensemble des composants de la solution développée, le dimensionnement du support d'hébergement, le respect du RGPD en vue de produire le prototype de la solution globale Valider les documentations produites (ex : spécifications techniques) avec les différentes parties prenantes notamment les développeurs, les utilisateurs, client(s), équipe d'exploitation, etc., pour préparer le déploiement généralisé Conduire l’élaboration ou concevoir un plan de tests itératifs de surveillance et de reprise d’activité pour identifier et signaler tous les risques de dysfonctionnement du système d'information, sécuriser les données utilisées et assurer la continuité du service Accompagner ou participer à l'automatisation des fonctions de build et de tests de performance dans une chaîne de build et d'intégration continue (Jenkins, CircleCI, Gitlab-CI, Robotframework, Gatling, etc.) ou à l'aide d'outils dédiés (TestComplete, Ranorex, Cucumber, Selenium, quality center, silktest, iMacro, etc.) afin de réduire le temps alloué aux tests et d'assurer la livraison d'une solution (logiciel ou application) de qualité et de performance Superviser ou prendre part à la réalisation du test d'acceptation en contrôlant l'installation de la solution, la création des accès et la mise en œuvre du système de traitement automatisé des alertes et des anomalies afin de vérifier la faisabilité du déploiement et l'adéquation des exigences Planifier le déploiement de la solution et réaliser le reporting en analysant le retour des parties prenantes et les indicateurs de performance pour établir une démarche d’amélioration continue et garantir la satisfaction du client et créer de nouvelles opportunités Organiser le cadre méthodologique du projet, la répartition et la programmation des activités, identifier les différents intervenants, leurs rôles, les ressources nécessaires à la réalisation du projet afin de définir la stratégie à mettre en place pour assurer le bon déroulement et la qualité des livrables Définir le budget en fonction des solutions disponibles sur le marché et de leurs coûts, en tenant compte des frais de fonctionnement et des gains non qualifiables, afin d'évaluer la rentabilité du projet envisagé et de s'assurer de sa faisabilité Réaliser une planification fine du projet en choisissant les outils de pilotage (ex : kanban, etc.), en prenant en compte toutes les contraintes en termes de ressources (matérielles, humaines, …), et en précisant les livrables intermédiaires et de sortie afin de garantir le bon déroulement du projet Assurer le respect des normes de qualité (ITL) et réglementaires (RGPD) dès le début du projet, sur la base des conditions fixées (plan d'assurance qualité) et en veillant effectivement à leur prise en compte dans la production des différents livrables afin de répondre aux exigences de qualité contractuelles Estimer les charges de travail en définissant les points de difficulté selon les développeurs (en tenant compte des personnes handicapées), et les différentes contraintes liées au développement de la solution, afin de superviser la production et d'assurer un suivi régulier Identifier les risques techniques et fonctionnels inhérents au projet afin de justifier l’opportunité et la faisabilité du projet de développement informatique Proposer une solution adaptée et déterminer les objectifs de performance de la solution en fonction du besoin et des contraintes internes et externes Analyser les besoins en compétence, en fonction de la nature du projet et du profil des membres de l’équipe, en mobilisant les techniques d'analyse de performance individuelle et collective afin d'organiser et de s'assurer de l'adéquation des ressources associées au projet Elaborer le plan de formation et organiser les actions de formation (ateliers, coaching, etc.) en prenant en compte la diversité du public (handicap), en vue de permettre la montée en compétences des collaborateurs et s’assurer du bon déroulement des projet Accompagner les membres de l’équipe tout au long du projet en s’appuyant sur les techniques de communication agiles et en veillant sur le respect des conditions fixées afin de répondre aux exigences contractuelles en matière de qualité et favoriser l’atteinte des objectifs de performance