¿Cuántos programadores se necesitan para mantener el código escrito previamente?

Hace un tiempo tuvo lugar una conversación entre un buen amigo mío y yo en la que se escucharon las siguientes frases:

— El número de programadores crecerá constantemente, porque la cantidad de código crece y cada vez se necesitan más desarrolladores para soportarlo.
— Pero el código se está volviendo obsoleto, parte de él ya no es compatible. Incluso es posible que exista algún tipo de equilibrio.

Al recordarlos unos días después, me pregunté si mantener el código, que requiere cada vez más recursos con el tiempo, podría en última instancia paralizar el desarrollo de nuevas funciones o requeriría un aumento ilimitado en el número de programadores. El análisis matemático y las ecuaciones diferenciales ayudaron a evaluar cualitativamente la dependencia del volumen de apoyo al desarrollo y a encontrar respuestas a las preguntas.

Pregunta uno. ¿Puede el apoyo “consumir” todos los recursos para el desarrollo?

Considere un equipo de programadores en el que el número de participantes es constante. Parte de su tiempo de trabajo ¿Cuántos programadores se necesitan para mantener el código escrito previamente? (¿Cuántos programadores se necesitan para mantener el código escrito previamente?) se dedica a desarrollar código nuevo y la parte restante del tiempo ¿Cuántos programadores se necesitan para mantener el código escrito previamente? va al soporte. Dentro de los supuestos del modelo, asumimos que el primer tipo de actividad tiene como objetivo aumentar el volumen de código, y el segundo tiene como objetivo cambiarlo (corregir errores) y no tiene un impacto significativo en el volumen de código.

denotemos ¿Cuántos programadores se necesitan para mantener el código escrito previamente? la cantidad total de código escrito hasta ese momento ¿Cuántos programadores se necesitan para mantener el código escrito previamente?. Suponiendo que la velocidad de escritura de código es proporcional ¿Cuántos programadores se necesitan para mantener el código escrito previamente?obtenemos:

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

Es natural suponer que los costos laborales para mantener el código son proporcionales a su volumen:

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

o

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

de donde

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

Obtenemos una ecuación diferencial que se puede integrar fácilmente. Si en el momento inicial la cantidad de código es cero, entonces

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

en ¿Cuántos programadores se necesitan para mantener el código escrito previamente? funcion ¿Cuántos programadores se necesitan para mantener el código escrito previamente?Y ¿Cuántos programadores se necesitan para mantener el código escrito previamente?. Y esto significa una reducción gradual a lo largo del tiempo en el desarrollo de nuevas funciones a cero y la transferencia de todos los recursos al soporte.

Sin embargo, si durante el tiempo ¿Cuántos programadores se necesitan para mantener el código escrito previamente? el código se vuelve obsoleto y deja de ser compatible, entonces la cantidad de código que requiere soporte a la vez ¿Cuántos programadores se necesitan para mantener el código escrito previamente? ya es igual ¿Cuántos programadores se necesitan para mantener el código escrito previamente? Entonces

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

а ¿Cuántos programadores se necesitan para mantener el código escrito previamente? es una solución a una ecuación diferencial con un argumento retrasado [1]:

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

La solución a dicha ecuación se determina de forma única especificando los valores ¿Cuántos programadores se necesitan para mantener el código escrito previamente? "antes del principio de los tiempos" ¿Cuántos programadores se necesitan para mantener el código escrito previamente?. Dado que el código aún no se había escrito antes del momento inicial, en nuestro caso ¿Cuántos programadores se necesitan para mantener el código escrito previamente? en ¿Cuántos programadores se necesitan para mantener el código escrito previamente?.

