¿Calidad? ¿Eso para qué?

  • RSS
  • Add To My MSN
  • Add To Windows Live
  • Add To My Yahoo
  • Add To Google

Statistics

  • Entries (14)
  • Comments (38)
Posted by Eliana Caraballo Wednesday, October 26, 2011 4:28:00 PM Categories: Calidad de Software
Rate this Content 13 Votes

Hoy, mientras ojeaba un rato mi facebook a la espera de un correo, me encontré con una caricatura que me dejó pensando lo suficiente sobre la necesidad de, no solamente crear software "de calidad" sino de tener procesos de calidad.  Sé que al pensar en ese término se nos viene solamente una cosa a la cabeza: ¡más documentos! ¡más cosas por llenar! y si... contra la documentación exahustiva de lo que codificamos no podemos hacer nada, pero si le damos verdadero sentido entenderemos el por qué es importante.

La caricatura de la que hablaba, explicaba a grosso modo cómo serían las cosas si los edificios los construyeran los ingenieros de sistemas.  Aunque el usuario nunca pudo explicarle bien al ingeniero qué es lo que quería, se plasmaba algo que siempre se ha padecido en sistemas: preguntarle al cliente qué quiere y este no sabe realmente qué necesita.  Aunque esta es harina de otro costal, lo que más enfatizaba la caricatura era la necesidad de que el cliente entregara cierta documentación sobre lo que se necesita, y es a partir de esta que nace el resto de documentación con la que solemos quebrarnos la cabeza.

El por qué hay que documentar los requerimientos es claro: el cliente cambia de parecer cada que suda, y si no codificamos sobre una línea base, nuestro proyecto será eterno y complejo, pues los clientes siempre querrán agregar nuevas cosas al mismo costo ("¿Qué tanto es poner un botón adicional que llene un campito?") y si no está escrito, es muy probable que vayamos olvidando ciertas cosas.

El prototipo, los diagramas de secuencia, los diagramas de clase, los casos de uso, y todo cuanto artefacto se nos ocurra que hayamos visto en la universidad son los que a nosotros, como desarrolladores, nos darán idea de lo que tendremos que codificar (lo que el cliente quiere).  Es nuestra maqueta, nuestros planos, nuestro esquema.  No imagino a un ingeniero civil comenzar a construir sin tener planos del lugar, o a un cirujano cortar sin haber trazado el mapa de cortes.  Es trabajo de los gerentes de software y los analistas de requisitos hacerle entender al cliente la importancia de estos documentos, y que no es simplemente "tiempo" que mal usamos mientras ellos nos pagan millonadas.

En cuanto a nosotros como desarrolladores, no hay peor pesadilla que tener que hacerle mantenimiento a código ajeno.  Preferimos un harakiri con cuchillo para mantequilla antes que tener que revisar el código de otra persona; ¿por qué? porque muchas veces hacemos las cosas como si fuéramos a estar siempre presentes en el proyecto, y usamos poco o nada de las buenas prácticas de nombrado de variables, codificación, etc.  Una regla de oro en la programación es: Codifica pensando en que vas a ser tú quien va a hacerle mantenimiento a la aplicación, así que escribe el código como te gustaría encontrarlo.  Sé que es suena a cartel de baño, pero es la realidad.  Si todos codificamos con esta regla en mente, nos facilitaremos y le facilitaremos el trabajo a los que vienen detrás.

Mi invitación es hoy a dignificar nuestro trabajo y darle su verdadero valor.  Integremos como parte de nuestra vida diaria todo el sistema de gestión de la calidad y ponerse un verdadero norte como desarrollador y como parte integral de la empresa.  La calidad no es un concepto nuevo, o una moda, y entre más la tengamos presente, mejor será nuestro trabajo y mayor nuestra productividad.  En palabras de mi papá: "No está mal en ser pegador de ladrillos, lo que está mal es no ser EL MEJOR (o al menos intentarlo)".

Hasta una próxima.

Eliana

Comments

Thursday, October 27, 2011 2:35:38 AM
Esteban Sanín Ángel

re: Calidad? eso para qué?

Estoy de acuerdo con que hay que tener en cuenta la calidad, pero esto no quiere decir que necesitemos más documentación y más diagramas, pero creo que se está olvidando quien es el juez final de la calidad: El usuario.

Por ejemplo, un proyecto puede tener todos los diagramas de UML y tener más documentación que un trámite gubernamental, y el cliente puede detestarlo. Más documentación no significa más calidad y mientras más documentación tenga un proyecto de software, más lentos serán los cambios.

Para poder mejorar la calidad de un software puede que sea necesario documentar una que otra cosa, pero tener capas y capas de documentación separan al desarrollador del cliente (el programador hace lo que el diseñador entendió de lo que el analista entendió de lo que el usuario dijo). Lo más importante para mejorar la calidad es mostrarle al cliente el software lo más rápido posible para recibir retroalimentación y así mejorar iterativamente.

Eso no quiere decir que no deberíamos tener ningún documento, pero siempre debemos cuestionarnos si un documento genera valor o no. Si no lo genera, se debe eliminar (este es el principio de la filosofía Lean), no importa lo que diga el gerente de proyectos, RUP o UML. 

