El departamento de TI en el que trabajo como programador gira en torno a una base de código de más de 30 años (Fortran y C). El código está en malas condiciones, en parte como resultado de más de 30 años de cambios ad-hoc mal pensados, pero también sospecho que mucho tiene que ver con las capacidades de los programadores que hicieron los cambios (y que, por cierto, todavía están alrededor).Software Reescribir-frente a correr Análisis de costo
El negocio que depende del software opera 363 días al año y 20 horas al día. Desafortunadamente hay numerosas interrupciones. Este es el primer lugar donde he trabajado donde hay desarrolladores de turno para aplicar soluciones de código operativo a los sistemas de producción. Cuando era primero, en realidad había una copia del código fuente y las herramientas de desarrollo en los servidores de producción para que pudieran aplicarse cambios sobre la marcha; afortunadamente esa práctica ahora se ha detenido.
He sugerido un par de veces a la gerencia que los costos del tiempo de inactividad, tener programadores de turno, personal operativo adicional, clientes insatisfechos, etc. están costando mucho más al negocio en el medio, y posiblemente incluso a corto plazo, de lo que sería lanzar un esfuerzo total para volver a escribir/refactorizar/reemplazar todo (la base del código es de aproximadamente 300k líneas).
Idealmente, serían una consultora externa que podría entrar y ejecutar la regla sobre la calidad del código y los costos involucrados para mantenerlo funcionando frente a reescribir/refactorizar/reemplazarlo. La pregunta que tengo es ¿cómo debería una empresa hacer ese tipo de análisis de costos en el software Y poder confiar en ese análisis? Los primeros consultores de TI en la calle pueden afirmar que pueden hacer el análisis, pero ¿cómo se puede hacer que la administración se sienta cómoda con lo que les dice el personal interno?
Trabajé en una tienda donde me hubiera encantado tener 4 horas de tiempo de inactividad diariamente. Esa es una oportunidad de oro si puedes usarlo. –
John, lo mismo aquí. ;) Mi producto funciona las 24 horas, todos los días de la semana, pero afortunadamente no hay demasiados usuarios, por lo que podemos permitirnos apagar el sistema por un tiempo breve (como 15 minutos) fuera de las horas punta para actualizar el software. –