Phénoménologie des projets informatiques

Ce billet est un brouillon largement inspiré par le Lightning-talk de Benjamin Lorteau (de 30:50 à 35:26). Comme j'ai moi aussi mon lot de projets poubelles, j'ai fouillé ma corbeille afin de vous déterrer quelques pépites de projets merdiques. La vie n'étant qu'un espoir perpétuellement renouvelé j'espère mettre à jour ce billet avec de futurs nouveaux plantages. 


Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Il a de la chance ce Benjamin Lorteau, moi aussi j'aimerais bien avoir une interprète en langue des signes placée juste à ma droite deg

Je ne suis pas un mathématicien, je ne suis pas un logicien, je ne suis qu'un pathétique technicien. Comme tous les autres techniciens j'ai largement appris sur le tas. Comme tous les autres techniciens j'ai mon lot de ratages épiques.

Depuis l'explosion de la bulle internet et le succès d'Harry Potter (qui prouve que la magie est amusante, au contraire de la technologie qui est terriblement ennuyeuse) on sent comme qui dirait une baisse des vocations informatiques. Donc selon toute vraisemblance ce billet ne vous intéresse pas mais ça ne fait rien puisque je le rédige pour moi d'abord.

Petite ontologie de mes plus beaux plantages

Tant va la cruche à l'eau

C'est le fameux "j'ai oublié la conception".

On essaye de compenser avec de la motivation mais ça ne marche pas. Parce que la motivation ne remplace pas l'expérience et la compétence.

Le Frankenstein raté

 sur une suggestion de Ragnarork. Cette fois-ci j'ai écouté les injonctions des ouvrages de conception. Découper le projet en plusieurs composants indépendants communicants avec des protocoles biens définis. Chaque sortie d'un composant est une partie de l'entrée du composant suivant et le tout s'assemble comme un charme. Le hic : le dataflow ne convient pas du tout, de l'information capitale s'est perdue en cours de route parce qu'un composant en amont n'en avait "pas besoin". Du coup en aval c'est la galère pour récupérer ce qui a été "oublié" sans démanteler toute l'encapsulation.

Le lièvre et la tortue

C'est typiquement le projet de compilateur ou de système d'exploitation. Qui part de zéro, avec une équipe d'une personne, et donc qui n'arrivera jamais à rattraper les solutions plus matures déjà bien entrenchées qui ont déjà saturé le marché. De toute façon même si le projet arrivait à maturité, pendant ce temps là la valeur ajoutée se serait évadée vers un autre marché. 

Le One Shot

Le petit projet réalisé en 15 jours, simple comme du Tetris, mais qui n'a jamais de succès ni de descendance.

Le Titanic

Une merveille de beauté conceptuelle et d'élégance technique.

Moi c'était le projet OCaml-Idaho. Jusqu'à ce qu'on me demande de faire des "tests unitaires".

La solution à la recherche d'un problème

Typiquement j'ai résolu un problème algorithmiquement réputé comme étant "difficile". Il ne reste plus qu'à trouver un débouché. J'ai dans les mains une solution abstraite, mais pour quel problème concret ?

Le Phoenix

C'est le projet académique par excellence. Il n'y aura jamais aucun débouché avant le 23ième siècle. Nonobstant l'attrait intellectuel est tel qu'on y revient forcément ou qu'on y repense à chaque fois qu'on s'ennuie.

La grenouille qui voulait devenir aussi grosse que le bœuf

