Les grades

Le Clean Code Developer Grade

Il ne suffit pas d'être développeur Clean Code, il faut le devenir. En effet, il ne s'agit pas d'apprendre quelques règles par cœur, mais d'utiliser le Système de valeurs CCD vraiment l'intérioriser. Cela demande du temps et de la pratique. C'est pourquoi nous avons divisé le système de valeurs CCD en niveaux que le développeur doit gravir l'un après l'autre. Toutefois, nous considérons l'ensemble du processus comme un cercle : celui qui a travaillé sur tous les degrés recommence depuis le début.

Une couleur est attribuée à chaque niveau de développement. Et celui qui travaille en tant que Clean Code Developer à un niveau porte une couleur. Bracelet CCD comme signe de sa volonté de les maîtriser. Contrairement au judo, la couleur ne correspond donc pas à un degré atteint, mais à celui qui est en cours.

Noir 0e degré

Le site degré noir a tous ceux qui ne se sont pas encore lancés. Un bracelet noir signale donc seulement que l'on s'intéresse au CCD. On peut le porter si toutes les conditions ne sont pas encore remplies pour le premier vrai grade.

1er degré rouge

Le véritable chemin pour devenir un développeur de code propre commence par degré rouge. C'est avec le degré rouge que commence la pratique de l'exercice. Il ne contient donc que des éléments du système de valeurs CCD qui sont absolument indispensables. L'initiation doit être aussi facile que possible. A ce niveau, il ne s'agit donc pas encore tant de principes de développement de logiciels que de la construction d'une attitude fondamentale envers le développement de logiciels et le Clean Code Developer.

2ème degré orange

Après avoir posé les bases du processus d'amélioration continue dans le degré rouge, il s'agit dans le degré moyen de mettre en place un processus d'amélioration continue. degré orange Il s'agit d'appliquer quelques principes fondamentaux au code et d'acquérir une première expérience avec le moyen n° 1 d'augmenter la productivité : l'automatisation des processus. Comme seul un code correct est un bon code, l'automatisation sert à vérifier qu'il est correct. Il ne s'agit donc pas d'une propriété "nice-to-have" du code, mais de son essence même.

3ème degré jaune

Le site degré jaune est entièrement placé sous le signe des tests automatisés. Le degré orange concernait encore les tests d'intégration pouvant être réalisés de l'extérieur. Ils ne nécessitaient pas nécessairement une intervention dans le code. Mais à partir du degré jaune, on ne peut plus se passer de tests sous la surface. Et ce n'est pas tout : les tests doivent porter sur les plus petites unités possibles, et pas seulement sur les percées fonctionnelles. Cela implique une modification de la pratique de codage, car sinon il n'est pas possible de tester des classes individuelles de manière isolée, c'est-à-dire indépendamment des services utilisés. C'est pourquoi les principes orientés objet font également partie du degré jaune, car ils sont les seuls à permettre de détacher le code à tester de son "substrat".

4e degré vert

Sur le site degré vert on continue avec l'automatisation. Celle-ci est tout simplement la clé de la productivité et de la réactivité. Ce n'est que si un maximum d'activités sont automatisées dans le développement du logiciel que le CCD peut se concentrer sur l'essentiel : l'implémentation des exigences du client. Sans automatisation, le développement est souvent suspendu à des détails, ce qui fait perdre du temps. Les tests d'exactitude et les versions sont alors plus une punition qu'un moyen de réussir. Mais après l'automatisation des tests, c'est la production qui est à l'ordre du jour. Tester le code au poste de travail du développeur est une chose. Le traduire et le tester avec succès sur un ordinateur indépendant en est une autre. C'est la seule façon de trouver des dépendances plus ou moins subtiles entre les différents postes de travail des développeurs. Cette pratique est ensuite agrémentée d'autres principes de structuration du code et d'un outil pour de meilleures architectures.

5e degré bleu

Avec le degré bleu nous entrons dans la dernière ligne droite du système de notation CCD. L'automatisation doit être poussée encore un peu plus loin. Après la traduction et les tests, le déploiement est maintenant au programme. Mais c'est surtout dans le degré bleu qu'il est désormais question des aspects du développement logiciel au-delà du code et des outils : CCD ne s'occupe pas seulement de bonnes structures à petite échelle, mais les planifie dès le départ à grande échelle. Il s'agit donc d'architecture. Toutefois, comme nous sommes conscients qu'aucune planification ne peut définir une solution parfaite, un modèle de procédure adapté fait partie non seulement de l'architecture, mais aussi du développement logiciel dans son ensemble. Il s'agit d'un processus itératif qui doit maintenant être mis en pratique pendant le travail sur le degré bleu.

