Que signifie pour nous le Software Craftsmanship ?
Le Software Craftsmanship est une philosophie qui met l’accent sur un fort savoir-faire technique, l’amélioration continue et la fierté du travail bien fait. Chez Directskills, nous avons intégré cette approche dans notre culture de développement pour créer une plateforme fiable et performante.
Les piliers du Craftsmanship chez Directskills
1. Clean Code
Nos développeurs suivent les principes du « Clean Code » énoncés par Robert C. Martin. Cela implique notamment :
- Des noms de variables et de fonctions explicites
- Des fonctions concises, monofonctionnelles, et pures
- Une structure de code claire et logique, respectant le principe DRY (Don’t Repeat Yourself)
- Des commentaires pertinents seulement, pour décrire des subtilités de code
- Des tests organisés pour balayer tous les cas possibles
2. Test-Driven Development (TDD)
Le TDD est au cœur de notre processus de développement. Nos développeurs :
- Écrivent d’abord les tests unitaires
- Implémentent ensuite le code pour passer ces tests
- Refactorisent continuellement pour améliorer la qualité du code
Cette approche nous permet en réfléchissant aux usages de prévenir les cas spéciaux, et d’autre part cela nous permet de garantir la non-régression à chaque modification.
3. Revue de code systématique
Chaque modification de code passe par un processus de revue rigoureux :
- Création d’une Pull Request
- Revues croisées entre développeurs
- Validation extérieure avant l’intégration
4. Intégration continue (CI)
Nous avons mis en place un pipeline CI robuste qui :
- Exécute automatiquement tous les tests à chaque nouvelle Pull Request
- Exécute un build de l’application, pour s’assurer de sa capacité à être déployée
- Lance un docker de l’application pour vérifier qu’elle a la capacité d’être lancée
5. Refactoring régulier
Le refactoring fait partie intégrante de notre processus de développement. Nous avons 2 manières principales d’aborder le refactoring.
- Durant le développement d’une feature, nous en profitons pour refactorer une partie de code liée
- Nous prévoyons directement dans la roadmap une tâche de refactoring pour diminuer la dette technique sur un sujet bien précis.
Le refactoring participe directement au Clean Code, qui permet d’augmenter notre vitesse de développement de nouvelles features mais également notre capacité à résoudre rapidement de potentiels bugs.
6. Legacy Remediation
Il s’agit de reprendre la main sur du code legacy, chez Directskills nous avons la volonté de faire passer notre offre d’un niveau national à un niveau international. Pour rendre possible ce passage à l’échelle nous avons besoin de mettre à niveau notre code base. Pour cela nous avons établi une roadmap de migration, nous permettant de passer le code sur une stack plus moderne et évolutive. Pour nous permettre de réaliser cette migration sans régression nous avons mis en place certains processus de Legacy Remediation, à savoir des tests en masses sur les fonctionnalités migrées pour s’assurer de la migration iso d’un point de vue fonctionnel. Enfin dans le code que nous produisons, nous mettons en place toutes les bonnes pratiques énoncées ci-dessus, qui nous garantiront une couverture de tests optimale pour pratiquer avec assurance de prochains refactoring.
7. Documentation pertinente
Notre code se veut clair et facilement compréhensible par un nouveau développeur, néanmoins pour certaines particularités nous mettons en place un documentation interne au repository git via des fichiers markdown. Par ailleurs pour tout ce qui concerne le métier partagé entre les différentes équipes de l’entreprise nous le centralisons sur Confluence.
8. Pour aller plus loin
L’équipe de développement de Directskills est engagée dans un processus d’apprentissage permanent :
- Veille technologique régulière
- Partage de connaissances lors de sessions internes
- Participation à des conférences et des formations
- Formation interne sur des aspects du code en binômage
L’impact du Software Craftsmanship sur la plateforme Directskills
Cette approche du Software Craftsmanship a des bénéfices tangibles pour notre plateforme et nos utilisateurs :
- Stabilité accrue : Moins de bugs et de temps d’arrêt, ce qui est crucial pour nos clients qui dépendent de Directskills pour leur recrutement quotidien.
- Évolutivité facilitée : L’ajout de nouvelles fonctionnalités est plus rapide et moins risqué grâce à un code bien structuré et bien testé.
- Performance optimisée : Un code propre et efficace se traduit par une plateforme plus rapide et plus réactive pour nos utilisateurs.
- Maintenance simplifiée : Les problèmes sont plus faciles à identifier et à résoudre, réduisant ainsi les temps d’intervention.
- Innovation accélérée : Avec une base de code solide, nous pouvons nous concentrer sur l’innovation plutôt que sur la résolution de problèmes techniques.
Le Software Craftsmanship, un investissement pour l’avenir
Chez Directskills nous voyons le Software Craftsmanship comme une philosophie mais aussi comme une boîte à outils nous permettant d’améliorer nos produits mais également l’environnement du développeur. En produisant un code de haute qualité, nous assurons la pérennité et la fiabilité de notre plateforme, tout en nous donnant les moyens d’innover rapidement pour répondre aux besoins évolutifs du marché du recrutement en intérim.
Cette approche nous permet de tenir notre promesse envers nos clients : fournir une solution technologique de pointe, fiable et évolutive. Le Software Craftsmanship chez Directskills n’est pas qu’une méthode de travail, c’est la garantie d’une excellence technique au service de l’innovation dans le domaine des ressources humaines.