PD: Cuando hablamos de calidad, es importante distinguir entre dos conceptos: Calidad percibida y calidad estructural. Me concentré en la primera, ya que al final es lo que más importa, y porque la segunda es su subordinada.

Thursday, October 27, 2011 8:26:40 AM

re: Calidad? eso para qué?

Esto debería tener un Like, +1 también para los comentarios, super  ;)

Ayer justo en mi clase de pruebas de software les contaba la definición que conocí de boca de @betancur en una de sus clases, "La calidad es un valor para alguien" y evidentemente es así, otra de las frases es "Si a alguien que no importa, le parece terrible el producto, probablemente no cambiemos nada".

Sobre aquellas cosas que generan valor, en efecto lo comparto, mucho más ahora en mi experiencia laboral de ser un analista de negocio, pero eso si, de haber pasado por lugares donde de una u otra forma pretendíamos dar a los clientes un producto que "nuestro proceso" considerara de calidad no solo en las piezas de software si no en la documentación asociada, evidentemente esto es un enorme plus, del que muchas veces es difícil justificar los cronogramas, sin embargo desde mi experiencia ahora del otro lado de la barrera, valoro mucho más la filosofía que nos menciona Esteban "Lean", en donde aquello que de verdad aporte valor a mi proceso y a mi producto, es lo que me importa, por que ahora soy responsable no del producto si no de optimizar el tiempo, esfuerzo y recursos con que es construido, definitivamente, que bueno sería aprender a equilibrar esas dos cosas, ya que en ese afán de tiempo y recursos, lo que he observado es que se terminan sacrificando cosas mínimas que persiguen la calidad en nuestros proyectos.

Thursday, October 27, 2011 8:37:18 AM
Eliana Caraballo

re: Calidad? eso para qué?

Totalmente de acuerdo! o sea, en ningún momento estoy diciendo que entre más documentos es mejor la calidad! lo que intento decir es que esos documentos que necesitemos generar para nuestro proyecto sean de real valor! que sean algo que realmente aporta a nuestro trabajo y que no los veamos siempre como un "ladrillo" que se inventó SGC para jodernos los últimos 15 minutos del día.  Son muy importantes, y si se saben usar y manejar correctamente, el trabajo será mucho más fácil... Obviamente no se garantiza que al cliente le va a encantar, pero al menos se tendrá la satisfacción del trabajo realizado correctamente.

 

El aporte de Sorey me parece super importante: "ya que en ese afán de tiempo y recursos, lo que he observado es que se terminan sacrificando cosas mínimas que persiguen la calidad en nuestros proyectos." ese sería el ideal: si todo está bien planeado, se tiene claro la calidad y su grado, y qué necesito para lograrla, nos evitaríamos muchas veces tantas carreras y tantas cosas hechas a medias.

 

Thursday, October 27, 2011 1:51:07 PM

re: Calidad? eso para qué?

Lastimosamente la gran mayoría de personas piensa que entre mas se documente mas equipado quedo el proyecto, pero tl vez es cierto solo que hay que saber como se documenta.

pienso primero que el manual de usuario no sirve para nada, la documentación de un software debe quedar dentro del software, l manejo de tooltip, ayudas y reseñas dentro de los módulos es una excelente ayuda para el que este administrando el software sepa como funciona y por donde ir.

a si mismo  un manual de soporte me parece que no sirve para nada pues el cliente siempre quiere que su proveedor le de soporte, entonces seria mas adecuado hacer un manual técnico de mas entendimiento para personas que están en están en la empresa del proveedor, que incluya instalación y configuración y otro de instalación especial para el cliente.

esta es mi opinión :)

Thursday, October 27, 2011 4:44:15 PM
Duver M Marzola

re: Calidad? eso para qué?

Me preocupa la carencia de documentación, en el sentido, que no sé quien carajo trajo el concepto que no tener documentación y desarrollar a lo que llegue es XP. No tener un marco fijo, apoyado en documentación, me da un proyecto mutable y voluble, sujeto al humor del cliente. Esto es cuento de nunca acabar, como desarrollador lo mejor es dejar el código lo más claro, sencillo y simple posible. Documentarlo hasta donde sea posible, nuestro mismo código se nos olvida luego de 3 meses de no verlo, ¿imaginen que será de otro cristiano que le toque trabajar en él?.

Odio documentar, pero las cosas es mejor dejarlas claras y con soporte  (escritas). El cliente pocas veces (o nunca) sabe lo que quiere en realidad. Los diagramas son necesarios, los planos son necesarios, gastar un tiempo al comienzo para definir, analizar, planear, es necesario, el error  radica en extenderse. El error radica en llenarse de documentación (proyectos de solo papel).

Apoyo la teoría del equilibrio, y que el sistema se modifica según las necesidades reales y no, la opinión de un don nadie en la reunión. No solo es de calidad si le gusta al cliente, puede que no le guste, pero hace lo que tiene que hacer y lo hace bien (y a la larga, ese es nuestro trabajo).

Comments are closed on this post.
© 2009 - 2013 Avanet