6e degré blanc

Sur le site degré blanc tous les principes, règles et pratiques convergent. De même que toutes les couleurs sont contenues dans la lumière blanche, le degré blanc contient tous les autres degrés. Un CCD ne travaille au niveau du degré blanc que s'il a constamment en vue l'ensemble du système de valeurs du Ccd. Cela montre clairement que seuls les développeurs de logiciels vraiment avancés, avec plusieurs années d'expérience et dans un environnement approprié, peuvent travailler avec le degré blanc.

Signification des grades

Les grades n'expriment aucune valeur. Celui qui travaille au grade bleu n'est pas "meilleur" ou "plus avancé" que celui qui travaille au grade orange. Les grades ne sont qu'un outil didactique pour rendre l'ensemble du système de valeurs "plus facile à digérer". Les nombreux éléments constitutifs sont tout simplement plus faciles à assimiler en petites bouchées qu'en une seule fois.

C'est pourquoi il est important pour nous que chaque personne intéressée commence par le degré rouge. Pour des raisons didactiques, c'est la meilleure façon de commencer - même si l'on pense que l'on met déjà en œuvre d'autres valeurs dans son travail quotidien. En effet, indépendamment de la pratique actuelle des projets, il est certainement nouveau de se pencher aussi consciemment sur les principes et les pratiques. En particulier, la réflexion quotidienne à ce sujet n'est probablement pas encore une habitude. Pour s'y exercer dans le contexte de modules "simples", le degré rouge est alors approprié.

Même si nous comprenons que toute personne qui a Système de valeurs Si l'on voit pour la première fois ce que l'on a déjà retenu, cela n'a finalement aucune importance. La pratique consciente dans le cadre du système de valeurs est toujours nouvelle - et même celui qui pense "mériter" le grade blanc devrait commencer par le grade rouge. Il ne s'agit pas de "mérite", mais d'itérations et de petites bouchées. Les grades sont des trous de regard sur le grand tout.

Celui qui a obtenu le premier Bracelet commandez donc de préférence le bracelet rouge.

Formation continue

Le site Système de valeurs et les blocs de construction peuvent sembler rigides, comme s'ils étaient gravés dans la pierre. Mais ce n'est pas le cas. C'est toujours provisoire, jusqu'à ce que nous, ou la communauté, estimions que quelque chose doit être changé. Mais le monde des outils et des matériaux auxquels le système de valeurs doit être appliqué est encore plus mouvant. Les langages de programmation, les IDE, les frameworks, les plates-formes, les produits serveur changent constamment, s'ajoutent ou disparaissent. La tendance est que ce qui pourrait être potentiellement connu et maîtrisé devient toujours plus, beaucoup plus. Autrefois, on était bien servi par un langage de programmation et sa bibliothèque standard. Aujourd'hui, cela ne suffit plus depuis longtemps.

Comme le professionnalisme implique de prendre des décisions en connaissance de cause, le DCC ne peut pas faire l'économie d'une formation continue. Le développement de logiciels est même probablement le secteur qui en a le plus besoin. Les aspects de la formation continue font donc partie intégrante de plusieurs grades (Orange, Jaune, Vert). Nous voulons ainsi montrer clairement que la formation continue est toujours un thème, mais qu'elle doit aussi suivre une évolution. Il n'est pas possible de passer de 0 à 100 en matière de formation continue en un seul degré. Il n'y a pas que le développement de logiciels qui nécessite de la pratique, la formation continue aussi s'apprend.

Mais les grades ne concernent que les différentes formes de formation continue (lecture, réseautage, publication). Ils ne précisent pas combien de temps un CCD devrait y consacrer. La raison : de notre point de vue, cela n'est pas spécifique à la forme. La formation continue devrait représenter au moins 20% du temps de travail, indépendamment de la forme.

