|
¿No estará perdiendo el norte la línea "CMM'ista" en su afán de ver que todo está en los procesos?. Estas son algunas de las métricas que PSP define para "ayudar a los ingenieros en su trabajo":
- LOC(B) Líneas de código del programa antes de empezar a modificarlo.
- LOC(D) Líneas de código del programa una vez terminado.
- LOC(M)Líneas cambiadas en el programa base.
- LOC(A) Líneas añadidas durante la programación del proyecto (A=T-B+D-R)
- LOC(R) Líneas de código desarrolladas para otros programas que se han incluido sin ninguna modificación.
- LOC(N) Líneas de código añadidas o modificadas (N=A+D)
- LOC/Hora Líneas nuevas y modificadas divididas por el número de horas empleadas
- Tiempo de interrupción: Tiempo dedicado por el programador a actividades ajenas al proyecto (charlas, teléfono, interrupciones, café...).
- Tiempo delta: Tiempo de la jornada de trabajo - Tiempo de interrupción.
- Defectos eliminados / hora
etc, etc, etc. La implantación de PSP ha demostrado incrementos importantes en el "task time". En el tiempo que los programadores están efectivamente sentados produciendo líneas de código. Consigue por tanto incrementos igualmente importantes de eficiencia; considerando eficiencia como número de líneas de código por unidad de tiempo... Pero una cosa es task time o "body time" y otra "brain time". Las líneas de código se pueden medir, pero no ocurre lo mismo con la capacidad, la creatividad, el talento... Se puede medir o valorar el trabajo de un traductor por el número de palabras que traduce en una hora... pero no debería ser una métrica válida para determinar el valor de un novelista. Seguramente con ese criterio situaríamos a Corín Tellado por delante de Cela. Un caso práctico (Texto empleado en el seminario de formación sobre agilidad, y basado en un caso real y cotidiano): Miguel forma parte del equipo de programación de un sistema en entorno Visual Basic .NET. Ha trabajado durante dos días en el desarrollo de una función (ValidDate), de 130 líneas de código, capaz de comprobar la validez de una cadena como fecha. (fichero txt del trabajo). La función contiene dos bugs:
- Considera como fechas válidas las cadenas vacías.
- El cálculo de los años bisiestos no es correcto.
¿Cómo analizaría y gestionaría el trabajo de Miguel una empresa que desarrollara software desde la perspectiva de los procesos? Estas empresas trabajan con la premisa de producción industrial de que el valor del producto es resultado, en su mayor parte, de los procesos que siguen las personas que lo desarrollan. El modelo más destacado sobre esta premisa, para medir y mejorar estos procesos es PSP (Personal Software Process) desarrollado por SEI en el marco de los modelos CMM - CMMI. PSP mira el tiempo, el tamaño del trabajo y el nº de errores. Estos modelos permiten medir con parámetros objetivos la eficiencia y calidad de las personas y de los equipos. Para determinar la eficiencia de Miguel, la información objetiva no engaña: 130 líneas de código en x horas. Lo mismo ocurre con la calidad de su trabajo:2 errores en 130 líneas de código. Con estas informaciones los gestores de la empresa determinan si Miguel es más o menos eficiente que la media, si la calidad de su trabajo está en los parámetros admisibles, etc. Lo que no pueden descubrir con ellos es que Visual Basic incorpora de forma nativa la función IsDate(), y que si Miguel lo hubiera sabido, en lugar de 2 días hubiera tardado 1 minuto en realizar el mismo trabajo, que además no contendría ningún error. Este es un caso real, casos con el mismo fondo son muy frecuentes, y esconden diferencias de eficiencia y calidad enormes entre las personas, que pasan desapercibidas y tergiversadas al aplicar métricas que no son apropiadas. Administrando a las personas que desarrollan software con criterios de producción industrial se puede estar en el mercado, conseguir el volumen de trabajo que el marketing y el capital relacional propio sean capaces de lograr, pero el producto será mediocre. Este modelo de empresa no es capaz de desarrollar software innovador ni valioso (Procesos: incompatibilides y efectos secundarios). De hecho la empresa que desarrolló este proyecto facturaba 250$ por hora de trabajo, por lo que programar esta función mediocre le aportó una facturación de más de 2.000 dólares. No cabe la menor duda de que este es un modelo de empresa de negocio atractivo, y razón más que suficiente para que se perpetúe.
|
¿Qué opinan al respecto?
Daniel Quezada.