Blog de Innevo

Evita Defectos: Importancia de las Etapas del Ciclo de Vida del Software

Escrito por Adolfo Navarro | Sep 20, 2024 3:30:00 PM

 

En todo proyecto de desarrollo de software, la calidad del producto final depende en gran medida de cómo se ejecutan las etapas del ciclo de vida del software. Un mal manejo en fases cruciales como los Requisitos, el Diseño y Prototipo, o las Pruebas, puede generar defectos costosos y retrasos en la entrega. En este artículo, analizaremos la importancia de cada etapa y cómo una correcta gestión puede mejorar significativamente la calidad del software, reduciendo errores y optimizando el rendimiento del equipo de desarrollo.

¿Por qué es importante el Ciclo de Vida en los proyectos de software?

El Ciclo de Vida, no es más que el meta proceso para lograr algo. Por ejemplo, en mercadotecnia se habla del “customer journey”, que es básicamente el proceso de atender a un cliente de principio a fin y no solamente el acto de compraventa. De igual forma en el desarrollo de software existe un meta proceso que al seguirlo cabalmente, el software resultante es de gran calidad:

 

 

Como podrás ver, cumplir un proyecto con estos criterios equivale a tener bien estructurado y aplicado un proceso de desarrollo de software de excelencia.

Quiero detenerme un poco para enfatizar el término excelencia: las ideas básicas de calidad nos invitan a buscar la perfección en los productos y servicios aun sabiendo que no es posible alcanzarla, pero mantener una visión así es indispensable para lograr la excelencia, es decir, lo más cercano a la perfección.

Y claro, si tenemos un proceso de desarrollo de software que logre los 6 criterios descritos, será un producto de excelencia que garantiza la calidad del software.

¿Cuáles son las etapas del Ciclo de Vida del Software?

Un ciclo de vida estándar de desarrollo de software está formado por las siguientes etapas:

  1. Planificación.
  2. Definición o análisis de requisitos.
  3. Diseño y prototipo.
  4. Desarrollo del software.
  5. Pruebas.
  6. Lanzamiento o despliegue.
  7. Operaciones y mantenimiento.

Cabe decir que no todas las etapas son igualmente influyentes en el aseguramiento de la calidad del software desarrollado. Entonces, ¿cuáles serían las más importantes? Las etapas 2. Definición/análisis de requisitos, 3. Diseño y prototipo, y 5. Pruebas son las más influyentes en los resultados.

Estas etapas son en las que más fallas surgen si no se ejecutan adecuadamente. Lo dicen diferentes fuentes bibliográficas, pero también lo hemos validado en nuestra experiencia de consultoría a empresas de desarrollo de software.

Veamos con más detalle la importancia de estas 3 etapas.

La impotancia de la definición o análisis de requisitos

Esta etapa es la principal causa de fallas en el software, entre el 40% y 50% de los defectos se provocan aquí.

La razón es clara: el usuario, quien es el que define las características funcionales del software, no dedica el esfuerzo necesario para realizar un profundo análisis de la situación o actividad que desea automatizar.

Esto provoca que al momento de entregar el producto pregunte algo así como:

mmm supuse que haría...

bueno… no lo dije porque los expertos son ustedes”.

Sí, expertos en hacer software, pero no en el proceso empresarial a automatizar.

También es frecuente que el cliente no facilite que sus expertos internos en la tarea a automatizar dediquen el tiempo necesario a trabajar con el analista del equipo de desarrollo en la definición de requisitos.

Otro factor importante es que pocas empresas de desarrollo de software utilizan el “maquetado” o una previsualización del software para que sea validado por el usuario.

Si quieres recomendaciones para mejorar esta etapa lee: Cómo realizar una buena especificación de requisitos de software (SRS).

La importancia del diseño y prototipo

Esta es la segunda causa de defectos, entre el 15% y 20% debido a que el analista debe considerar además de las funcionalidades de ingeniería aspectos como el overhead administrativo, por ejemplo. En ocasiones el software obtenido satisface la funcionalidad, pero el usuario comenta que es lento.

