IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Documenter un projet que l'on a repris avant de commencer


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 218
    Points : 1 437
    Points
    1 437
    Par défaut Documenter un projet que l'on a repris avant de commencer
    Bonjour,

    Il s'agit de reprendre une application informatique développée par une autre agence et que le client a rompu le contrat de maintenance. Il faut bien alors prendre main le code et la structure des fichiers et de la base de données. Pour information, il s'agit d'un gros site-application PHP.

    Comment bien procéder?
    Comment documenter le code et la structure de la base de données? En fait, on fonctionne comme ça, il faut tout documenter pour que tous les développeurs de l'agence pourront prendre le projet au cas où l'un de nous est en congé ou ne travaille plus là-bas.
    Quels outils utilisez-vous? Pour moi juste Word et Excel où je liste les fonctions de chaque modèle et les rôles de chaque table de la BD.

    Merci d'avance!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Chaque projet est différent, c'est le problème. J'ai été confronté à une problématique similaire(appli interne obsolète et illisible, à remplacer par quelque chose qui soit maintenable), et au final, il y a trop de cas particulier pour qu'un autre langage que le langage humain soit pertinent, je crois.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Durant une phase de migration, il est bon de savoir quel est l'état du produit. Je commencerai par des relectures de la documentation (spécifications, conceptions, plans de test). Et ainsi voir déjà si le socle est cohérent.
    Parallèlement, il faut être capable de remonter l'environnement de développement et les environnements de tests. De même que la reconstruction des packages de livraison et le déploiement en mode "from scratch" et "update".
    Ensuite, on peut éventuellement regarder les dernières demandes de modifications et comment elles ont été traitées (échanges, analyses, négociations, codage, test, retours).
    Faire également un état des lieux des points de l'outil de suivi (bugzilla, mantis, trac, etc.). Ca permet de voir les évolutions à venir et les bugs connus.
    S'il y a du temps (mais peu probable), je commencerai à faire des campagnes de tests (si l'état du plan de test est suffisant).

    En conclusion de tout ça, je rédigerai un document (et/ou une matrice) qui trace les éventuelles difficultés, les actions préventives et correctives, ainsi que les risques. Cela pouvant conclure à un no-go, et les actions devront être menées (et éventuellement commandées par le client suivant négociation) avant d'entamer toute activité sur le produit.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 218
    Points : 1 437
    Points
    1 437
    Par défaut
    Ok mais là je parle d'un projet où il ne reste plus qu'un petit cahier des charges et un simple manuel de l'utilisateur. Le client nous le livre comme ça avec les spécifications de sa nouvelle demande.

    A nous de comprendre le code qui est peu commenté et sans autres documentations!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Citation Envoyé par randriano Voir le message
    Ok mais là je parle d'un projet où il ne reste plus qu'un petit cahier des charges et un simple manuel de l'utilisateur. Le client nous le livre comme ça avec les spécifications de sa nouvelle demande.

    A nous de comprendre le code qui est peu commenté et sans autres documentations!
    Nemek a pointé quelquechose qui, je le crois, peut vous être utile : un outillage de comparaison. Il vous faut créér, d'une manière ou d'une autre, un outil automatique qui liste les différences entre l'ancienne et la nouvelle version. Sinon, vous allez faire des milliards de regressions sans même les vois.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  6. #6
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut
    Créer une suite de tests automatisés s'il n'y en a pas déjà une peut être un bon moyen de 1/ comprendre le code 2/ le documenter et 3/ s'assurer qu'il y aura le moins de régressions possibles quand on développera des corrections / évolutions.

    Un livre intéressant sur le sujet : http://www.amazon.com/Working-Effect...ds=legacy+code

  7. #7
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par randriano Voir le message
    Ok mais là je parle d'un projet où il ne reste plus qu'un petit cahier des charges et un simple manuel de l'utilisateur. Le client nous le livre comme ça avec les spécifications de sa nouvelle demande.

    A nous de comprendre le code qui est peu commenté et sans autres documentations!
    Si vous appliquez les principes que j'ai énoncé, cela résulte d'un no-go car trop de risques. Et l'action sera de mettre les choses à plat et rédiger en parallèle un plan de test de non-régression ET une spécification associée.

    Bien sûr il faudra négocier en tenant compte des risques que prennent chacune des parties. Par exemple, s'ils acceptent pas du tout ou en partie, vous devrez "sur-chiffrer" toutes futures activités en appliquant un coefficient de risque et en chiffrant ces activités de remise à plat au fur et à mesure des corrections et des évolutions.

    Je pense qu'il serait également bon de prévoir au moins pendant une période des feedbacks rapides en effectuant une grande quantité de livraisons intermédiaires.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par randriano Voir le message
    Quels outils utilisez-vous? Pour moi juste Word et Excel où je liste les fonctions de chaque modèle et les rôles de chaque table de la BD.
    Tu peux agrémenter ça d'un organigramme. Rien de bien compliqué, mais avec Word par exemple et la fonction de dessin.

    Pour une grosse appli SNCF il y a 4 ans j'ai fais ça pour le coeur.. Tu peux faire un organigramme détaillé, puis en sortir un de plus haut niveau. En utilisan quelques couleurs.

    Ensuite d'une part tu l'imprimes (par une imprimerie ou un CopyCenter, enfin un truc où tu peux avoir le format maximum de papier (double A3 par exemple)) , et tu peux l'inclure dans le Wiki interne..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/02/2008, 20h13
  2. Documenter un projet Compact Framework 2.0
    Par Luke58 dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 11/06/2007, 13h59
  3. Documenter un projet Web avant de la transférer
    Par EvilAngel dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 01/09/2006, 13h39
  4. [VB6]Documenter un projet
    Par BenjaminV dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/02/2006, 19h57
  5. Réponses: 5
    Dernier message: 27/05/2004, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo