Repositorios centrales de fonts y notas adhesivas

Hace poco surgió un problema interesante, y he estado pensando en la "mejor" forma (para un valor dado de "lo mejor") para implementar esto.

En esencia, es una de las notas de seguimiento contra el código fuente. El ejemplo que marcó esto fue solucionar un problema en vivo dentro de los SLA, y la mejor forma de lograrlo. Sin entrar en detalles, todo se networkingujo a encontrar una function que se usa en varios lugares que pueden o no tener errores, pero el problema fue informar solo en una sola location.

La solución para cumplir con los SLA era simplemente agregar un cheque en la location donde se informó el problema, en lugar de ajustar el código común y tener que probar todo lo que toca esa function.

El problema interesante es entonces para la transmisión ascendente. El método "correcto" sería retroceder y verificar la function original, validar que sea correcta para todos los lugares a los que se llame y luego realizar el cambio "correctamente" si se determina que la function de la biblioteca es incorrecta.

El problema es que esto lleva time, por lo que la actualización puede tomar la solución, etc. Sin embargo, si el problema vuelve a ocurrir (digamos seis meses después) en otra location llamando a la misma function de biblioteca, no hay una manera fácil de vincular los dos problemas juntos. Puede search en la database de seguimiento de errores, pero esto no está garantizado para ayudar, depende de si se ha agregado una nota que diga algo como "esta function de la biblioteca necesita una verificación más exhaustiva, pero no hay time para investigar ahora".

Entonces, la pregunta es: dentro de un gran equipo de desarrolladores (más de 30, divididos en equipos de soporte y desarrollo en curso), ¿qué methods usas para administrar (lo que en realidad son) "notas adhesivas" contra el código fuente, corto de agregar un comentario al código fuente de la function sospechosa diciendo "esto podría ser un poco dudoso"?

El problema con el compromiso de un comentario es uno de process: un cambio es un cambio, por lo que comprometer un cambio de cero cambio (es decir, uno donde solo se agregan los comentarios) no es ideal; los desarrolladores pueden cometer errores incluso si agregan un comentario (presionan una tecla de derivación o algo así) por lo que siempre (IMO) es mejor comprometerse solo cuando se realizan cambios reales.

Ahora se puede usar un wiki para rastrear notas por file, pero tenemos un mínimo de cuatro twigs y un poco de cientos de files (objects SQL, código fuente, files XML, etc.), por lo que un wiki se volverá imposible de manejar con rapidez.

Este es el tipo de cosa que sería bueno si los SCM pudieran admitir (bits de metadatos contra files que son simplemente notas, pero no se agregan al historial de versiones del SCM) que se pueden mostrar al hacer (por ejemplo) una svn update , o visto manualmente

Puede que ya existan soluciones, entonces, ¿cómo manejas este tipo de intercambio de conocimiento?

Bueno, ahora estamos usando este método: en cada carpeta registrada en SVN, hemos creado un .url directo .url (este es Windows en el que estamos desarrollando) que enlaza a una página en nuestra wiki de desarrollo sobre esa carpeta. Por lo tanto, podemos actualizar la información del wiki libremente, y al momento de pagar / actualizar todos reciben un enlace que los llevará a la página Wiki correspondiente para esa carpeta / module.

No hace mucho que lo instigamos, así que tendremos que ver qué tan bien funciona a largo ploop, pero es mejor de lo que teníamos antes (es decir, nada :-)).