Oui, nous le pensons vraiment. 20% du temps de travail devrait être du temps de formation. Par semaine de 5 jours, un jour uniquement pour la formation. Pas moins. Google montre que cela fonctionne : "Cela signifie que chaque employé peut consacrer 20 % de son temps de travail à des projets qui ne sont pas directement liés à sa tâche. Cela n'est pas contrôlé". (Source(Entretien avec Phillip Schindler, directeur de Google pour l'Europe du Nord, dans le Hamburger Abendblatt, 7.11.2007)

20%, ça fait quand même beaucoup. Mais ne vous inquiétez pas, la formation continue n'est pas si mauvaise pour celui qui doit la payer. Car la formation continue, ce n'est pas tout à fait ce qu'on lui associe au départ :

  • La formation continue n'est pas un congé
  • La formation continue n'est pas une absence du lieu de travail
  • La formation continue ne signifie pas l'absence d'utilité pour les projets.
  • La formation continue ne nécessite pas nécessairement un budget élevé pour les formations ou les logiciels

La formation continue signifie avant tout une marge d'erreur. En d'autres termes, cela signifie qu'il faut être prêt : Pendant les 20% de travail, un développeur de logiciels professionnel ne devrait pas avoir peur de faire des erreurs. Dans le cas extrême, cela signifie que les 20% sont sans bénéfice direct pour un projet. Comparez la formation continue au temps de répétition d'un musicien. Sur scène, le musicien doit se produire, si possible sans erreur. Mais pour maintenir son niveau de compétence, voire l'améliorer, le musicien doit s'entraîner. Les erreurs sont expressément autorisées, sans quoi aucune évolution ne serait possible. Il faut donc deux "modes de fonctionnement" différents.

Ce n'est que sur la base d'une telle marge d'erreur qu'il s'agit de savoir comment elle pourrait être remplie. La seule exigence concernant les contenus possibles devrait être qu'un lien avec le travail soit reconnaissable. Celui qui utilise la marge de manœuvre de 20% pour la recherche immobilière privée en ligne ou pour faire du sport dans le centre de fitness de l'entreprise ne se forme pas vraiment.

Voici quelques exemples de contenus de formation continue :

  • Étude de publications spécialisées (en ligne/hors ligne, blog/revue/livre/vidéo)
  • Expérimenter ce que l'on a lu
    • Technologies
    • Procédure
    • Outils
  • Assister à des événements professionnels (formation, conférence, événement communautaire)
  • Publication de ses propres connaissances
    • dans les médias propres à l'entreprise (p. ex. wiki du projet)
    • sur des plateformes publiques (blog, magazine, livre, conférence spécialisée)

Que les lectures, les expériences ou les publications soient directement liées à un projet est secondaire. Elles peuvent l'être, mais pas nécessairement. Un CCD peut évaluer une technologie dans l'optique du projet d'entreprise ou simplement par intérêt général. Dans les deux ( !) cas, il y a un bénéfice pour le projet. Une fois directement, une fois indirectement. Car toute connaissance d'une technologie ou d'un procédé, même si son utilisation dans le projet n'est pas encore prévisible, élargit l'horizon, donc rend plus expérimenté, plus riche en options.

Note aux décideurs : les développeurs qui suivent une formation continue représentent une valeur. Ils sont plus expérimentés, plus innovants, plus flexibles. Cela sert vos produits.

Avis aux développeurs de logiciels : celui qui se forme devient plus précieux. Il gagne en expérience, n'est pas cloué dans une niche, ne donne pas prise au battage médiatique. Cela contribue à l'"employabilité".

Pratique des exercices

Devenir un développeur de code propre prend du temps. Nous pensons que par degré, pas moins de 21 jours suffisent. Car 21 jours (ou 3 semaines) - c'est ce que dit la psychologie - sont nécessaires aux gens pour intégrer la nouveauté ou, plus généralement, les changements comme des habitudes dans leur vie.

Celui qui travaille à un niveau CCD doit donc procéder de la manière suivante : Le soir de chaque journée de travail, le CCD réfléchit pour savoir s'il a respecté les principes de son grade (et de ceux qui lui sont inférieurs). Si oui, il garde le bracelet au bras où il se trouve. Dans la négative, il change de bras ! C'est important, car par cet acte de changement, le développeur prend conscience qu'il doit encore mieux assimiler ses principes et lesquels.

Lorsqu'un développeur a travaillé 21 jours sur un niveau sans changer de bracelet, il peut considérer que le niveau est maîtrisé, passer au suivant et enfiler son bracelet.

Bien entendu, il n'existe pas de contrôle formel permettant de vérifier si tous les principes ont été respectés au cours d'une journée. Nous laissons donc à l'honnêteté de chaque développeur, vis-à-vis de lui-même et de la communauté CCD, le soin de juger en son âme et conscience. Comme aucun niveau n'est "meilleur" ou "pire" qu'un autre, il ne vaut pas la peine de tricher. Nous partons du principe que les développeurs qui ont maîtrisé le niveau blanc recommencent au niveau rouge. Ils démontrent ainsi leur conviction que le développement de logiciels est un apprentissage permanent.

fr_FRFrançais