Windows confidentiel Dernière Chicken Archivage

Raymond Chen

Comme un projet winds vers le bas, l'équipe joue souvent un jeu informel appelé Chicken archivage précédent. Dans ce jeu, équipes "concurrence » afin d'éviter est responsable de la dernière modification du produit la mesure où, en principe, si elle n'étaient pas pour votre bogue, le projet peut avoir expédiées un jour plus tôt. (Cela est rarement vrai en fait, mais il s'agit, néanmoins, la raison pour le jeu.) Sur la concurrence est purement virtuelle — personne ne conserve réellement score, et le vainqueur est bientôt oublié.

Sauf si vous êtes que gagnant.

Un des membres supérieurs de l'équipe Windows accepté pour moi qu'il gagné la partie deux fois dans une ligne retour dans les jours de Windows antérieures. La deuxième fois a été particulièrement remarquable, car la modification a été effectuée après que la production a déjà commencé. L'exécution de toute production devait être rappelé et redémarré.

Une tentative de rendre trois dans une ligne a été thwarted, cependant. La troisième tentative terminée des cours de l'archivage avant-dernière plutôt que la dernière. L'archivage final a été effectuée par une autre de mes collègues qui non seulement apportées l'archivage final à Windows 2000 mais alors démarré une nouvelle dynasty en également le dernier archivage pour Windows XP.

Parmi les ironies du jeu de dernier archivage Chicken est : il est souvent les personnes qui ont leur acte ensemble (et, par conséquent, les personnes vous moins Imaginez) qui finissent winning. C'est parce que leur code est inférieure, vous. En raison de bien préparé, elles sont dans une position beaucoup mieux pour que cette dernière Archivage, même s'il n'est pas dans un composant pour lesquelles ils ont normalement responsabilité.

Effectuer un archivage en retard est un principales undertaking parce que la isolation qui sépare généralement le développeur de l'organigramme principal n'est plus il. Dans des circonstances normales, un archivage va comme suit :

  • Vous apporter l'archivage à votre sous-projet.
  • Laboratoire de génération le sous-projet churns sur la modification nuit et génère une version le matin.
  • Équipe de test le sous-projet pores sur le code pour une semaine ou plus avant de donner le OK pour imprimer le chèque-de à diffuser le tronc.

Faire de cette manière, il est plus probable que si vous avez apporté des erreurs, elles sont obtenir interceptées avant qu'ils deviennent une partie officiel du projet. Des sous-projets sont volumineux qu'elles s'appliquent de manière ce principe récursive création sub-subprojects vérifier leurs modifications indépendamment avant qu'ils sont publiées au sous-projet supérieur à laquelle ils appartiennent.

Mais lorsque vous êtes dans le endgame projet l'équipe de gestion version décide à prendre votre correctif, l'horloge est ticking et il n'y a aucune heure de la multi-week leisurely ne modifier le processus de vérification. Dispersés tout au long du projet sont les développeurs qui régulièrement générez le projet entier (pas uniquement leur sous-projet) de la création de nettoyer complètement à la création d'images disque sur un serveur version privée et vérification de créer des contraintes sont satisfaites. (Par exemple, une des choses que leur faire est Assurez-vous que l'image du CD-ROM n'est pas trop long pour tenir sur un CD!)

Si une équipe trouve dans une situation où il souhaite apporter une dernière minute Archivage, il est généralement sembler à n'importe quel membre d'équipe est bien préparée — si n'est pas tel qu'une personne, l'équipe de s'inscrire puis l'aide d'une personne de équipe proche qui est bien préparée.

Maintenant une petite partie de Cyrano a lieu. L'équipe fournit la modification pour le développeur well-prepared et le développeur crée les images disque, vérifie les contraintes de génération et puis pointe l'équipe de test vers le serveur version privée. Si l'équipe de test se produit pour rechercher un problème, l'équipe de développement est fourni avec un nouveau correctif et remet pour le développeur well-prepared, qui redémarre le cycle.

En d'autres termes, le développeur well-prepared agit comme un laboratoire de génération virtuel one-man de cette équipe. Une fois que tout le monde est satisfait, le développeur well-prepared permet l'archivage. C'est pourquoi les personnes qui ne well-prepared finissent exprimant la partie de la dernière Chicken Archivage. C'est pas car ils sont sur le point de raccordement à un problème mais car ils sont prêts à vous aider à ceux qui sont sur le point de raccordement.

De Raymond Chen Site Web, Old New Thing, et livre libellée identique (Addison-Wesley, 2007) gérer Windows l'historique, programmation Win32 et Eclatement de café machines.