Inicio Make Text BiggerMake Text SmallerReset Text Size
PSP (Personal Software Process) o como pasarse de rosca midiendo Imprimir E-mail
Valoración del artículo: / 32
MaloBueno 
18.05.2006

metro¿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.

 

Trackback(0)
Comentarios (23)Add Comment
De acuerdo, pero...?
escrito por Invitado, May 17, 2006
Estoy de acuerdo en que hay procesos que no son nada prácticos con CMM y PSP y que hacen que el desarrollo sea burocrático a más no poder. Pero creo que la forma de minimizar lo que tu comentas sobre el desarrollo de productos mediocres es haciendo las inspecciones de entregables en las etapa de diseño y en la etapa de construcción (código), revisiones entre Peers de esa forma puedes elevar la calidad de los desarrolladores por ende de los productos que desarrollan. Esto también lo promueve CMM y PSP.

¿Qué opinan al respecto?

Daniel Quezada.
Las métricas sólo como advertencias
escrito por Invitado, May 18, 2006
En todo caso las métricas pueden servir para señalar partes del proyecto a revisar, y que un desarrollador experto evalue el motivo por el cual la metrica arroja valores extraños, por ejemplo un desarrollador que tenga un indice de horas/linea de código bajo, hasta que un experto no lo revise personalmente no sabremos si:

- Se pasa media mañana rascandose las orejas.
- Tiene falta de experiencia en las tecnologias utilizadas y vas más despacio que el resto, le pone esfuerzo pero le falta capacidad o experiencia.
- por que tiene talento y es capaz de hacer lo mismo que los demás en menos lineas, reutiliza su código.

Ninguna métrica nos va ha decir cosas así, necesitamos la visión subjetiva y experta de alguien con experiencia para evaluar la calidad de nuestros productos y de nuestros desarrolladores.

Y de todos modos, hay métricas muchisimo más utiles que las basadas en lineas de código, por ejemplo medidas de cohesión o acoplamiento entre clases, complejidad ciclomatica del código, tamaño medio de los métodos, numero de clases abstractas vs clases concretas...

Estas son medidas que se ajustan mucho mejor para darnos una aproximación de calidad del proyecto, y si bien tampoco deben tomarse como la verdad absoluta si que hay que estar especialmente atento a las desviaciones en los valores normales en estas métricas para corregirlos lo antes posible.

Interesante tema sin duda, un saludo,

Alfredo Casado.



Eso se llama refactorizar
escrito por Invitado, May 18, 2006
Eso se llama refactorizar y es concepto no es precisamente de CMM o CMMI, sino de metodologias agiles aunque ahora todo el mundo se sube al carro.
No irse a los extremos
escrito por Invitado, May 18, 2006
EL uso de PSP desde mi punto de vista sera mas para efectos de cotizacin y en lugar de irme por l�neas de cdigo me ira mas por puntos de funci㭳n.
Medida de densidad de defectos
escrito por -, July 17, 2006
Es engañoso el cálculo de 2 defectos por 130 líneas de código, puesto que la densidad de defectos en .PSPse mide en Defectos/KLOC (defectos por miles de líneas de código), haciendo los cálculos necesarios Miguel tendría poco más de 15 defectos/KLOC. Para un programador entrenado en .PSP 5 defectos/KLOC o menos es aceptable
PSP
escrito por -, October 26, 2006
El psp no cumple ningun objetivo, pierdes tiempo calculando errores ... que siempre vas a tener que encontrar.
sobres
escrito por -, October 30, 2006
no sirve esto quiero mas datos para entender
...
escrito por Alfredo Dominguez Diaz, June 07, 2007
Leer sobre psp no es saber psp, para poder hablar sobre psp hace falta que tomes el curso que imparten por parte de SEI y lo termines por cierto. Si al final tienes alguna mala o buena impresión ahora si, postea. El psp es tan amplio que hay que vivirlo, trabajarlo para poder conocerlo y dar una opinión.
...
escrito por Juan, June 08, 2007
Hola Alfredo.
Encantado de que tu opinión sobre PSP sea diferente a la mia. En realidad cada uno vemos las cosas de forma diferente según nuestra experiencia, conocimiento y criterio, y gracias a ese contraste, y viendo las formas de otros podemos enriquecer o reafirmar las nuestras.
En fin, esta es mi opinión que tiene mucho que ver con la necesidad de adecuar los marcos de trabajo y procesos a las características de los proyectos, algo que sin duda a los habituales de Navegapolis les resulta familiar, y comparto con la ilusión de que pueda ser útil como información de contraste.
En cualquier caso, no tengas duda de que no escribo de "leidas". He asistido a bastantes cursos, también de SEI, y son unos cuantos los proyectos, programadores y alumnos con los que voy haciendo experiencia de la que intento aprender.

