L'évolution des connaissances et des savoir-faire en matière de TIC a eu ces dernières années un fort retentissement sur les modes d'utilisation de l'informatique, la spécificité des besoins et la compétence des professionnels du génie logiciel. Le cœur de métier du développeur-concepteur logiciel est de concevoir, développer ou adapter des solutions logicielles ou des applications spécifiques ajustées aux besoins identifiés ou à l'activité d'utilisateurs variés. Le développement demandé peut concerner un logiciel destiné à fonctionner sur un micro-ordinateur, un serveur, ou en système embarqué, tout comme un outil de gestion, un site Web, un réseau de télécommunication, un micro-processeur. En fonction de cette destination, les choix de langage sont différents, les contraintes technologiques, économiques et humaines sont plus ou moins importantes. Selon l'activité et/ou la taille de son entreprise d'appartenance, la dimension et/ou la nature du projet, son niveau technique, sa préférence pour une méthode et des pratiques de développement (en cascade - méthode classique -, itératif, Agile), le développeur-concepteur participe aux activités clés du cycle de vie d'un logiciel qui sont : l'analyse fonctionnelle, l'architecture, la programmation, les tests, la validation, la maintenance corrective et évolutive et la gestion de projet. Le développeur-concepteur logiciel : · participe au recueil et à l'analyse des besoins aboutissant à un cahier des charges, puis participe à la rédaction de spécifications fonctionnelles détaillées ; · construit une architecture logicielle robuste, prête à subir les futures évolutions de l'application, en définissant les composants logiciels à développer ou à prendre « sur l'étagère » (progiciels) ; · développe (programme) les composants logiciels spécifiques en respectant les bonnes pratiques de conception et de codage ; paramètre et/ou adapte les composants déjà développés ; · réalise et déploie des jeux de tests unitaires et d'intégration ; · intègre les composants logiciels, puis valide la solution logicielle ainsi obtenue par rapport aux spécifications initiales ; participe à la rédaction des guides et notices et à la formation des utilisateurs ; · effectue les maintenances correctives et évolutives, après livraison du produit ; · participe à (ou anime) des réunions de projet suivant une méthodologie adaptée aux exigences du client (cycle en V, itérative, agile, Kanban,…) et à la démarche de qualité ; · effectue une veille permanente pour faire face aux évolutions techniques.