La vie secrète de Windows : Relevé des empreintes digitales

La dernière personne à toucher un segment de code est tenu responsable de son bon fonctionnement.

Raymond Chen

Développement de logiciels est un droit non écrit : La dernière personne à faire un changement à une ligne de code devient ipso facto responsable de tout problème remonte à cette ligne de code. Même si tous vous avez fait a été d'insérer un espace après une virgule ou de corriger l'orthographe d'une variable locale, vos empreintes sont sur le code. Quand quelque chose va mal, la police de code viendra frapper à votre porte.

La plupart des systèmes de contrôle de code source disposent d'un outil qui identifie automatiquement la dernière personne à apporter une modification à un fichier. Il peut également générer une liste de fichier où chaque ligne de code est annoté avec le nom de la personne qui a modifié le code.

Dans certains projets, il pourrait être une fonction ou une composante qui est donc problématiques personnes évitent de faire des modifications si possible. Ils craignent d'avoir leurs empreintes sur elle auront eux mis sur la sellette pour le balayage des problèmes finalement remonter à ce code.

Si longtemps

Un de mes collègues précédents a pris cette tradition de blâmer instinctivement les défauts sur la dernière personne à toucher un fichier et il sert de base pour une blague d'adieu. Comme son acte final avant de quitter l'équipe pour rejoindre un autre projet au sein de Microsoft, il a commis un changement qui s'étend sur à travers des centaines de fichiers. Il a touché tous les fichiers de tous les composants critiques.

Le commentaire associé à cette validation changement massif avait le titre de « Convertir au format Unicode large. » Dans les commentaires de détail copieux, il s'est excusé qu'il était « capable de convertir une grande partie du projet, mais pas tous. » Le commentaire explique le code nécessaire pour modifier tout au long du projet pour finir le travail. Il a également noté quelques « astuces » qui pourraient être rencontrées.

Plus vous lisez les commentaires, plus vous vous êtes demandé quel genre d'aliénation mentale qu'il vivait. Le commentaire discute des modifications à certaines constantes fondamentales comme MAX_PATH, extensions de compilateur spécial pour créer des tampons de pile que l'expansion dynamique en place (transfert de toutes les autres variables locales pour faire de la place) et autres modifications de code fou.

La blague a été révélée lorsque vous a réellement étudié les fichiers il a changé. Chaque fichier unique dans le changement était un commit null. Il n'a pas à changer une seule ligne de code. Les fichiers sont dans le changement juste pour le spectacle.

Cette blague avait une durée effets depuis un certain temps, surtout en raison de son calendrier. Peu de temps après que mon ancien collègue perpétré cette plaisanterie, l'équipe de gestion de projet a décidé de créer une base de données qui a suivi les développeur a été la principale personne-ressource pour chaque fichier dans le référentiel. Tout d'abord remplir cette base de données, ils ont suivi la règle de « la dernière personne à soumettre un changement dans le fichier ». Parce que mon collègue a récemment présenté les modifications apportées à chaque fichier dans les composants critiques, presque tous les fichiers dans ces composants critiques a fini avec son nom attaché.

Au moins un an par la suite, une personne ou un outil automatisé de consultation de la base de données serait envoyer mon collègue un courriel lorsqu'ils ont constaté un problème dans l'un des fichiers qu'il a modifié. Il devra suivre le message à ses coéquipiers vieux pour leur demander de jeter un regard sur elle et la mise à jour de l'entrée de la base de données pour désigner le propriétaire de bon. Il s'agissait de récupération cosmique pour infliger sa blague adieu en premier lieu.

Raymond Chen

Raymond Chen s Web site, The Old New Thing, et identiquement intitulé livre (Addison-Wesley, 2007) traitent de l'histoire Windows, Win32 stationnement programmation et métaphorique.

Contenu associé