Veamos algunos ejemplos. Mediremos el tiempo en años y la cantidad de código en miles de líneas. Entonces para ¿Cuántos programadores se necesitan para mantener el código escrito previamente? Los valores del orden de decenas son aceptables, tomaremos 50 y 100. Es decir, en un año el equipo de desarrollo escribirá cincuenta y cien mil líneas de código, respectivamente. Para ¿Cuántos programadores se necesitan para mantener el código escrito previamente? Los valores aceptables pueden ser: ¿Cuántos programadores se necesitan para mantener el código escrito previamente?, ¿Cuántos programadores se necesitan para mantener el código escrito previamente?, ¿Cuántos programadores se necesitan para mantener el código escrito previamente?. Esto significa que un equipo de desarrollo puede soportar la cantidad de código que escribe en un año, ya sea un trimestre, medio o tiempo completo. Como vida media del código estableceremos los siguientes valores: 1, 2 y 4 años. Resolviendo la ecuación numéricamente, obtenemos ejemplos del comportamiento de la función. ¿Cuántos programadores se necesitan para mantener el código escrito previamente? para algunas combinaciones de parámetros ¿Cuántos programadores se necesitan para mantener el código escrito previamente?.
¿Cuántos programadores se necesitan para mantener el código escrito previamente?
Comportamiento de la función ¿Cuántos programadores se necesitan para mantener el código escrito previamente? A medida que el código envejece, ha cambiado. La función ya no es monótona, pero las fluctuaciones se "calman" con el tiempo y hay una tendencia a ¿Cuántos programadores se necesitan para mantener el código escrito previamente? a algún valor constante. Los gráficos muestran: cuanto más ¿Cuántos programadores se necesitan para mantener el código escrito previamente?, ¿Cuántos programadores se necesitan para mantener el código escrito previamente? и ¿Cuántos programadores se necesitan para mantener el código escrito previamente?, es decir, cuanto más lento envejece el código, más rápido es el desarrollo de código nuevo y menor es la calidad del código, menos recursos quedarán para el desarrollo de nuevas funcionalidades. Existía el deseo de dar al menos un ejemplo en el que ¿Cuántos programadores se necesitan para mantener el código escrito previamente? “acurrucado” cerca de cero. Pero esto requirió la selección de indicadores de calidad de desarrollo muy pobres y de un código que no envejece por mucho tiempo. Incluso en el gráfico inferior izquierdo, queda una cantidad significativa de recursos para la nueva funcionalidad. Por tanto, la respuesta correcta a la primera pregunta es más bien esta: teóricamente, sí, es posible; prácticamente - apenas.

Preguntas que no se pudieron responder:

  1. ¿Es cierto que ¿Cuántos programadores se necesitan para mantener el código escrito previamente? tiende a algún límite en ¿Cuántos programadores se necesitan para mantener el código escrito previamente? para todos ¿Cuántos programadores se necesitan para mantener el código escrito previamente?? Si no es para todos, ¿para cuáles?
  2. Si existe un límite, ¿cómo depende su valor de ¿Cuántos programadores se necesitan para mantener el código escrito previamente??

Pregunta dos. ¿Podría el mantenimiento del código provocar un crecimiento ilimitado en el número de programadores?

denotemos ¿Cuántos programadores se necesitan para mantener el código escrito previamente? el número de programadores involucrados en el desarrollo de código nuevo. Como anteriormente, ¿Cuántos programadores se necesitan para mantener el código escrito previamente? — la cantidad de código escrito hasta un momento determinado ¿Cuántos programadores se necesitan para mantener el código escrito previamente?. Entonces

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

Mantenga ocupado el soporte de código ¿Cuántos programadores se necesitan para mantener el código escrito previamente? programadores. Teniendo en cuenta el código de antigüedad,

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

de donde

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

si ¿Cuántos programadores se necesitan para mantener el código escrito previamente?entonces

¿Cuántos programadores se necesitan para mantener el código escrito previamente?

Por tanto, la respuesta a la segunda pregunta es negativa: si el número de desarrolladores de código nuevo es limitado, entonces, en condiciones de código obsoleto, el soporte no puede provocar un aumento ilimitado en el número de programadores.

Conclusión

Los modelos considerados son modelos matemáticos “blandos” [2]. Son muy simples. Sin embargo, la dependencia de los resultados de la simulación de los valores de los parámetros corresponde a lo que se espera para sistemas reales, lo que habla a favor de la adecuación de los modelos y la precisión suficiente para obtener estimaciones de alta calidad.

Referencias

1. Elsgolts L.E., Norkin SB. Introducción a la teoría de ecuaciones diferenciales con argumento desviado. Moscú. Editorial "Ciencia". 1971.
2. Arnoldo V.I. Modelos matemáticos “duros” y “blandos”. Moscú. Editorial MCNMO. 2004.

Fuente: habr.com

Añadir un comentario