doper le développeur avec du logiciel

En réalité, ce qu’on perdait de vue c’est que cela serait vraiment pratique de pouvoir comparer les montant des factures à l’ancienne avec nos nouvelles factures avec un seul clic de souris. Si on avait ça, on le ferait tous les jours. C’est parce que, justement, examiner les listings était pénible qu’on le faisait pas tous les jours.

Je me plais à dire que, dans notre métier, la programmation en tant que telle n’est ni une étape du processus, ni une activité. Elle est là à toutes les étapes : préparation, conception, test, amélioration. Si on devait la définir par une abstraction dans le processus ça serait celle ci : « Contexte ». C’est une erreur conceptuelle très courante dans les processus préfabriqués que de considérer la programmation comme une étape.

Nous sommes actuellement en phase de test intensif avant déploiement. C’est une étape plus ou moins critique selon le projet, et pour ce projet-ci, elle est très critique. Nous sommes en train de migrer l’un des plus importants grossistes en pharmaceutiques vers un nouveau système d’information intégré.

La difficulté dans ce genre de projets est toujours la même et peut se résumer à cette phrase du client : « n’oubliez pas que <nom de l’ancienne application> marche très bien depuis <nombre d’années supérieur à 10>« . Quelle que soit la définition du client pour « marche très bien » et quelque soit sa perception de son bon fonctionnement, le contrat est là : il faut qu’on remplace une application qui marche par une application qui ne marche pas encore.

Concevoir des tests n’est pas toujours chose aisée : une fois qu’on sait ce qu’il faut tester et combien, le « comment? » demande souvent des masses de créativité ou de ressources. L’avantage d’avoir une ancienne application comme étalon, c’est que justement, toute une classe de tests devient évidente : beaucoup de fonctionnalités doivent fonctionner EXACTEMENT comme l’ancienne application.

Hassen était aux prises avec des listings contenant des centaines de factures issues de l’ancienne application. Le but était d’identifier les différences entre les nouvelles factures et les anciennes. et jusque là la seule manière de faire que nous avions trouvée c’est de comparer manuellement les montants (des centaines, je rappelle). J’ai regardé Hassen faire ça pendant quelques jours, puis j’ai eu l’inspiration. J’avais pas encore une idée, juste une piste : si ce vieux logiciel DOS pouvait imprimer sur une feuille, on pouvait le faire imprimer dans un fichier.

J’avais l’idée, mais je ne savais pas encore comment j’allais faire, ni combien de temps ça allait prendre et surtout je n’avais pas le temps. A ce moment là Bechir était venu à la rescousse de Hassen, ils faisaient ça en XP, alors je leurs ai proposé l’idée. Nous avons réévalué les taches de la semaine ensemble et avons estimé que cela ne valait pas la peine. Dans ces moments là, on a souvent la hantise du YAGNI : après tout, on ne va pas examiner les listings des factures tous les jours. Une fois que c’est fait, c’est terminé.

En réalité, ce qu’on perdait de vue c’est que cela serait vraiment pratique de pouvoir comparer les montant des factures à l’ancienne avec nos nouvelles factures avec un seul clic de souris. Si on avait ça, on le ferait tous les jours. C’est parce que, justement, examiner les listings était pénible qu’on le fait pas tous les jours.

J’avais laissé la porte ouverte, disant : « si vous sentez que ça va vous aider, je le fais ». Ils ont fini par me demander de le faire. ça m’a pris quelques jours pour essayer différentes solutions qui n’ont pas marché et pour trouver la solution qui marche : j’ai installé dosemu sur un vieux poste linux, je l’ai configuré pour envoyer tout ce qui était destiné à l’imprimante dans un fichier texte accessible sur le réseau et j’ai installé la vieille application dessus. J’ai même pris la peine d’écrire un peu de code pour transformer les listings malpropres en fichiers CSV parfaitement acceptables pour notre base de données.

