Il est nécessaire et même indispensable dans une veille technologique d’optimiser et d’améliorer ses connaissances et ses compétences par la pratique. Apprendre c’est aussi assimiler, comprendre et utiliser afin de posséder l’information utile en toute circonstance. Le monde du développement est en constante expansion, les nouvelles tech sortent très régulièrement et il est important de savoir récupérer, trier et se renseigner sur les domaines dans lesquels nous évoluons.
De nombreux outils sont à disposition pour effectuer une veille en bonne et due forme, j’ai donc misé sur les plus simples d’entre eux et des logiciels que j’utilise régulièrement: Discord, Twitter, Google News, GitHub, Stackoverflow, Youtube…; et des API sur des mots clés.
Les frameworks symfony et laravel étaient mon premier travail de recherche, je me suis penchée sur leurs différences, leurs forces et leurs faiblesses. Mais ces outils ne sont vraiment sublimés que par une pratique stricte au sein d’un environnement de travail sain, et il m’est devenu évident de l’importance de la méthode de travail au sein d’un projet regroupant de nombreuses personnes. Je me suis donc concentrée sur la méthode Agile, sur le DevOps et surtout sur le principe de l’intégration continue et le déploiement continu.
La méthode agile regroupe de très nombreux savoir-faire et un vocabulaire étoffé. Elle se manifeste par 4 valeurs fondamentales : L’équipe, l’application, la collaboration et l’acceptation du changement.
Elle prône principalement ces principes :
La méthode agile va de paire avec la méthode scrum, pour insister sur le principe d’agilité dans le processus de développement. L'intérêt étant de gagner du temps, optimiser le budget et les échanges avec le client afin que celui-ci soit le plus satisfait possible du produit en cours de développement et final. Le principe le plus important de la méthode scrum est le sprint et la rétrospective. Ci-dessous un schéma qui résume le fonctionnement et le squelette de la méthode agile par rapport à une méthode dite “classique”.
Il est important de noter que cette méthode a pour objectif principale la satisfaction du client tout en optimisant le processus de développement au sein de l’équipe. Une structure saine avec un mode de fonctionnement spécifique est le noyau d’un projet réussi.
La planification et l’utilisation de nouveaux outils est primordiale dans la mise en place de la méthode agile. Définir une planification, une estimation de l’effort, un changement de périmètre, les rôles, les boards ou artifacts, les caractéristiques est une étape fondamentale avant, pendant et après chaque projet. Chaque sprint doit être encadré, rythmé et correctement défini afin que l’équipe scrum réalise ce qui doit être fait.
L’outil le plus important dans un sprint est le scrum board. Il se présente souvent sous des cartes (Todo, on going, done) avec les tickets à effectuer pour l’intégralité du sprint. Il est rare mais possible que des tickets soient ajoutés pendant le sprint mais il est préférable de finir un sprint avant d’ajouter des fonctionnalités ou des tâches.
Trello, Jira Software, Asana, Airtable, Monday.com sont des scrum board très utilisés par les entreprises pour gérer leurs plan de sprint. Il est néanmoins possible de trouver des scrum boards fait maison dans des entreprises ayant des besoins de fonctionnalités personnalisées.
Le DevOps est conceptualisé en 2009 en Belgique par Patrick Debois: cela consiste à concilier le métier de développeur logiciel et l’administrateur de systèmes et d'architectures. Il se concrétise par la mise en place de pipelines d’intégration et de livraison continues (CI/CD) cours. Cela a pour vocation d’automatiser et de monitorer l’ensemble du cycle de vie des applications (que ce soit les sprints ou sans) de sa conception, sa phase de test et jusqu’à sa mise en production.
Les bénéfices d’un tel système sont nombreux: l’automatisation permet d’éviter les erreurs dues aux saisies manuelles, libère du temps et de la réflexion, l’adaptation permet de se caser au contexte et aux attentes du marché actuel, la qualité et la productivité, la livraison est plus rapide en incluant un processus d’amélioration continu, la valeur ajoutée qui en ressort permet de rendre plus rentable les projets aussi bien pour le client que pour l’entreprise prestataire.
Un pipeline CI/CD est une série d’étapes à réaliser en vue de distribuer une nouvelle version d’un projet. A l’aide de l’approche DevOps, les pipelines d’intégration et de distribution continues constituent une pratique visant à améliorer le processus de développement.
Un pipeline est constitué de phases : Création (ou compilation), test (automatisation du test), lancement (distribution), déploiement (en production), puis validation et conformité.
Dans la pratique:
L’intégration continue (CI) permet aux développeurs de fusionner leurs modifications de code dans une
branche partagée critique et unique. Chaque modification de cette branche inclut une automatisation des
tests pour détecter le moindre conflit entre le code existant et le code ajouté (et ce, à tous les niveaux,
classes, fonctions, modules, extensions…). Si dysfonctionnement il y a, il sera rejeté afin que le
développeur corrige les erreurs éventuelles.
La distribution (ou livraison continue), s'effectue qu’après la validation des tests de la CI. C’est une automatisation de la publication du code validé dans un référentiel. L’étape finale correspond au déploiement continu (CD), qui complète la distribution, en automatisant la publication d’une version prête pour la production et son exécution.
Suite au déploiement, la validation et la conformité passe par le client qui retourne ses indications à l’équipe de production.
Je me suis abonnée sur Twitter, Youtube, Google New (...) à de nombreuses newsletters et personnes dont le métier est DevOps, j'ai fais une API pour récupérer et centraliser ces informations sur un BOT Discord (logiciel que j'utilise quotidiennement). Partager mon serveur Discord où est trié les informations dans des channels textuels est une bonne manière afin de diffuser ma veille technologique.
Rédigé en mars 2021 -
Dans l'éventualité d'une proposition ou demande de projet, n'hésitez pas à me contacter. Je suis actuellement à la recherche d'un CDD pour Mai 2022 jusqu'à Juillet en amont d'une alternance en septembre pour mon master en Informatique à Lyon Claude Bernard.
romane.ldru@gmail.com
06.33.91.32.19