Bien, este tipo de problemas se evitan en esta etapa. En Innevo, siempre hacemos la recomendación de involucrar a los testers desde esta etapa de diseño y prototipo, para que desde ya se diseñen los casos de prueba funcionales y no funcionales: Como el caso de prueba valida las operaciones que hará el usuario con el software a la vez que contempla las capacidades de funcionamiento, desde este momento se tiene una idea clara de lo que debe lograr el software.

Al principio a nuestros clientes suele parecerles absurdo, pero te puedo asegurar que funciona ya que así nos lo demuestra nuestra experiencia: los equipos que han decidido adoptarla, a pesar de su escepticismo inicial, han tenido grandes resultados.

Espero que al menos reflexiones sobre esto.

La importancia de las pruebas

Esta es la tercera causa de más defectos en el software, entre el 10% y 15%.

“El de atrás paga”. ¿Cuántas veces no sucede que el plazo de una etapa no se cumple y quita tiempo a la siguiente? Esto provoca que la última etapa, la de Pruebas, pague las consecuencias de esto al ya no tener tiempo suficiente para realizar todas las pruebas necesarias y termine realizando solo “las más importantes”.

No te sabría decir que signifique “importante” en esta etapa, depende del criterio de quien decide (y ahí puede haber otros problemas), pero si las pruebas ya fueron diseñadas en la etapa 2, como te recomendamos, la posibilidad de cumplir con todas, aun cuando el plazo sea más corto del previsto, es muy alta.

Más recomendaciones sobre el área de pruebas: Tácticas para Implementar un Departamento de Pruebas de Software Exitoso.

Identifica las etapas que más defectos están generando y optimiza tus proyectos

Como puedes ver, cuando estas tres etapas son deficientemente ejecutadas pueden provocar entre el 65% y el 85% del total de los defectos de software. La etapa de Desarrollo, para sorpresa de muchos, es la que menos defectos provoca, a la vez que son los más fáciles de solucionar cuando se detectan en la etapa de pruebas.

Así que desarrollar buen software no es solamente escribir buen código. Resulta más importante asegurarte de obtener los requisitos correctos y probarlos correctamente, lo que finalmente es la clave de la calidad: hacer lo correcto, correctamente.

Evidentemente esto no significa que las otras etapas del ciclo de vida del software no sean importantes, pero si tienes una tasa alta de defectos en el software que produce tu equipo y haces un análisis de Pareto verás que las etapas que te he comentado tienden a ser el 20% de las causas que provocan el 80% de los problemas en el proyecto.

Espero que permitas a tu criterio reflexionar un poco sobre lo expuesto, aun cuando es contraintuitivo lo que te he dicho. Haz la prueba, al menos con algún proyecto pequeño, y verás los extraordinarios resultados.

¿Quieres comprobarlo? Descarga gratis nuestra Herramienta de Análisis de Defectos en las Etapas del Ciclo de Vida del Software para, con un sencillo análisis de Pareto comprobar cuáles etapas son las que cumplen con ser el 20% de las causas que provocan la mayoría (el 80%) de los problemas.

¿Cómo usar este recurso?

  1. Registra los defectos que se han generado en uno de tus proyectos. Con ellos, haz una tabla con cada etapa del ciclo de vida y la cantidad de defectos que se producen en dicha etapa.
  2. Luego, coloca estos datos en orden de mayor a menor en la columna de “Número de defectos originados en esta etapa”. En la columna “Porcentaje Absoluto” se calculará de forma automática el porcentaje de defectos.
  3. Cuando la cifra de “Porcentaje Absoluto” se acerque mucho o llegue a 80% habrás encontrado que esa etapa y la(s) anterior(es) a ella en la tabla son las principales causas que debes atender.
Utiliza este recurso varias veces para comparar datos de diferentes proyectos. Observa las tendencias de tu equipo y con base en tu análisis refuerza las actividades en las etapas que están generando la mayor cantidad de problemas.

Continúa registrando la cantidad de defectos por etapa y comprueba cómo, tras hacer ajustes, no solo verás reducido el número de defectos, sino que todos tus proyectos fluirán de manera más ordenada y satisfactoria.

 

Si haces el experimento, ¡cuéntanos tus resultados en redes sociales!