Confidencial de Windows: Detectar las huellas digitales

La última persona que modifica un segmento de código es, en última instancia, responsable de que funcione correctamente.

Raymond Chen

Hay una ley no escritas en desarrollo de software: La última persona para hacer un cambio en una línea de código se convierte en ipso facto responsable por cualquier problema que se remonta a esa línea de código. Incluso si todos hiciste fue insertar un espacio después de una coma o corregir la ortografía de una variable local, sus huellas se encuentran en el código. Cuando algo va mal, vendrá la policía código llamando a su puerta.

La mayoría de sistemas de control de código fuente tienen una herramienta que identifica automáticamente la última persona para hacer un cambio en un archivo. También puede generar un listado de archivos donde se anota cada línea de código con el nombre de la persona que modificó el código.

En algunos proyectos, puede ser una función o componente para que la gente problemática evita realizar cambios si es posible. Tienen miedo de tener sus huellas dactilares en ella tendrá les puso sobre el terreno para la serie de problemas en última instancia se remontan a ese código.

Adiós

Uno de mis colegas anteriores tomó esta tradición de instintivamente culpando a los defectos en la última persona que toque un archivo y utilizarlo como base para una broma de despedida. Como su último acto antes de abandonar el equipo para unirse a otro proyecto dentro de Microsoft, cometió un cambio que se extendió a través de cientos de archivos. Había tocado cada archivo de cada componente crítico.

El comentario asociado a esta confirmación de cambio masivo tenía el título de "Convertir a Unicode amplia." En los comentarios de detalle copiosa, se disculpó que era "capaz de convertir una gran parte del proyecto, pero no todos." El comentario también explicó qué código necesario para cambiar todo el proyecto para terminar el trabajo. También señaló que algunas "trampas" que pudieran ser encontrado.

Más lee el comentario, más pregunta qué tipo de locura estaba experimentando. El comentario examinan cambios a algunas constantes fundamentales como MAX_PATH, extensiones de compilador especial para crear búferes de pila que expandieron dinámicamente (desplazamiento de todas las variables locales para hacer espacio) y otros cambios en el código loco.

La broma fue revelada cuando usted realmente estudiado los archivos cambió. Cada archivo en el cambio fue una confirmación de nula. Él no cambia una sola línea de código. Los archivos fueron en el conjunto de cambios sólo para mostrar.

Esta broma tuvo efectos duraderos durante bastante tiempo, principalmente debido a su calendario. Poco después de que mi antiguo colega había perpetrado esta broma, el equipo de gestión del proyecto decidieron crear una base de datos que realiza un seguimiento de qué desarrollador fue el contacto principal para cada archivo en el repositorio. Inicialmente llenar esta base de datos, siguieron la regla de "última persona presentar un cambio en el archivo". Porque mi colega había presentado recientemente cambios en todos los archivos de los componentes críticos, casi todos los archivos de los componentes críticos terminaron con su nombre de conexión.

Al menos un año después, cualquier persona o herramienta automatizada que consulta la base de datos enviaría a mi colega un correo electrónico cuando encontraron un problema en uno de los archivos que se modificó. Tendría que reenviar el correo electrónico a sus compañeros de equipo viejos para pedirles que echar un vistazo y actualizar la entrada de la base de datos para referirse al propietario adecuado. Se trata de compensación cósmica para infligir su broma despedida en primer lugar.

Raymond Chen

Raymond Chen s Web sitio, la vieja nueva cosa, y libro titulado idénticamente (Addison-Wesley, 2007) tratar con historia de Windows, Win32 estacionamientos metafóricas y programación.

Contenido relacionado