Une sorte de retenue m'a empêché d'avouer celle-ci. Genre : non je n'y ai pas touché, ailleurs peut être mais ici non. Et pourtant si, moi aussi je me suis fait avoir. Alors, vous allez être déçus, même pas un petit projet d'IA avec des canons lasers géants pour conquérir le monde (ouf vous l'avez échappé belle). Par contre une idée m'a effleuré un moment : le fait est que (selon mes estimations) il ne faut pas plus d'environ 300 briques distinctes pour créer un thème lego espace. De plus la conquête spatiale ça n'existe pas donc si c'est pas réaliste on s'en fiche un peu puisque ça ne ressemble à rien de connu. Par conséquent on peut faire n'importe quoi pourvu que ça tienne debout. D'où mon idée génialement naïve :

• cataloguer les volumes et les points d'assemblage pour environ 300 pièces lego "space"

• prototyper un algorithme top-down qui, à partir d'un langage de description, décomposerait un modèle en un assemblage de building-patterns

• prototyper un algorithme bottom-up qui arrangerait un tout solide et cohérent

L'erreur à la base de ce genre de projet c'est de croire qu'on l'on peut concevoir quelque chose d'intelligent sur une base 100% grammaticale. Alors qu'au contraire, tout ce qui est intelligent requière une quantité énorme de connaissances et de créativité.

Laissez un commentaire

2 Commentaires

  • C'est intéressant quelque part, d'un côté tu te vautres (je dis ça amicalement) dans l’auto-flagellation, et de l'autre tu te désoles de ne pas rencontrer de succès, ou bien que des choses sans débouchés (et donc sans apport de succès ni d'argent) sont ce qui te plaît le plus.

    Déjà, je suis désolé, mais le succès a été au rendez-vous pour Zeami's Birthday. En tout cas moi j'avais vraiment bien aimé. Mais il ne tourne que sur Windows, isn't it ? Et voilà bien la preuve que tu sais faire quelque chose de très utile (pour ceux qui aiment les jeux et la réflexion, surtout les deux liés, comme c'est le cas dans ce forum. Sauf Pololessuper, lui n'aime pas la réflexion, son plaisir c'est le Protoss Fatality).

    Je pense que plus tu t'auto-flagelleras, plus tu auras du mal à te relever de ta déprime. Si tu passes tes journées à faire quelque chose qui te plaît, c'est déjà plus que beaucoup de gens sur Terre non smile

    • Le point très positif c'est qu'aujourd'hui j'ai suffisamment d'expérience et de compétence pour éviter le Tant va la cruche à l'eau.

      Je connais également assez bien l'évolution historique de la valeur ajoutée dans l'informatique, j'ai la lucidité pour éviter Le lièvre et la tortue.

      Comme tu l'as intelligemment remarqué toutes les autres catégories ne sont pas de véritables échecs. Ce sont des demi-réussites. En fait beaucoup de personnes aimeraient bien atteindre ce stade.

      Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

      Pour ceux qui veulent "réussir" un (petit) projet je dirais que Le One Shot est un objectif raisonnable.

      Surtout si vous voulez faire un petit site web ou un petit jeu vidéo.

      Programmez le moins possible. De préférence utilisez un outil spécialisé qui vous mâche un maximum de travail. Non seulement vous gagnerez beaucoup en productivité mais en plus vous masquerez beaucoup plus facilement vos zones lacunaires.

      Dragoris a écrit :

      le succès a été au rendez-vous pour Zeami's Birthday. En tout cas moi j'avais vraiment bien aimé. Mais il ne tourne que sur Windows, isn't it ?

      Oui, il ne tourne que sous Windows. J'aurais pu le faire 100% portable avec OCaml + SDL (ou OCaml + SFML). Mais pour ce faire j'aurais dû apprendre un framework que je ne vais pas forcément réutiliser, puisque c'était un prototype. Or s'il faut étudier un framework alors ça n'est plus un One Shot, c'est un apprentissage forcément plus long. Bien sûr si j'avais pu réussir à sublimer mon prototype pour passer à une échelle supérieure avec un gameplay prenant (moins prise de tête). J'avais plus ou moins un scénario mais il aurait fallu développer énormément de graphismes et de bruitages, c'est-à-dire travailler avec une équipe, et ça m'a fait peur. Dommage, à cause de ma frilosité j'ai peut être raté une excellente opportunité.

      Quant aux autres "plantages", ne vous y trompez-pas, il faut déjà être très bon pour échouer à ce niveau là. Rater à ce stade n'est plus à la portée du débutant.

      Dragoris a écrit :

      Je pense que plus tu t'auto-flagelleras, plus tu auras du mal à te relever de ta déprime. Si tu passes tes journées à faire quelque chose qui te plaît, c'est déjà plus que beaucoup de gens sur Terre non smile

      Il y a des causes héréditaires à mes problèmes de santé. Je ne pense pas que l'on puisse les réduire à un manque d'accomplissement de soi ou à un manque de réussite sociale. C'est juste incurable. Donc oui, heureusement que j'ai des projets smile

  • C'est marrant je n'avais même pas tilté qu'Ertaï avait fait une mini-conf pendant cet évènement. Dommage, parce qu'au final, c'est très intéressant ! 

    En lisant cet article, je me rend compte aussi que mes projets tombent au final dans les catégories que tu mentionnes, voire dans d'autres du même acabit.

    Le projet de type Frankeinstein raté ? Tout les morceaux fonctionnent, tous les modules répondent aux attentes... et puis c'est le merge, et là catastrophe, ça ne s'emboite pas comme on l'avait prévu, des cas particuliers ou des choses que l'on avait pas anticipé foutent l'architecture en l'air, etc... et la motivation pour travailler là dessus tombe au fur et à mesure que l'on trouve des éléments à revoir/refaire/rustiner complètement, alors que le merge devait être la petite touche qui fait que tout marche et prenne vie....

    Je trouve ça un peu idiot, et me sens vraiment neuneu dans ces cas là, et ça m'est arrivé plusieurs fois déjà, soit en équipe, soit seul...

    • Je n'ai jamais eu un Frankenstein raté, mais ça a l'air d'être une sale bête razz

      C'est l'avantage des projets de site web, le contexte est très limité.

    • Ragnarork a écrit :

      Le projet de type Frankeinstein raté ?

      Excellente idée pouce

      Moi j'ai essayé de faire des compilateurs auto-compilants.

      Ma première tentative de compilateur c'était un Frankeinstein raté. Impossible d'emboîter l'analyse syntaxique avec la table des symboles et le générateur de code machine. Car j'avais conçu les éléments séparément ce qu'il ne faut surtout pas faire pour un compilateur. Il faut au contraire faire du bottom-up : d'abord la génération du code machine, puis la table des symboles, puis terminer par l'analyse syntaxique.

      Et bien sûr mon deuxième compilateur (réussi, auto-compilant) c'était Le lièvre et la tortue. Personne n'a jamais programmé avec.

      Dans ma grande naïveté j'ai aussi essayé le système d'exploitation, à la façon Niklaus Wirth, en Oberon 2. Bien sûr personne n'a jamais développé aucune application, d'où Le lièvre et la tortue (ou la poule et l'œuf).

    • Haha ! Le compilateur est typiquement le type de projet auquel je pensais pour le Frankeinstein raté.

      Personnellement, j'avais participé au développement d'un petit compilateur (pour un langage simplifié, générant de l'assembleur simplifié), sur la partie de génération du code. J'étais très content de ce que j'avais réussi à faire. Je pouvais construire à la main des tables de symboles et un arbre syntaxique, lui passer, et ça marchait. Problème, quand on a merge avec les autres bouts, mon générateur se comportait mal dans certains cas, et de bricolage en bricolage, fallait presque tout refaire razz

Laissez un commentaire

Vous devez être connecté pour commenter sur le Refuge. Identifiez-vous maintenant ou inscrivez-vous !