Un saludo.
Juan Palacio
...
escrito por Luis Germán, July 30, 2007
Hola Juan.
Creo que has leido algo de PSP pero también creo que aún no lo has comprendido.

El ejemplo que presentas demuestra que estas bastante confundido. El PSP no es una metodología para enseñarte a programar, ejemplo, si una persona que programa en C crea una nueva funcion para imprimir en pantalla en lugar de usar printf y además la nueva función tiene errores, eso no es culpa de PSP.

PSP está diseñado para desarrolladores que YA SABEN PROGRAMAR y les ayuda a CONOCER SU DESEMPEÑO con MEDIDAS OBJETIVAS Y CLARAS para poder tomar decisiones estratégicas sobre como MEJORAR SU DESEMPEÑO P E R S O N A L .

Otra idea que creo está equivocada en el ejemplo que mencionas es sobre la parte que comentas "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". PSP es un proceso PERSONAL, no es para que los administradores de una empresa de desarrollo esten midiendo y comparando los números de un empleado con los de otro o con la media.
PSP
escrito por Diego, October 13, 2007
Hola estoy deacuerdo con los ultimos comentarios el PSP es un proceso personal y metodico que tiene por objetivo, la creacion proyecto concreto medibles y estructurados, para poder generar una retroalimentacion para futuros proyectos... no solo hay que leer se necesita desarrollar un proyecto completo bajo los parametros metodologicos, para poder decir si srive o no!! antes de eso son solo comentarios..
PSP
escrito por Alberto, March 30, 2008
Creo que ambos tiene razon (Luis German y Diego), a nivel personal sirve para mejorar su desempeño personal, eso se ve de PSP0 a PSP2.1, la creacion de un proyecto medible pertenece a PSP3. smilies/wink.gif
PSP mediocre.
escrito por Max, April 10, 2008
Ok, bueno, donde yo me encuentro están usando PSP y ha dado hasta el momento malos resultados, una cosa muy critica del uso de PSP es que hace que las personas se centren de forma particular y no general. Es decir las soluciones que aportan cada miembro del equipo son individuales y no hacen cohesión, no existe una solución integral, no hay contexto, el producto resultante es mediocre, coincido completamente es el autor de la nota, para las personas que siguen pensando que PSP les da beneficios, van a ver que con el tiempo están completamete equivocadas, el PSP NO FUNCIONA!... es una falla garrafal el intentar usar PSP para proyectos de software serios.
...
escrito por cyndy, April 23, 2008
hola, yo ahora estoy haciendo el curso de psp y necesito saber como son o de que se tratan los programas apartir del 4 si alguin tiene los codigos de estos programas porfita enviemelos, deperdis el de eñ 4
PSP Terminado
escrito por Programmer, May 30, 2008
Hola, alguien que tenga el curso de psp y quiera compartirlo conmigo por favor, me harian un favorzote ya que llevo ese maldito curso en la universidad como homologo de 2 materias; es decir llevo psp en lugar de estas dos materias. Es mi último semestre y la verdad odiaría irme a algun extraordinario por PSP, el maestro que tengo ni siquiera esta certificado en PSP, en fin, sería de gran ayuda que alguien que ya haya terminado esto me lo mande, se los agradeceré infinitamente.

Muchas Gracias de antemano.
PSP Terminado
escrito por Programmer, May 30, 2008
Hola, alguien que tenga el curso de psp y quiera compartirlo conmigo por favor, me harian un favorzote ya que llevo ese maldito curso en la universidad como homologo de 2 materias; es decir llevo psp en lugar de estas dos materias. Es mi último semestre y la verdad odiaría irme a algun extraordinario por PSP, el maestro que tengo ni siquiera esta certificado en PSP, en fin, sería de gran ayuda que alguien que ya haya terminado esto me lo mande, se los agradeceré infinitamente.

