He estado trabajando en un proyecto de software principalmente en solitario durante más de 5 años. Para empezar, fue un desastre (soy el tercer o cuarto desarrollador que está trabajando en ello), y aunque ahora es menos complicado, todavía está increíblemente desorganizado. La tasa de progreso para mantenerlo bajo control es glacial y estoy empezando a sentirme abatido por el estado en que se encuentra. ¿Cómo empiezo a arreglarlo realmente?
Detalles del proyecto: es un programa de ventas escrito casi en su totalidad en Visual Basic Classic (VB6) con un back-end MySQL y un motor de informes escrito en C #. Es un placer trabajar con el módulo de informes de C #, solo se escribió en los últimos años y antes de que todos los informes se hicieran en Crystal Reports 9 (sí, todavía tenemos algunos informes que dependen de él).
Sin embargo, el programa en sí mismo es un completo desastre. No hay un total de 90k LOC en total, y alrededor de 10k líneas de comentarios (en su mayoría no son documentación, sino código antiguo que ha sido comentado). 158 archivos de formulario y 80 archivos de módulo. No tengo idea de cuántos de ellos se usan realmente, porque algunas características del programa simplemente están en desuso y (uh, a veces) se notan como tales sin que se elimine el código asociado del programa. Supongo que solo el 50% del código está en uso productivo real.
Tengo miedo de tocar gran parte del código solo porque no estoy seguro de si estoy rompiendo algo en lo que confía un cliente oscuro, ha sucedido en más ocasiones de las que puedo contar. Es como si hubiera minas terrestres esparcidas por todo el código.
Realmente no hay ninguna estructura para el proyecto. No está orientado a objetos, excepto en los pocos lugares donde he tenido la paciencia para reformar hasta ahora. Si necesita obtener datos en un formulario, crea una instancia de un objeto de base de datos, declara su consulta allí mismo en la función, la ejecuta y hace lo que quiera con el conjunto de datos.
Cuando comencé a trabajar en el proyecto no había control de fuente en uso. Traté de alentar a las otras personas en las que estaba trabajando para que lo usaran, pero yo era el chico nuevo y mis intentos de hacer que la gente usara la subversión fallaron. El desarrollador principal de la compañía finalmente detectó un error mercurial en los últimos años y se aseguró de que todos los desarrolladores usen el control de origen en todos los proyectos ahora, así que al menos eso es un progreso.
Creo que si pudiera trabajar en la reforma del proyecto a tiempo completo, podría lograr un progreso decente y tal vez incluso tener una estimación de cuánto tiempo me llevaría cambiar completamente el proyecto, pero está en uso activo y estoy se le pide constantemente apagar incendios, corregir errores, agregar funciones, etc., etc.
Entonces, ¿cómo empiezo a arreglar realmente este proyecto? ¿Intentas equipar VB6 con otro idioma? ¿Intenta reescribir el programa en mi tiempo libre? ¿O es esto completamente inútil?
Actualizar
Después de esta publicación, volví al proyecto con renovado celo, pero volví a la desesperación unos meses después de ver un ritmo de progreso tan lento. Luego repetí este ciclo 2 o 3 veces más durante el próximo año más o menos.
Desde entonces me mudé a un trabajo diferente. Aunque después de tantos años de vb6, y solo experiencia periférica con otras tecnologías, la búsqueda fue difícil y enfrenté muchos rechazos en el camino (alrededor de una docena de entrevistas en el transcurso de un año). Mi consejo para otros en esta situación es considerar dejar solo este factor. Considere el daño que puede hacer a su carrera al permanecer en una posición de callejón sin salida como esta.