Nitro's blog

To content | To menu | To search

Saturday 1 September 2012

Mon projet perso

Cela fait longtemps que je travaille dessus, les week-ends, dans le train, parfois le soir. 3 ans déjà je crois.

De quoi s'agit-il ? D'un algorithme de calcul de prévisions, j'y reviendrais plus en détails.

Mais pourquoi ?

La première raison est que j'ai cherché pour mon travail un logiciel ou plutôt une bibliothèque que je puisse utiliser dans le logiciel que nous développons et vendons. Le principe est dans le fond simple : à partir de données historiques sur les ventes passées, calculer une prévision des ventes futures.

De telles bibliothèques d'algorithmes existent, et nous en utilisons une, sans doute une des meilleurs. Seulement les algorithmes utilisés marchent très mal pour prévoir les ventes de produits de grande consommation.

J'avais plein d'idées sur ce qu'il fallait faire, mais sans certitude évidemment, d'autant que je ne suis pas statisticien. Il n'était pas raisonnable d'embarquer ma boite dans un projet incertain, relevant plus de la recherche que du pur développement : nous nous en somme tenu à ce qui existe.

Par ailleurs, mon boulot actuel est bien moins intellectuel qu'il ne le fût, et je manque un peu de stimuli intec'tuels.

Donc, j'ai décidé de développer moi-même ce que je ne trouvais pas sur le marché.

Alors c'est quoi ?

Concrètement, c'est une bibliothèque de programme, c'est-à-dire quelque chose qu'un développeur peut utiliser et appeler dans son programme.

C'est donc un morceau de programme, que je développe avec un outil de développement et que je teste en écrivant mes propres programmes de test.

Le principe très général est d'utiliser des informations sur des ventes passées pour deviner les ventes futures. Concrètement, les données exploitées sont :

  1. Les références à prévoir : ces références peuvent être par exemple les combinaisons article vendu x client. Ces références sont décrites par des attributs : ligne de produit, région, canal, parfum taille. Deux informations sont indispensables : les dates de début et de fin de vente des références.
  2. Les historiques de ventes : de la façon la plus générale, on va avoir des quantités vendues par jour et par référence.
  3. Des évènements : on sait que la vie est tout sauf un long fleuve tranquille et que les ventes sont perturbées par plein de choses, notamment des promotions. Il nous faut donc savoir quels événements dans le passé ont perturbé les ventes, et quels évènement déjà planifiés vont perturber les ventes futures

A partir de ces données, on va proposer des quantités (par mois, par semaine voire par jour) prévisionnelles.

La bibliothèque que je développe permet donc de décrire toutes ces données d'entrée, de spécifier ce qu'on veut comme prévisions et de lancer des gros calculs.

C'est pour quand ?

Je t'en pose des questions, moi, ami lecteur ? Ça c'est la question qu'on me pose au boulot. Là c'est pour quand ce sera prêt.

Bon. C'est en où ?

Je me suis défini environ 10 étapes majeures pour une première version. La 1ère étape est à peu près finie.

En gros, ça commence à calculouiller des choses simples. Le développement s'accélèrera à partir de cette première base solide.

But why in english ?

Bonne question. Je pars de l'idée que le sujet pourrait intéresser bien du monde (je n'exclue pas si cela fonctionne bien de commercialiser la chose). Donc in English pour le cas où quelqu'un d'autre que les 3 êtres chers qui surveillent ce blog s'intéresse à la chose.

Ohh, et puis ça vous fais pas de mal d'être obligé de lire du mauvais Anglais un peu hein.

La suite

Je vais donc régulièrement donner des nouvelles ou décrire un peu ce que je fais ici même. Je considère ça quasiment comme un journal perso de ce projet, journal auquel je donne l'accès aux intimes que ça pourrait intéresser.

Ah tiens, la définition d'un blog non ?

Tuesday 1 February 2011

Pourquoi tous mes projets sont des succès

On s'y remet avec un billet en Français, c'est quand même plus cool.