Muchas Gracias de antemano.
En la opinion de un PSP certificado
escrito por Bruno, August 11, 2008
Tuve que certificarme como PSP ya que era una de las politicas de la compañia para la que laboro.

Los dos ultimas empresas para las que he laborado implementan en base a PSP, ya que este presume de ayudar a entregar productos con un bajo indice de defectos, sin embargo, en las dos empresas los proyectos fueron fracasos rotundos.

Ciertamente PSP desperdicia muchos recursos en mediciones y metricas que simplemente no aportan valor al proyecto y terminan por obstaculizar y burocratizar el proceso, ademas dichas actividades provocan que los integrantes del equipo se desconcentren de funcion real en el proyecto, con lo que terminan por generar un infinidad de defectos inpensables.

El problema real de PSP es que fue desarrollado por un ancianito como de 80 años (Watts Humphrey), que ingnora la forma en que la tecnologia ha evolucionado en los ultimos años, es probable que hace dos o tres decadas, las ideas de Humphrey hubiesen sido utiles para la industria del software, pero en la actualidad son simplemente inadecuadas y obsoletas.
dogmatismos
escrito por Andrés Panitsch, September 04, 2008
El problema básico de cualquier conjunto de métricas es su uso dogmático, y sobre todo fuera de contexto. En el caso que proponés la métrica dice que el programador estuvo trabajando, y en realidad poco más. Medir la calidad por líneas de código es como medir la calidad de un auto por su peso (creo que algo así dijo Bill Gates smilies/cheesy.gif, pero igual la frase es cierta).
Resumo: si querés medir avance o velocidad puede que sea útil, si la utilizamos en comparación con "el mes pasado", por ejemplo. Ahora, si querés medir calidad no es útil y punto.
Tal vez el problema más grave es cuando por adoptar ciertas certificaciones nos vemos obligados a tomar métricas que no vienen al caso, es decir, de forma dogmática.
...
escrito por Guillermo, October 07, 2008
Hola. ¿que proponen usar en lugar de psp?, estamos organizando algunos cursos de psp y tsp, ¿me pueden recomendar alguna persona que pueda darlos?
ingeniero en sistemas
escrito por josue calderon, July 21, 2009
la verdad considero que psp solo son metricas que nos ayudan a mejorar nuestro modo de desarrollo por medio de metricas pero tampoco creo que es bueno total de mejor forma se puede trabajar en otro tema y la verdad para mi examen privado de graduacion me pidieron utilizar esa mierda y no me gusto
Director de Ingenieria de Software
escrito por Rodrigo Garcia, September 08, 2009
PSP establece como metrica base las lineas x hora, PERO, tambien establece que una vez conociendo el proceso, tu puedes decidir aplicar la metrica que mas te parezca adecuada.

Puntos por funcion, cantidad de metodos, etc. En mi particular punto de vista, puntos por funcion considero que es una metrica bastante buena. (Mucho mejor que lineas por hora).

El PSP tambien es flexible a la hora de las mediciones. Tu puedes crear un "subset" de mediciones de PSP, que solo apliquen en tu entorno como empresa, y aun asi seria PSP.

No es del todo malo, solo hay que conocerlo bien, y aplicarlo correctamente.

Saludos!
ayudaaaaaaaaaaaaa
escrito por alex, October 06, 2009
porfis algine me podria enviar informacion acerca de PSP necesito los template que utiliza psp y los scrip
PSP es proceso basura
escrito por Angy, November 25, 2009
Por desgracia nos vimos obligados a tomarlo en el TEC y la verdad fue en proceso muy desagradable, ya que se te piden miles de estimaciones y terminas desperdiciando miles de horas en estimaciones que finalmente no resultaron utiles ni precisas para nadie.

Sin PSP nuestras estimaciones fueron precisas, pero al momento de implementar PSP, requieres ademas de estimar los tiempos que te consumira producir cierto codigo, estimar el tiempo que te llevara estimar cuanto te vas a tardar.

En mi humilde opinion, los procesos son para volver mas eficiente y producto el ciclo de vida de los proyectos, NO PARA SATURARLOS DE BASURA.....



Escribir comentario

busy
 
< Anterior   Siguiente >

En Navegapolis
En Internet

Advertisement

Advertisement



Amigos de Navegápolis

Registrado en Safe Creative