Programmer comme on cuisine au McDo

Ted Dziuba, programmeur et co-fondateur de Milo (comparateur de prix local), a écrit un article très intéressant fin octobre sur une méthode de programmation qu’il a intitulé « à la Taco Bell ». Comme nous n’avons pas de Taco Bell en France je l’ai traduit par McDo dans le titre!

Le concept?

The more I write code and design systems, the more I understand that many times, you can achieve the desired functionality simply with clever reconfigurations of the basic Unix tool set.

Ou en français (mon emphase en gras):

Plus je code, plus je réalise que la plupart du temps il est possible d’atteindre la fonctionnalité attendue avec une reconfiguration intelligente des commandes de bases d’Unix.

Avec un pas de recul, on peut appliquer cela à n’importe quel environnement de développement (la BI Microsoft par exemple), voir même à la méthodologie projet. C’est une attitude à contre pied complet de l’architecture interstellaire et pour l’avoir déjà mise en œuvre, qui donne de bons résultats.

Les principaux avantages sont la minimisation du risque et l’amélioration de la qualité du code par la maîtrise de bout en bout de toutes les fonctionnalités utilisées. Ted Dziuba le dit dans l’article : faire appel à des services tierce partie, des boîtes noires, c’est introduire du risque dans la solution.

Cette méthode amène de plus une réduction dans le choix de l’implémentation lors du design, et toute réduction de choix est bonne lorsqu’elle correspond à une réduction de l’effort nécessaire pour sortir de la procrastination et passer à l’action.

Le point négatif est évidemment le biais humain qui pousse au culte du cargo: ce qui est initialement une bonne pratique, un objectif, peut rapidement dégénérer en dogme et mettre en péril le projet. Il restera toujours un pourcentage de fonctionnalités qui nécessitent d’utiliser un service tiers spécifique, une technique spécifique, et vouloir les recoder dans les briques de base ne peut que conduire à une catastrophe (recoder un cube en TSQL – 300 tables d’agrégats à maintenir – ce n’est pas une bonne idée).

Un autre point négatif est qu’il faut disposer de collaborateurs capables de faire des reconfigurations intelligentes. Si l’intelligence manque en interne, autant s’appuyer sur l’intelligence qu’on peut trouver dans un service clef en main, tout le monde se sentira bien mieux.

Et par rapport à la gestion de projet, découper les périmètres complexes en briques élémentaires maîtrisées ça ne vous rappelle rien? La méthode agile oui, il me semblait bien 🙂

Dire aux clients qu’ils ne sont pas communs

Il est vrai qu’on ne dit surement pas assez à ses clients qu’ils ne sont pas communs. Brent Ozar, l’expert SQL Server qu’on ne présente plus, le rappelle dans son dernier article.

Lorsqu’on est consultant, on voyage de client en client et on voit comment les choses sont faîtes, comment les outils sont utilisés, dans une variété de contexte. De ces multiples expériences on retire une espèce d’implémentation type, une moyenne des pratiques rencontrées qui sont appliquées chez 90% des clients. Ce sont des interprétations plus ou moins correctes des bonnes pratiques définis par le référant reconnu, bien souvent l’éditeur.

Et de temps en temps, on tombe sur un représentant des 10% restants. Des clients qui ont complétement contourné ou modifié ce qui est dans les moeurs. Attention, ce ne sont pas des clients catastrophes, qui n’ont définitivement rien compris à l’outil. Ce sont au contraire des clients qui ont sciemment ignoré une pratique commune pour répondre à un besoin spécifique incontournable.

Ces clients là poussent les outils et méthodes à leurs limites, et c’est pour cela qu’il est difficile de répondre à leurs questions de but en blanc (mais c’est souvent les questions les plus intéressantes).

Et bien à ces clients, il faut leur rappeler qu’ils sont hors du commun. D’abord pour reconnaître leur talent (c’est mérité), ensuite pour expliquer notre surprise quand on voit leur implémentation et nos temps de réaction à leurs questions, enfin pour éviter le culte du cargo pour le prochain projet…