Nous ne fûmes pas déçus. Avec le recul, maintenant on est sur qu’on y serait jamais arrivé sans avoir fait cela. La morale de cette histoire c’est : donnez du pouvoir à l’équipe, ce n’est jamais une perte de temps. Faites comme Abraham Lincoln , si vous avez 8 heures pour couper un arbre, passez 6 heures à aiguiser votre hache. ça vaut la peine.

5 comments so far

  1. […] vous le savez déjà nous sommes en train de développer un Progiciel de Gestion Intégré (PGI) pour un grossiste en pharmaceutiques en Tunisie. L’activité de grossiste pharmaceutique est très particulière pour deux raisons […]

  2. Trinoo on

    C’est assez amusant de suivre cette saga, D’après ce que j’ai compris, il s’agit de migrer vers un ERP depuis qui semble être une application DBASE.

    Après avoir passé 10ans à travailler sur l’ancienne application pauvre en ergonomie, penses-tu que les clients en générale, préfèrent ne rien changer à leurs habitudes plutôt que de changer de méthode pour améliorer le rendement ?

    Il est amusant de voir toujours les adeptes du clavier VS. les adeptes de la souris.
    Ceux qui travaillent sur Windows ne comprendront jamais ce que fait un Linuxien avec son Terminal.

    Je trouve que la combinaison des deux est encore plus interessante : les photoshopistes : combinaison à 4 touches avec des clics de souris.

    Je me rappelle d’avoir eu un cas similaire pour comparer des résultats de sortie; J’ai utilisé un template pour le nouveau système afin d’avoir le même format de sortie que l’ancien. Après j’ai utilisé FileMerge fournie avec XCode pour la comparaison, il y aussi Diff Doc pour Windows.

    J’ai pensé à effectuer un hachage en SHA-1 afin de comparer les chaines Hexadéciales. Ca m’aurait donné juste la réponse (differents/semblables) sans pouvoir localiser la différence dans le fichier…

    Enfin! (allez vas y man!, tes commentaires sont très lourd..!!!), en ce qui concerne les tests avant la migration pour ne pas avoir de surprises, j’utilise RSpec; j’édite mes tests en même temps que je tape mon code.

  3. slim on

    c’est pire que le sacro saint dbase+clipper : c’est une application basic avec un SGBD homebrew (fichiers texte + index).

    Malgré cela, le client te dit : « on n’a aucun problème avec l’ancien logiciel ». Quand tu prend la peine de faire un audit, tu découvre qu’il y a des problèmes tous les jours (tous les jours!). Seulement toute l’entreprise s’est adaptée au logiciel et des procédures pour pallier à toutes les défaillances ont été mises en place et maitrisées. Ce qui correspond bien à une des définitions de « aucun problème », mais met tout nouveau logiciel en défaut par rapport à l’ancien.

  4. Trinoo on

    l’accessibilite, l’ergonomie ,les vieilles habitudes du client et sa vision d’une application de gestion est un vrai dilemme.
    Faut il faire une etudes sur le profil du client avant de commencer quoi que ce soit ?
    Generalement les patrons qui veulent toujours avoir le dernier mot, meme si ils sont depasses de loin dans certains domaines, mettent en peril leurs entreprises. Mais ca, c’est une autre histoire.
    Souvent les clients qui demandent une solution informatique ne savent pas ce qu’ils veulent, Ils attendent de voir des propositions pour choisir ce qu’ils trouvent de plus familier a leur experience. Et finalement ils se retrouvent a rebatir la meme application sans rien gagner en performance. C’est le probleme avec leur vision limitee et travail en monotonie.
    Je trouve ca frustrant pour un developpeur ou bien une entreprise qui observent les nouvelles techno sans pouvoir les integrer pour ses clients.

  5. […] serait facile a trouver au début,… à 1h du matin on était encore au bureau. Et vous savez le PC DOS virtualisé qu’on avait mis en place il y a presque 1 an pour convertir les listings…? Eh bien, il nous a encore sauvé la vie. Après inspection minutieuse, il y avait au moins une […]


Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :