philosophie du codecode joyaurefactoringimpermanence des chosses

Dans le code, rien est éternel

Publié le19/02/2021

Dans la codebase, tout, absolument tout, est amené à être remplacé.

J'en reparlerais plus en détails, mais avant de commencer à étayer ma thèse il me faut vous parler du concept de code joyau.

Code joyau

Pour faire court, un code joyau est un ensemble de fragments de code issus d'un ou plusieurs fichiers sur lequel on a vraiment porté beaucoup d'attention.

Cette attention s'est traduite par de superbes algorithmes, des batteries de test tout plus pertinents les uns que les autres et, pour l'UI, un design aux petits oignons.

Le code joyau coûte cher. C'est un travail d'orfèvrerie.

Ce qui est déterminant dans la décision de créer, mais surtout de refactorer, c'est :

  1. La valeur apportée au client (pour son sponsoring),
  2. La criticité et l'usage dans le code.

C'est toujouts difficile de choisir s'il vaut mieux développer de nouvelles fonctionnalités, ou améliorer celles déjà existantes.

Le grand remplacement (lol)

Contraint en priorité par la valeur à apporter au client, le développeur a pour objectif prioritaire de livrer du fonctionnel rapidement, puis d'améliorer en fonction de la largesse du sponsor.

La fonctionnalité et le coût sont les deux "exterieurs" visibles par le client.

Ces deux aspects du développement sont présentés grâce à l'infrastructure et la code base.

Lorsqu'une fonctionnalité doit être ajoutée ou modifiée, c'est la code base qui est mise-à-jour pour rendre ces changements.

Des morceaux de code sont régulièrement modifiés, voir supprimés !

C'est d'autant plus frustrant lorsque ce dont on doit se séparer a commencé à prendre la voie du code joyau.

Ce que le développeur doit toujours, toujours garder en tête, surtout lorsqu'il s'aventure vers le code joyau, c'est que tout dans la code base sera un jour obsolète.

Comment trouver un sens à sa vie maintenant ?

Une fois qu'on a bien posé que toute notre création va finir par être jetée à la poubelle, souvenons-nous de plusieurs choses.

D'abord, tout est en recyclage permanent : c'est la nature même de la vie.

Les choses passent, se transforment en de nouvelles choses, et permettent de construire plus haut.

Si votre code disparaît, votre volonté non !

Vous avez participé à lancer un projet qui peut ajourd'hui se payer la version 2 qu'il mérite … :

Il n'y a jamais eu d'autres objectifs, que la pérénisation du succés du projet derrière l'application (et la suivante).

Ensuite, souvenons-nous de ce qui compte vraiment :

  • Ce n'est pas le code, c'est l'application,
  • Ce n'est pas l'application, c'est le projet,
  • Ce n'est pas le projet, c'est ce que ça apporte au tout ;)

Ce dernier point est à mettre en relation avec le sens de l'humain en général héhé :

L'objectif ce n'est pas qu'on se souvienne de notre nom, mais d'accéler la construction d'une meilleure humanité.