7
votes

Techniques pour garder vos projets sur la dernière version

Je travaille sur un nouveau projet et nous utilisons une jolie belle pile. NHibernate, printemps, mvc ... la liste continue.

Une chose que j'ai remarquée, c'est que, dans les 6 mois, nous avons commencé, nous avons eu une nouvelle version de NHibernate, une nouvelle version d'une boîte à outils de contrôle tiers et de Windows 7 est à l'horizon.

Nous avons eu des problèmes auparavant où être coincé sur une ancienne version d'une technologie nous a coûté chèrement, alors je me demande quelles sont des techniques que nous pourrions utiliser pour vous aider à garantir que nos transitions sur les dernières versions des choses sont aussi plus indolore possible?


0 commentaires

4 Réponses :


10
votes

Enregistrez tout simplement une priorité et une mise à niveau au fur et à mesure que vous allez. Si vous continuez à vous tenir au courant de la dernière version, il y aura moins de modifications de rupture que si vous devez mettre à jour 5 versions à la fois.

Créer peut-être une succursale et effectuez une mise à jour de test vers Betas afin que vous soyez au courant des problèmes à venir lorsque cette version RTMS (si vous utilisez Bettas vous préoccupe).


1 commentaires

La gestion des changements dans les succursales est définitivement une option.



4
votes

"Mettre à jour tôt, mettre à jour souvent"

Si vous attendez, il sera de plus en plus difficile, de manière à mettre une priorité élevée sur la mise à jour du système. Les développeurs aiment surtout être sur le bord de saignement afin qu'elles n'en dérangent pas trop, le défi majeur est de vendre cette idée à la direction.

Il est toujours bon de faire une approche étape par étape dans laquelle vous mettez à niveau un à un seul outil. Ensuite, il est également plus facile si vous devez retourner à la version plus ancienne. L'approche Big Bang est plus difficile et beaucoup de choses peuvent aller mal.

Permet d'être réaliste, chaque mise à jour vous coûtera le temps ainsi que votre équipe pour effectuer le passage à la nouvelle version de l'outillage, mais après une équipe de temps apprend à traiter avec elle et le niveau de stress lors de la commutation des versions est beaucoup moins.


2 commentaires

C'est bon en théorie, mais comment vous assurez-vous que vous n'introduisez pas de problèmes tôt et souvent?


@LOMAXX: Si vous ne testez pas la mise à niveau, vous êtes garanti pour introduire des problèmes plus tard. L'introduction de modifications fait simplement partie des tests et de l'assurance qualité. C'est facile et cela devrait faire partie de votre processus.



8
votes

Je suis d'accord avec les autres commentaires ici sur la mise à jour souvent. Si vous attendez trop longtemps, ce sera suffisant que vous le remarquerez dans la productivité du projet.

La façon dont nous le faisons est ce qui suit.

  • une personne de l'équipe, obtient la dernière version et veille à ce que tous les tests fonctionnent.
  • Cette personne la mises à niveau que quelles que soient les dll / outils doivent être mis à niveau
  • Il documente également la mise à niveau.
  • Construire tout le code apporte les modifications nécessaires pour construire
  • Exécutez tous les tests, assurez-vous qu'ils courent.
  • Test de fumée manuel de l'UI
  • Envoyer des informations au reste de l'équipe avec Doc of Upgrade
  • CheckIn / Assurez-vous qu'il construit sur Build Server

    De cette façon, nous ne perdons pas la productivité de l'équipe pendant la mise à niveau. Notez que cela serait beaucoup plus difficile sans tests d'unité.


0 commentaires

1
votes

Parler d'un point de vue de la gestion, ne mettez pas à niveau à moins d'une raison convaincante. Vous devez regarder ce que la mise à niveau apporte à votre projet. S'il n'y a pas d'avantages à la mise à niveau, ne le faites pas. De toute évidence, ce n'est pas une règle dure et rapide, mais la plupart des équipes que je sais n'ont pas le temps de passer le temps de passer des systèmes de mise à niveau sans raison, elles sont trop occupées avec les demandes de fonctionnalités et les corrections de bugs. Je recommande de travailler dans les mises à niveau sur la base suivante:

  1. la nouvelle version fonctionne [significativement] plus rapide ou plus efficacement et votre Les clients / clients verront cela amélioration ou cela réduira votre des besoins matériels immanents.
  2. Caractéristiques ont été ajoutés que vous ou votre Les clients / clients veulent et peuvent prendre [immédiat] avantage de.
  3. Amélioration de la sécurité pour une sécurité défaut qui affecte votre actuel ou Architecture future immédiate.
  4. Licence / Soutenir des raisons. Si vous êtes À la fin de votre contrat, alors vous voudra probablement faire la finale Aller à la dernière version du logiciel que vous avez droit à pendant que vous avez toujours un soutien pour le améliorer. Alternativement si vous êtes sur une telle ancienne version du logiciel que trouver la documentation de support car il est difficile, puis la mise à niveau est certainement appelé pour.
  5. un aspect du projet que vous êtes travailler sur est directement impacté par le logiciel qui pourrait être amélioré. Si vous allez déjà travailler avec elle et tester la fonctionnalité, c'est probablement un bon moment pour mettre à niveau et [probablement] ne pas ajouter de charge significative à la projet.
  6. changements majeurs. Si votre projet ou le logiciel qu'il repose sur ont subi des changements majeurs alors il est probablement un bon moment pour ajouter le Mise à jour dans votre plan de projet. Les changements majeurs impliquent un plus chemin de mise à niveau difficile et devrait être persuader sur une base planifiée plutôt que de devoir être cornée de chaussures à la dernière minute en raison d'un correctif ou d'une amélioration nécessaire.

    raisons spécifiques de ne pas mettre à niveau:

    1. Les tests de logiciels, d'installation et de régression coûte de l'argent. D'où la nécessité d'une raison convaincante de mettre à niveau.
    2. Nouveau logiciel est souvent buggy ou a une "caractéristiques" inconnues. Pour cette raison, beaucoup choisissent de rester une version derrière la dernière version.
    3. Les versions plus récentes peuvent souvent être plus lentes que les versions précédentes, celles-ci sont particulièrement vraies pour les petites mises à jour et les correctifs.
    4. problèmes de compatibilité. Mises à niveau Brisez les choses, il est préférable de sauter autant de mises à niveau supplémentaires que possible afin d'éviter les mises à jour de la compatibilité, de la compatibilité pouvant être corrigée dans la prochaine mise à jour.

      Je recommande de conserver une liste de tous les logiciels que votre projet utilise avec leur version et la date de mise à niveau (ainsi que d'autres informations importantes telles que les informations de licence, les informations de support, etc.). Évaluez chaque article de cette liste une fois par an afin de vous assurer que vous ne manquez aucune mises à jour correspondant à une raison de mettre à niveau que vous avez peut-être manqué. Les logiciels sur cette liste avec une ancienne version / date et une version plus récente disponible peuvent être suffisamment incitatifs pour convaincre la direction qu'une mise à niveau doit être effectuée.


0 commentaires