Définitions des notions liées au développement logiciel, au processus de production, aux tests, au déploiement et aux pratiques des équipes IT.
Qu’est-ce que la programmation ?
La programmation est le processus de conception, de création, de test et de maintenance des logiciels. Elle comprend l’écriture de code, mais aussi le choix de l’architecture, des outils, des méthodes de travail et des pratiques qui garantissent la qualité et la sécurité des systèmes.
Périmètre des notions
La programmation réunit des sujets techniques et organisationnels : langages de programmation, API, tests, gestion de versions, automatisation des déploiements, gestion des dépendances et cycle de vie du logiciel. Les approches comme TDD, DDD, Agile, Scrum, DevOps, GitOps ou CI/CD y occupent aussi une place importante.
Importance dans l’IT
Les bonnes pratiques de programmation influencent la stabilité des applications, la rapidité de livraison des changements et les coûts de maintenance des systèmes. Dans les équipes modernes, la programmation est étroitement liée aux tests, au monitoring, à la sécurité, à l’infrastructure et à la collaboration entre métier et technologie.
L’Agile regroupe des principes et pratiques favorisant une gestion de projet flexible, le développement itératif des produits et l’adaptation rapide aux exigences changeantes.
Ansible est un outil open source sans agent pour automatiser la configuration des systèmes, le déploiement des applications et la gestion de l’infrastructure IT.
Le Chaos Engineering teste la résilience des systèmes en introduisant volontairement des pannes et perturbations contrôlées afin de détecter les faiblesses avant les incidents réels.
Le CI/CD automatise l’intégration, les tests et la livraison des logiciels afin de déployer les nouvelles versions plus rapidement et en toute sécurité.
Le DDD, ou Domain-Driven Design, est une approche de développement logiciel qui centre l’architecture et le code sur le domaine métier, ses concepts et ses règles.
Le deploy est le processus de mise en ligne d’une application, d’un service ou d’une mise à jour dans un environnement accessible aux utilisateurs finaux.
Le DevOps réunit les équipes de développement et d’exploitation afin d’automatiser, de stabiliser et d’accélérer la création, les tests et la livraison des logiciels.
Un Easter Egg est un élément caché, généralement humoristique, d’un logiciel, d’une application ou d’un site, découvert de manière particulière par l’utilisateur.
Un feature toggle permet d’activer ou de désactiver dynamiquement des fonctions d’une application sans déployer une nouvelle version du code. Il facilite les tests, les déploiements progressifs et la réaction aux incidents.
Un freelance est un spécialiste indépendant qui réalise des projets pour des clients en définissant lui-même le périmètre, les délais et les conditions de collaboration.
Git est un système de contrôle de version distribué pour suivre les changements, travailler avec des branches et collaborer en sécurité sur des projets informatiques.
GitHub est une plateforme cloud basée sur Git pour stocker du code, suivre les versions, collaborer, réviser les modifications et automatiser les déploiements.
GitOps est une méthodologie de gestion de l’infrastructure et de déploiement des applications où un dépôt Git sert de source de vérité pour la configuration et l’automatisation.
Plateforme de visualisation des données et de supervision
Grafana est une plateforme open source dédiée à la visualisation des données, à la supervision des systèmes et aux tableaux de bord interactifs avec alertes.
Jira est une plateforme Atlassian dédiée à la gestion de projets, au suivi des bugs et à l’organisation du travail des équipes, notamment avec Agile, Scrum et Kanban.
Le linting est l’analyse automatisée du code source qui détecte les erreurs, incohérences, problèmes de sécurité et écarts aux standards de programmation.
Le MLOps regroupe des pratiques, processus et outils qui automatisent tout le cycle de vie des modèles de machine learning, de la préparation des données à la mise à jour et à la supervision.
Le no-code permet de créer des applications, des sites et des automatisations avec des outils visuels, des composants prêts à l’emploi et de la configuration plutôt que du code traditionnel.
npm est un gestionnaire de paquets pour JavaScript et Node.js qui simplifie l’installation des bibliothèques, la gestion des dépendances et l’automatisation des applications.
Un PoC, ou Proof of Concept, est un prototype fonctionnel qui permet de vérifier la faisabilité d’une idée, d’une technologie ou d’une solution avant son déploiement complet.