-->

Reprendre un développement

| 4 Commentaires

Aujourd’hui je reprend un projet Papervision, qui tourne bien au début, mais qui devient extrêmement gourmand au bout de plusieurs minutes de navigation… En soit rien d’exceptionnel pour en faire un post, sauf que ce projet a un passif assez chargé…

Je m’explique : 3 développeurs Flash consécutifs, ( 2 free et moi même ), plusieurs développeurs PHP, mais ce n’est pas sur quoi j’écris aujourd’hui, et presque autant de méthode de développement..
Voici l’historique du projet :

1. N’ayant pas de ressources libre en interne, un développeur Flash freelance commence le projet en utilisant le framework PureMVC et le moteur 3D Papervision. Etant prévu pour livré le projet, aucune interrogation n’avait été faite sur les compétences nécessaires pour reprendre le projet « au cas ou »… et bien sur, le « au cas ou » est apparu, le projet a pris du retard, et le freelance n’avait plus de disponibilité pour terminer le projet…

2. Ayant déjà travailler sur PureMVC sur un précédent projet, j’ai donc été « nommé » pour terminer le projet, tant bien que mal, l’utilisation du framework n’étant pas, selon moi, judicieux. Comme disait une ancienne prof, « Ca ne sert à rien d’utiliser Dreamweaver, quand on peu codé une page simple en HTML dans notepad », dans le cas présent, elle n’aurait pas au tort, le temps de reprise du projet et la gestion bancale faite n’était pas de mon côté. J’ai malgré tout avancé, avec toutes ces contraintes, et une fois de plus, le « au cas ou » est survenu, un autre projet, plus important, arrivait en phase critique et j’ai été débarquer du projet…

3. Un nouveau freelance est alors intervenu, mais n’ayant aucune connaissance en PureMVC décida, ou imposa, suivant le point de vue, de tout refaire à zéro, alors que la deadline approchait dangereusement.

Vient donc la question : Faut-il mieux reprendre un développement « From Scratch » (comme on dit dans le métier, c’est à la mode en ce moment…) à sa manière, au risque de ne pas voir les petites subtilités graphiques, et de passer à côté de quelque choses, ou alors faut-il « perdre » (même si ca n’est pas le cas) du temps à rentrer dans le code, comprendre son fonctionnement, et être confronter à des problèmes qui n’avait pas été prévu… Bien sur le prbolème ne se pose que quand on a encore du temps, si ce n’est pas le cas, on fait avec ce qu’on a…

Le fait est que le site a été livré, le 2° freelance a réussi son pari de repartir de zéro From Scratch et a livré non sans mal (souvenez vous, les subtilités graphiques ;) ) une version définitive du site. Revenons maintenant à la question précédente, ce n’est pas dans mon état d’esprit « d’abdiquer » sur un code source difficile a aborder, et c’est pourquoi j’avais décider de continuer le travail du 1° freelance, plutot que de repartir de zéro, malgré l’utilisation du framework mal adapté, selon moi. et lorsque j’ai vu le résultat du 2° freelance, je me suis dit que j’aurais peut être du faire la même chose, repartir de zéro…

Aujourd’hui, alors que la livraison a été effectué il y a plusieurs mois, le problème de performance revient sur le tapis, et je suis donc ré-affecté à ce projet, et là « c’est le drame », alors que j’avais abandonné un projet AS3/PureMVC/Papervision, je me retrouve sur un projet Papervision/AS3 codé en frame, en multi-calques, en timeline, et malgré tout, quelques classes (ouf). C’est a ce moment là que le titre du post m’est venu… Et que je me suis reposé la question du Reprendre/Repartir de zéro. Si on me posait la question maintenant je répondrais que je préférerais reprendre la 1° version du site ( PureMVC ) que la seconde ( Timeline & Cie ), malheureusement pour moi, je bosse sur la 2°… Et qu’est ce que je fais ? je repars de cette version, je l’améliore, j’externalise le code, j’essaye d’être aussi claire et logique que possible, « au cas ou » une tierce personne devrait reprendre ce site, en espérant qu’elle ne retrouve pas les obstacles que j’ai rencontrés…

La solution du 2° freelance me semble la solution de la facilité, et de la non remise en question, surtout sur un projet extrêmement carré, auquel il aurait eu pas mal à apprendre, si seulement il ne s’était pas arrêté à la complexité apparente… Cela fait maintenant presque 8 ans que je fais du Flash, et je crois pouvoir dire sans trop me tromper, que reprendre du code d’autre développeurs a été l’occasion pour chaque développeur d’apprendre énormément et d’évoluer vers un meilleur niveau de code, et se remettre en question sur nos habitudes, parfois mauvaise, surtout au début… Quel serait le niveau d’un développeur qui resterait enfermé dans son code, sans apprendre / aider sur forum, reprendre le code d’un développeur… ?

