Une initiative pour plus de professionnalisme dans le développement de logiciels
Professionnalisme = conscience + principes
Le développement de logiciels nécessite des professionnels. Mais que sont les professionnels ? Des personnes qui gagnent de l'argent avec le développement de logiciels ? Non, nous pensons qu'il y a plus et autre chose. Le professionnalisme dans le développement de logiciels n'a rien à voir avec l'argent. Il n'a également qu'un rapport limité avec une certaine formation. Nous connaissons des développeurs de logiciels professionnels qui gagnent peu ou pas du tout d'argent avec leurs logiciels et nous connaissons des développeurs de logiciels professionnels qui n'ont ni diplôme ni doctorat.
Exigences minimales de professionnalisme
Pour nous, le professionnalisme est plutôt de deux ordres :
- Un développeur de logiciels professionnel se penche sur le métier en toute connaissance de cause.
C'est-à-dire qu'il réfléchit à son produit, à sa méthode de travail, à ses matériaux et à ses outils. Un développeur de logiciels professionnel n'est pas simplement satisfait si son patron ou son client sont satisfaits. Il n'est pas non plus simplement satisfait de ce qu'un fabricant lui recommande. Au contraire, il observe et vérifie constamment ses résultats et s'efforce de se perfectionner lui-même ainsi que le métier. - Un développeur de logiciels professionnel a un système de valeurs interne.
C'est par rapport à ce système de valeurs qu'il examine ses résultats et ses actions. Ce n'est que si son travail correspond à ce système de valeurs qu'il le considère comme bien fait, comme professionnel. Il s'efforce donc d'être fidèle à ce système de valeurs, même dans des circonstances défavorables, sous la pression des clients ou des fabricants.
Cela peut paraître un peu désuet ou sectaire en quelques mots. Les développeurs de logiciels doivent-ils se donner un code de déontologie ou même prêter serment d'allégeance ? Non, ce n'est évidemment pas ce que nous voulons dire. Néanmoins, en l'absence de consensus sur ce qu'est exactement un "bon développement logiciel", nous pensons qu'un "plus petit dénominateur commun" est nécessaire. Le secteur - nous ne parlons ici que du développement de logiciels .NET - a besoin d'un critère de qualité ou du moins d'un horizon d'attente en matière de professionnalisme. L'époque où toute personne ayant déjà programmé quelque chose en BASIC était suffisamment qualifiée pour faire partie d'une équipe est révolue. De même, le temps n'est pas encore venu où la présentation d'un diplôme d'informatique pourrait vraiment dire quelque chose sur la capacité à développer des logiciels. (Disclaimer : je n'ai rien contre les diplômes en informatique ! Mais qui ne connaît pas de diplômé en informatique qui a réussi ses études sans programmer plus de quelques lignes) ?
Le code propre comme fondement
Que faire alors pour plus de professionnalisme (visible) dans le développement de logiciels ? Nous pensons que le secteur, après avoir reconnu le problème, devrait simplement faire un petit pas. Il n'est pas nécessaire de redéfinir les programmes des masters ni de créer une association. Nous pensons bien plus facilement que "les choses" s'amélioreraient déjà si nous avions tous lu un seul livre ensemble. Le simple fait d'être d'accord avec les affirmations d'un seul livre créerait un consensus qui pourrait avoir un impact considérable.
Nous pensons qu'avec Code propre de Robert C. Martin d'avoir trouvé un tel livre, digne d'une lecture commune. Ce n'est pas un livre parfait et nous ne sommes pas non plus d'accord avec tout ce qu'il contient, mais c'est un livre "dans le bon esprit" : il est l'expression d'une réflexion profonde et a le courage de formuler un système de valeurs fondamental.
Le Clean Code n'est pas une question de plateforme ou de technologie, ni de paradigme de programmation. Il n'est donc pas nécessaire d'être un adepte de .NET, Java, ASP.NET, SVN ou OOP pour en tirer profit. Il s'agit plutôt du substrat sous-jacent : le code en tant que code source et le code en tant qu'expression structurée de la fonctionnalité. Pour le code en tant que plus petit dénominateur commun entre les développeurs de logiciels de tous bords, Clean Code décrit un ensemble de principes et de meilleures pratiques en tant que plus petit dénominateur commun.
Non pas qu'il n'y ait pas d'autres livres qui font la même chose. Nous mais il se trouve que Clean Code nous a interpellés de telle manière que nous voulons l'utiliser comme germe de cristallisation pour notre idée de Clean Code Developer.
Mais en fin de compte, ce n'est pas non plus gravé dans la pierre. Demain, un livre encore meilleur sera peut-être publié. C'est bien ! Mais cela ne change rien à ce que nous pensons être le professionnalisme. C'est pourquoi nous commençons simplement. "Pas de bavardage, la tête dans le dos" - c'est ce que disent les Hambourgeois lorsqu'ils ont un Korn (eau-de-vie d'Allemagne du Nord) à la main. Et c'est ainsi que nous voulons procéder : Dans l'esprit du mouvement d'agilité, ne pas planifier jusqu'à l'inconscience, mais faire quelque chose. Faire un petit pas vers plus de professionnalisme.
Qui a envie de participer ? Ici c'est parti...