Projet gelé - que dois-je laisser aux gens après moi?


14

Donc, le projet sur lequel je travaille va maintenant être gelé indéfiniment. Il est possible que si et quand le projet se dégèle à nouveau, il ne sera pas attribué à moi ou à quelqu'un de l'équipe actuelle. En fait, nous avons hérité du projet après qu'il ait été gelé auparavant, mais l'équipe précédente n'a rien laissé pour nous aider à comprendre même les besoins de base du projet, nous avons donc perdu beaucoup de temps à bien le connaître. Ma question est: que pensez-vous que nous devrions faire pour aider les personnes qui nous suivent à mieux comprendre les besoins du projet, ce que nous avons fait, pourquoi nous l'avons fait, etc. Je suis ouvert à d'autres idées sur les raisons pour lesquelles nous devrions partir quelques pistes aux autres qui travailleront également sur ce projet.

Quelques mesures que nous avons déjà prises:

  • documentation technique (pas complète mais au moins il y en a);
  • historique du système de contrôle des sources;
  • des estimations sur quelles parties du projet doivent être améliorées et pourquoi nous le pensons;
  • tas de tests unitaires.
  • suivi des problèmes avec tous les tickets que nous avons créés ( EDIT )

Que pensez-vous de ce que nous avons déjà préparé et que pouvons-nous faire d'autre?


2
envisager une liste de tickets facile à récupérer dans tracker problème lié au projet
gnat

1
Autant de «Pourquoi?» Ont répondu dans README.TXT avec les sources du projet que possible.

@gnat merci pour l'idée. Cela m'a rappelé que j'avais oublié de le mentionner. Nous utilisons Issue-Tracker avec tous les tickets. Je vais l'ajouter à la liste.
nyxz

1
Je verse une seule larme de solidarité pour votre base de code abandonnée. zdnet.com/blog/projectfailures/…
Ben DeMott

Réponses:


9

Quelques autres choses à considérer

  • La structure du répertoire du projet est-elle saine? Avez-vous révisé les commentaires du code? Le journal de validation est-il présentable d'une manière ou d'une autre?
  • Vue d'ensemble de l'objectif général (par opposition à technique, que vous avez commencé), lecture conseillée sur le projet, historique du projet (son cycle de développement, chefs de projet précédents, liste du personnel, exigences / spécification des fonctionnalités)
  • Diagrammes UML, diagrammes de classes, diagrammes de flux de travail!
  • Les raisons pour lesquelles le projet a été gelé sont toujours agréables.
  • Environnement de développement, IDE qui ont été utilisés, outils de construction, ceux-ci sont couverts dans les documents techniques, non?

Je viens de penser à certaines des choses que j'aurais aimé voir sur un projet dont j'ai récemment hérité. Ce que vous avez déjà fourni est bien plus que ce que j'ai obtenu. Vous recevrez des points de karma majeurs pour aider la prochaine équipe à sortir :)


8

Les choses que j'aimerais avoir lors de la prise en charge d'un projet que quelqu'un d'autre a déposé sont:

Créez des instructions, y compris les dernières versions de travail connues de tous les outils de la chaîne d'outils. Les compilateurs, les IDE, etc. changent au fil du temps, et il est beaucoup plus facile de travailler avec si les développeurs précédents me laissent des instructions sur la façon d'être opérationnel.

Exécuter les instructions d'environnement - qu'est-ce qui doit être en place pour exécuter cette chose? Une mention de quelles versions est à nouveau utile. J'ai récemment ramassé quelque chose qui nécessitait qu'un certain ensemble de fichiers se trouve à un certain endroit, et j'ai dû aller interroger les autres développeurs pour le comprendre. Ce n'était pas grave depuis que l'autre développeur était disponible, mais s'il ne l'avait pas été, cela aurait été problématique.

Une certaine assurance que le code validé dans le référentiel procède réellement à l'extraction et à la génération. Une fois, j'ai choisi un projet où les développeurs précédents (heureusement toujours là) avaient fait des choses vraiment étranges avec les Makefiles de telle sorte que vous ne pouviez pas construire le projet à partir d'une caisse propre. Inutile de dire que j'ai d'abord dû rectifier cela avant de pouvoir faire un travail. Si les développeurs précédents n'avaient pas été disponibles, il aurait peut-être fallu beaucoup plus de temps pour surmonter cet obstacle.

Une déclaration générale de l'intention du projet. À quoi sert ce logiciel? Aussi court que raisonnable, mais un aperçu peut être très utile.


+1 pour la chaîne d'outils complète. Toute la documentation dans le monde n'aidera pas si vous ne pouvez pas construire et tester le logiciel. Lorsque cela est possible, j'aime inclure les images d'installation de tous les outils (bien que de nos jours j'opterais probablement pour une image de machine virtuelle en quelque sorte). Rien de pire que de découvrir le processus de construction dépend d'un plug-in tiers d'une entreprise qui n'existe plus!
TMN

@TMN - et c'est pourquoi j'ai tendance à éviter les choses comme les plugins IDE commerciaux et ainsi de suite. Je ne pense pas pouvoir reproduire mon environnement plus tard. Et après avoir travaillé sur des logiciels de plus de 20 ans, je ne présume JAMAIS que quoi que ce soit disparaisse.
Michael Kohne

4

Un ScreenCast

Quand j'ai quitté mon dernier emploi, j'ai fait des screencasts non édités qui, d'après ce que j'ai entendu, ont été très utiles pour intégrer de nouvelles personnes. J'ai emmené mon équipe dans une pièce, installé un micro à condensateur et leur ai expliqué tout ce que je savais sur le projet pendant l'enregistrement audio et l'écran. Ensuite, je les laisse me poser des questions à ce sujet. Nous avons pu enregistrer beaucoup plus d'informations que nous le pouvions si je m'asseyais et essayais de taper aussi vite que possible toute la journée.


+1 C'est tellement simple, mais c'est tellement logique.
lwm

2

Si vous êtes au courant des informations, ajoutez des exigences commerciales.

  1. Que voulait le client?
  2. Comment les changements ont-ils facilité cela?
  3. Quels étaient ou sont certains des défis rencontrés pour répondre aux besoins des clients?
  4. Quels besoins n'ont pas été satisfaits et pourquoi?

1

Une image de machine virtuelle (c'est-à-dire vm-ware) d'un système de développement autonome peut être très utile.

L'année dernière, on m'a demandé de corriger du code vb3. Il était assez difficile de recréer un système en cours d'exécution avec vb3, windows95 et beaucoup de contrôleurs olé installés. Après une semaine, j'ai abandonné :-(

[Mise à jour] Quelqu'un a-t-il déjà essayé de convertir d'anciennes images de machine virtuelle afin qu'elles puissent être lues dans un lecteur de machine virtuelle plus récent?

Vous devez également considérer qu'il pourrait ne plus être possible d'exécuter une image très ancienne sur un système d'exploitation matériel / invité moderne.


Pensez à ouvrir une nouvelle question sur la mise à niveau des machines virtuelles.

@ Thorbjørn Ravn Andersen. Vous avez raison. J'ai reformulé la dernière partie de ma réponse.
k3b
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.