4 Commentaires

  1. Bonjour,
    Plusieurs choses sont possibles…
    Je suis dans se cas en se moment, un client à fait son site tout seul sur 7 ou 8 ans, il n’est pas développeur de métier et à réussit à faire quelque chose qui selon lui convient à 70%.
    Il souhaite donc prendre quelqu’un pour finir les 30% qu’il n’arrive pas.

    Manque de bol, je suis absolument contre le fait de reprendre le code déjà fait, d’une parce que la personne n’est pas développeur de métier et j’ai peur de signer un contrat interminable, et de deux parce que la technologie à beaucoup évolué depuis 7 ans.

    Le deuxième point me permet d’appuyer le premier, en effet j’ai comme argument principal, que grâce à l’évolution technologique et la maturation de Flex, le site peut être refait from scratch en deux semaines contrairement aux 4 mois estimé par le client.

    Mais ton cas est différent, tu n’as surement pas vraiment le choix de dire non, et le projet n’est pas vieux du tout. De plus, les personnes qui ont payées n’aiment pas bien entendre qu’elles ont payées pour de la crotte…

    Il est donc très délicat de choisir.
    L’avantage d’être free-lance, c’est de pouvoir dire « je le vois comme sa et pas autrement, si vous êtes pas contant tant pis on ne se revoit plus et no soucis ». Mais lorsque l’on choisit, il ne faut pas se tromper et il faut faire confiance à son expérience et son nez..

    L’avantage d’être salarié, on peut se reposer sur sa hiérarchie pour déléguer ses choix en expliquant correctement le pourquoi du comment (dans le cas où l’entreprise est ouverte et capable de comprendre ce que l’on dit).

    En tout cas, remettre le travail d’autrui en cause n’est jamais facile. Surtout lorsque l’on n’a pas beaucoup d’expérience, ce qui ne semble pas être ton cas.

  2. En effet chaque projet est différent, et dans ton cas, il semble clair que tu as tout intérêt à repartir de zéro, et le client aussi, ça évitera des semaines inutiles de boulot, et une maintenance bancale. Il n’y a aucun intérêt à continuer sur un code obsolète, tu vas dans l’évolution de la technologie et pas dans le sens inverse ( comme le projet que je site plus haut ), c’est bien ce que je reproche au 2° free, repartir de zéro, mais avoir des méthodes de développement valable en AS2, avec des copier/coller de codes dans des MC, des variables globales… bref, pas joli joli.
    Dans un sens c’est intéressant de reprendre et cleaner, faire un travail d’optimisation, mais 3 développeurs Flash consécutifs pour 3 versions définitives, je me dis qu’il y a comme un problème :D
    Pour résumer dans ton cas, c’est du nécessaire, dans le mien, c’est du temps de gâcher si le 2° avait été driver comme il faut…

  3. Salut!

    « les personnes qui ont payées n’aiment pas bien entendre qu’elles ont payées pour de la crotte… »
    Certain clients sont habitués maintenant :D

    « L’avantage d’être salarié, on peut se reposer sur sa hiérarchie pour déléguer ses choix… »
    Ha la blague! :D Alors Vince t’as hierarchie? Ca va? ils assument les choix techniques?

    Trève de plaisanterie.
    Tu as plusieurs options. De combien de temps as tu besoin pour appliquer une architecture classique à ce que tu as récupéré? (mettre ta timeline dans des classes)
    En fonction de ca tu peux déjà voir si une reprise du code existant est possible et judicieuse.
    Le code est il commenté?
    Es tu en accord avec la logique de construction?
    Comprends tu lorsque tu vois une function la ou le developpeur voulait en venir?
    Son but te parait il logique?
    Sa constrution appropriée?

    Repartir de zéro implique toujours le même problème. A la fin du projet auras tu encore assez de temps pour la redaction d’un doc d’exploitation? Si non le problème se reposera à l’identique au prochain developpeur sur le projet.

    Si tu fait un depart vierge rien ne t’empeche de decortiquer par la suite l’ancien projet pour apprendre. Voir de le faire au fur et a mesure pour comparer ta conception d’un module avec celle de l’autre dev afin de comparer, ameliorer, ou même reprendre ce qui a été fait si cela te semble plus judicieux que ce que tu as fait.

    Tu dois avec les infos que tu as prendre un decision avec comme parametre le temps, le cout, la probabilite de reussite, la performance finale, la maintenance futur.

    Bonne chance et biz aux ex collegues.
    Yann.

  4. Thanks for sharing. What a pleusare to read!

Laisser un commentaire

Champs Requis *.

*


Seo