Trouvez votre prochaine formation en un clin d'œil !
Trouver ma formation
Je veux me former en
sélectionner
Inter-Entreprise
Mastère Spécialisé
?
Dans quel domaine ?
et plus précisément en
sélectionner
?
Dans quel sous domaine ?
Automatique et traitement de signal
Cloud et DevOps
Cybersécurité
Développement Durable et RSE
Electronique de puissance
Electronique et instrumentation
Energie électrique et thermique
Energies
Energies renouvelables et stockage d'énergie
Excellence opérationnelle
Gestion des conflits
Industrie 4.0
Ingénierie Systèmes
Innovation et Entrepreneuriat
Innovation et intrapreneuriat
Intelligence Artificielle
Intelligence collective et créativité
Leadership et développement personnel
Leadership et Management Collaboratif
Lean Management
Lean six Sigma
Management de Projets
Management de projets complexes
Marchés de l'énergie
Nouvelles architectures du SI
Numérique responsable
Numérique responsable, Green IT
Posture managériale
Projets de Transformation agile
Protection des réseaux d'énergie publics et industriels
Risk Management
RSE : stratégie durable et nouvelles gourvernances
Stratégie et Management de Projet
Stratégie et Nouveaux modèles d'affaires
Stratégie et Transformation de l'entreprise
Supply Chain
Système d'Information et Digital
Systèmes d'Information et Digital
Technologie et Systèmes Energies
Technologies & Systèmes
Technologies du numérique
Télécommunications
Transformation digitale
Transition écologique et Energétique
Upskilling
grâce à une
sélectionner
?
Quel type de formation ?
Formation certifiante
Formation diplômante
Certificat d'établissement
Formation courte
DécouvrIR les formations
Article

Le Tech Lead, qu’est-ce que c’est ?

Mettre en place un processus de développement d’une qualité irréprochable est devenu indispensable à la réussite des entreprises. Dans un contexte où le numérique devient une clé du succès, comment pouvons-nous donc améliorer la performance et la qualité logicielle ?

Le Tech Lead dispose d’une expertise technique, mais aussi la capacité à former et animer l’équipe de développement. En effet, il connaît et transmet les pratiques de software craftsmanship et de clean code aux développeurs. De plus, il est capable de mettre en place une usine de développement logiciel (plateforme de CI/CD) et les bonnes pratiques de codage et de test.

Le développement logiciel

« Le logiciel mange le monde » – Marc Andreessen

Année après en année, la portion de budget qui est allouée aux logiciels dans les entreprises augmente. Par conséquent, il y a de plus en plus de développeurs, de codes à maintenir et à produire dans divers langages comme Rust, TypeScript, Python ou encore Kotlin.

Le projet informatique

Généralement, 3 grandes étapes sont identifiées dans la création d’un produit logiciel. Voici un exemple d’organisation qu’il est possible d’avoir dans une équipe qui délivre un projet informatique :

  1. Etudier le besoin utilisateur : des développeurs et testeurs essayent de comprendre au mieux le besoin. Puis, ils alimentent un premier artefact appelé backlog.
  2. Construire les solutions : l’équipe de développement va alors construire les solutions pour répondre aux besoins qui ont été formulés dans le backlog. Elle livre ensuite une version de solutions à un gestionnaire de versions (ex : GIT)
  3. Déployer les solutions : Les DevOps travaillent sur un ensemble d’outils et de techniques pour essayer de proposer cette version le plus rapidement possible 

L’organisation agile

Il existe principalement 2 modes d’organisations.

Dans le mode d’organisation traditionnel, le développement du logiciel se constitue d’une phase de construction, de conception/développement de la version et de lancement de l’application.

Avec la méthode moderne, dite agile, l’interconnexion entre ces phases est privilégiée pour éviter ce découpage et récupérer rapidement des feedbacks sur un produit. Cependant, bien que cette méthode améliore les chances de réussite, un projet sur deux peut potentiellement échouer. Il faut donc constamment injecter de nouvelles pratiques et connaissances dans la construction du projet.

Le mouvement des Artisans du Logiciel : viser l’excellence technique

En vue d’améliorer les logiciels, de nouveaux rôles, pratiques et mouvements émergent. Le mouvement des Artisans du Logiciel (craftmanship, tech lead) reprend les bases de l’agilité. Cependant, il fournit non seulement un logiciel opérationnel mais aussi une conception qui soit adaptée à ce logiciel. Les changements effectués doivent apportés une fonctionnalité ou valeur supplémentaire à l’utilisateur. Ce mouvement repose sur le principe du compagnonnage et est supporté par les pratiques qui sont dans le framework xp. De manière courante, plusieurs pratiques collectives sont utilisées : mentoring, revue par les pairs, pair programming, coding dojo. Toutes ces pratiques ont pour vocation de viser l’excellence technique, qui est l’un des fondements agiles.

L’architecture logicielle

Aujourd’hui, nous avons beaucoup d’architectures classiques qui sont basées sur le FrontEnd et le BackEnd. Dans les FrontEnd, de plus en plus des applications JavaScript avec différents types de frameworks, mais aussi des applications dites « responsive » ou encore « progressive Web App ». Ce sont souvent des API qui font le lien entre le FrontEnd et le BackEnd. Par conséquent, il faut utiliser un framework qui est capable de produire rapidement une API pour ensuite pouvoir structurer une architecture avec des services et des microservices.

Les choix d’architecture logicielle

On a différentes granularités d’outils pour développer son architecture. Quels frameworks, quels outils opensource utiliser pour baser ses développements sur le FrontEnd et le BackEnd ?

Le choix de gestion de la dette technique est aussi important. Lors du développement logiciel il faut donc se demander jusqu’où il est possible d’utiliser des technologies qui ne seront plus les dernières de l’état de l’art et à partir de quel moment il faudra migrer vers les nouvelles technologies de l’état de l’art.

L’intégration continue (CI)

C’est la question d’être capable de pousser du code dans un environnement de test de manière automatisée. Les tests unitaires, d’acceptances et bien d’autres encore, permettent de bâtir automatiquement un code assez fiable. Cela évite d’avoir des problèmes de régression, de sécurité, de performances ou de non-respect des fonctionnalités lors de la mise en production.

Le déploiement en continue (CD)

L’idée est de déployer régulièrement et non pas une fois tous les ans. Avec le déploiement en continue, cela évite d’oublier les problèmes qui ont déjà été rencontrés et de déployer de nouveaux codes et des mises à jour relationnelles d’une seule traite.

Les avantages :

  • Cela devient plus simple de découvrir l’origine d’un problème de déploiement
  • Déployer devient une habitude, une maîtrise
Aller au contenu principal