Soy un estudiante universitario de ciencias de la computación actualmente en un año de colocación en una empresa que produce y admite una aplicación web de gran empresa. Me encanta la experiencia de ver cómo se produce el software en el mundo real, y me siento muy afortunado de encontrar una compañía que ofrezca la oportunidad no solo de mantener y ampliar la funcionalidad existente, sino también de desarrollar características completamente nuevas para el producto.
Dicho todo esto, sin embargo, soy muy consciente de que es muy, muy poco probable que sea un ejemplo perfecto de cómo desarrollarse correctamente. Lejos de eso, de hecho. Siento que estoy aprendiendo una gran cantidad de mi experiencia aquí, y no quiero aprender las cosas equivocadas o aprender malos hábitos de colegas que podrían ser difíciles de eliminar en el futuro. En general, es fácil saber qué es bueno y qué no, por ejemplo, la cobertura de la Prueba de Unidad aquí es prácticamente inexistente por varias razones (en su mayoría, excusas pobres mezcladas con uno o dos puntos válidos). Últimamente, sin embargo, he notado una ocurrencia regular de la que no estoy seguro.
Cada vez que comenzamos un nuevo proyecto, naturalmente necesitamos encontrar cualquier código relevante que deba ampliarse, modificarse o eliminarse. Me parece que, la gran mayoría de las veces, cualquier cosa que no se encuentre dentro de las secciones más utilizadas de la aplicación lleva a las personas una edad para encontrar dentro de la base de código. Hay uno o dos clientes potenciales que conocen bien su sección del código, pero incluso a veces se quedan perplejos y tienen que pasar mucho tiempo buscando lo que necesitan, o recurrir a alguien que ha estado editando esa parte del código recientemente ( si alguien) por ayuda. Cuando digo mucho tiempo, no me refiero a horas (por lo general), pero me parece que una buena base de código sería navegable a cualquier punto dentro de unos minutos en el peor de los casos, a cualquiera que esté vagamente familiarizado con el sistema.
Entonces, mi pregunta. ¿El problema anterior se debe a un código mal estructurado? Alternativamente, ¿se debe a que los desarrolladores no tienen suficiente conocimiento de la base de código? ¿O es simplemente inevitable en aplicaciones grandes, independientemente de cuánto trabajo se requiera para mantener clara la estructura de archivos?
O, de hecho ... ¿estoy perdiendo el tiempo en un tema que realmente no importa?