L'histoire du jour, c'est l'analyse d'une histoire de dupe, celle des succès affichés de mise en place de solutions informatiques, telles qu'on peut les lire dans la « presse spécialisée ». La presse spécialisée, tiens, ça fera l'objet d'un billet prochain, j'ai quelque short à tailler de ce côté-là.

Pourquoi une histoire de dupe alors ? C'est simple, on va faire une petite chronologie :

  1. Naissance du projet
    • Un nouveau directeur (informatique, achat, logistique, Supply Chain peu importe) est embauché pour relancer / moderniser / dynamiser. On va recruter la personne qui se sera le mieux vendu pendant les 4 heures cumulées d'entretien. Il n'y a pas d'autres façons de faire, mais ça privilégie à coup sûr la superficialité à la profondeur. Appelons-le Iznogoud, d'accord ?
    • Ce dernier, ambitieux évidemment, n'a jamais réellement occupé de poste opérationnel. En général, il a donc une vision ultra simpliste du travail, renforcée par le fait qu'ayant fait des « hautes études » de type grande école il ne doute pas et sait tout (j'en viens, hein, alors bon). Par vision simpliste, on peut résumer par : on peut tout mettre en équation, on peut optimiser la fonction, on peut tout automatiser.
    • Iznogoud va donc se lancer dans la mise en place d'un projet informatique/organisation lui permettant d'optimiser la fonction de manière spectaculaire. Il va se faire plaisir à définir les principes généraux, les bénéfices attendus, sans rentrer trop dans les détails que de toute façon il ne peut tous connaître puisqu'il vient d'arriver. Une victime un chef de projet est désigné, un jeune le plus souvent (les autres ne se font peut-être plus avoir…). Le projet commence.
  2. Mon passage préféré : la vente
    • Maintenant, on va chercher un prestataire externe, ou un éditeur de logiciel capable de fournir toutes ces fonctions merveilleuses d'automatisation et d'optimisation.
    • Comme Iznogoud est un grand et bon Vizir, il fait les choses dans les règles de l'art : cahier des charges, consultation, cabinet de conseil « change management » tout y passe. Et le cahier des charges est autant idéaliste –utopique – théorique que l'idée que s'en fait le grand chef.
    • Nous avons donc un certain nombre d'éditeurs qui vont essayer de gagner l'affaire. En mentant comme des arracheurs de dents qu'ils sont ; de toutes façons, celui qui ne met pas est exclus de la consultation car il ne répond pas aussi bien que les autres au cahier des charges
    • Le plus habile et le plus crédible est sélectionné.
  3. Déroulement du projet

  • Il est évidemment catastrophique, puisque le prestataire est incapable de fournir tout ce qu'il a promis.
  • Par ailleurs la direction de projet va manquer de pragmatisme et s'acharner à tenter de mettre en place la belle théorie de départ.
  • Quand tout va bien, les vrais utilisateurs ou experts du domaine vont être écoutés et ramener le projet vers un peu de raison.

À l'arrivée, on a une usine à gaz qui ne fait pas la moitié de ce qui a été prévu et qui était trop compliqué et qui ne fait pas bien les choses simples qui auraient pu être utiles. Mais après moult souffrances, le projet démarre quand même et est opérationnel.

C'est là que ça devient intéressant : les gens qui communiquent c'est-à-dire le prestataire / éditeur de logiciel et le Directeur Iznogoud ont tous intérêt à ce que le projet soit un grand et franc succès. C'est est donc un, avec autocongratulations, annonces et articles dans la presse pour mettre en avant les qualités du directeur les prestations du fournisseur.

Les dupes de l'histoire sont les utilisateurs, pour qui on aura dépensé bien de l'argent et de l'énergie et qu'on n'aura pas écoutés. Ils se retrouvent avec un système pénible à utiliser, lourd, peu fonctionnel et découvrent avec ébahissement à quel point tout cela fut fructueux. Mais on ne les écoute toujours pas, alors tout est pour le mieux dans le meilleur des mondes.

C'est pour ça que tous mes projets sont des succès. 

Et que j'ai parfois la nausée, mais c'est une autre histoire.