En el desarrollo de software, medir con precisión el esfuerzo invertido en una tarea es esencial para optimizar la eficiencia del equipo.
Una práctica efectiva es estimar el inicio del Coding Time a partir de la fecha del primer commit del PR y una estimación del tiempo que podría haber tomado la escritura de dicho código. De ese modo el inicio del Coding Time refleja con mayor precisión el momento en que el desarrollador comenzó a trabajar.
¿Cómo Teambit ajusta el Coding Time?
A continuación una breve explicación de como Teambit usa la información histórica disponible para hacer esta estimación. Este proceso se compone de dos etapas principales:
1. Estimación de la velocidad de escritura de código
Primero, se analiza la actividad reciente del desarrollador, evaluando la cantidad de líneas de código añadidas y el intervalo de tiempo entre commits consecutivos. Para asegurar la relevancia de los datos, se excluyen commits que sean excesivamente grandes o pequeños o que tengan largos periodos de inactividad entre ellos. De este modo tendremos una submuestra de commits que consideramos representan de mejor forma el trabajo en condiciones normales de un desarrollador.
Con los datos filtrados, se calculan estadísticas clave como el promedio, la mediana y los percentiles, eliminando valores atípicos que puedan distorsionar los resultados. La velocidad de escritura se define utilizando el percentil 75 (p75), representando un nivel de desempeño alto pero consistente.
2. Ajuste del inicio del Coding Time
Con la velocidad de escritura estimada, se procede a ajustar el inicio del tiempo de codificación en un PR. Utilizando el primer commit relevante (que no sea un merge commit) como referencia, si este contiene menos de 1000 líneas de código, se calcula el tiempo necesario para escribir dicho código basándose en la velocidad previamente determinada. Este tiempo estimado se resta de la fecha y hora del primer commit, proporcionando una aproximación más precisa del momento en que el desarrollador inició la escritura del código.
Este enfoque permite una medición más precisa del esfuerzo de desarrollo, especialmente cuando no es posible determinar el inicio del trabajo directamente desde la tarea asociada. Al ajustar el tiempo del primer commit según la velocidad de escritura del desarrollador, se obtiene una representación más realista del tiempo invertido en el desarrollo del PR, facilitando análisis de productividad y estimaciones futuras.
Consideraciones sobre la velocidad del desarrollador
Si bien la velocidad de escritura de un desarrollador es una métrica útil para realizar ajustes como el del tiempo del primer commit, no debe interpretarse como un indicador absoluto de productividad o calidad. La escritura de código es solo una parte del proceso de desarrollo, que también incluye tareas como el diseño, la investigación, las pruebas y las revisiones. Evaluar a un desarrollador exclusivamente por su velocidad puede llevar a conclusiones erróneas, ya que el desarrollo de software es un proceso complejo y colaborativo.
Conclusión
Este enfoque proporciona una forma más precisa de medir el esfuerzo de desarrollo, especialmente cuando no es posible determinar el inicio del trabajo directamente desde la tarea asociada. Ajustando el tiempo del primer commit con base en la velocidad de escritura, se logra una representación más realista del tiempo invertido en el desarrollo del PR, lo que resulta útil para análisis de productividad y estimaciones futuras.