El análisis de requerimientos es fundamental para todo proyecto de desarrollo de software exitoso. A lo largo de los años, se han identificado varias causas por las que fallan los proyectos de software; sin embargo, los requerimientos mal obtenidos, documentados, validados y gestionados contribuyen enormemente al fracaso de los proyectos de software.
Los proyectos que pasan por alto los procesos de análisis de requerimientos tienen más probabilidades de sufrir fallas, desafíos y otros riesgos consiguientes. El costo de los fracasos y los sobrecostos de los proyectos cuando se estima es bastante grande y grave. Además, estas fallas y excesos en los proyectos de software impactan en el competitivo entorno del mercado actual, afecta negativamente la imagen, la rentabilidad y los ingresos de las empresas y disminuye la comerciabilidad de sus productos, así como la satisfacción percibida de sus clientes (lo que también conduce a una escasa lealtad).
¿QUE ES UN REQUERIMIENTO?
Un requerimiento es una declaración sobre un sistema propuesto que todas las partes interesadas están de acuerdo en que debe hacerse realidad para que los problemas de los clientes se resuelvan verdaderamente. Es una expresión de las ideas que se intentan plasmar como parte del desarrollo de software. El requerimiento es la declaración del servicio o restricción de un sistema que describe las propiedades a nivel de usuario, los sistemas generales, las restricciones específicas y las necesidades de los clientes. Sin embargo, también puede describir los atributos y el comportamiento de un sistema. Además, el requerimiento forma la base de la evaluación original y las ideas para desarrollar y validar cualquier producto, es fundamental para definir el propósito y el proceso de un proyecto y ayuda a analizar y gestionar un proyecto.
El requerimiento tiene que ver con capturar los objetivos y el propósito de un sistema. Establece las condiciones o la capacidad que necesitan los usuarios para resolver problemas o cumplir sus objetivos. La precisión y la calidad de los requerimientos contribuyen enormemente al éxito del desarrollo de un proyecto o sistema.
Cada proyecto tiene requerimientos básicos que definen lo que los usuarios finales, los clientes, los desarrolladores, los proveedores o la empresa (es decir, las partes interesadas) requieren de él, junto con algunas necesidades del sistema para un funcionamiento eficiente. El requerimiento es un factor clave durante el desarrollo de cada software, ya que describe lo que necesitan las diferentes partes interesadas y cómo el sistema satisfará estas necesidades.
Diversas investigaciones revelan que las fallas de los proyectos de software se deben principalmente a requerimientos inadecuados, cambiantes, deficientes, expectativas no viables, etc. No obstante, la aplicación de un enfoque sistemático reduciría los desafíos del proceso de análisis de los requerimientos y las posibilidades de que cualquier proyecto falle. Un requerimiento poco claro es la principal razón de las fallas de los proyectos de software.
POR QUÉ LOS PROYECTOS DE SOFTWARE TIENEN ÉXITO O FALLAN
Un proyecto de software, según lo categorizado por Standish Group, puede ser exitoso, desafiado o fracasado. Un proyecto de software exitoso es aquel que se completa a tiempo y dentro del presupuesto asignado, y que tiene todas las características y funciones originalmente especificadas. Un proyecto desafiado es uno que se completa, pero con tiempo y presupuesto excedidos y también con menos características y funciones en comparación con las especificadas originalmente. Un proyecto fallido es aquel que se aborta o cancela antes de su finalización. También es uno que se completa, pero nunca se implementa De acuerdo con diferentes estadísticas, solo el 34% de los proyectos de software tuvieron éxito, el 44% fueron desafiados y el 22% fracasaron. Otro informe estableció que las prácticas de análisis de requerimientos contribuyeron con más del 42% del éxito general del proyecto. Asimismo, las prácticas inapropiadas de análisis de requerimientos representan más del 43% de las razones del fracaso del proyecto de software.
Además, muchos investigadores han identificado que el 70% de los requisitos eran difíciles de identificar y el 54% no eran claros ni estaban bien organizados. El informe de caos de 1995 enumera los «requisitos incompletos» como la principal causa de fallas en los proyectos de software. El Grupo Standish informa en 1994 que solo el 16% de los proyectos tuvieron éxito. Otros investigadores también señalaron que:
- Los requisitos son difíciles y desafiantes de describir en lenguaje natural;
- Los requisitos tienen muchos tipos y niveles de detalles diferentes;
- Los requisitos son difíciles de gestionar si no están bajo control;
- La mayoría de los requisitos cambian durante el desarrollo del software.
Otras causas identificadas fueron: una planificación deficiente, incluidas dependencias faltantes, requisitos modificados y no finalizados, requisitos clave omitidos y alta rotación del personal de TI. El informe de caos de Standish Group (1994) muestra que el 29% de todos los proyectos tuvieron éxito (es decir, se entregaron a tiempo, dentro del presupuesto, con las características y funciones requeridas); El 53% fue desafiado (es decir, entregado tarde, por encima del presupuesto y / o con menos características y funciones requeridas); y el 18% falló (cancelado antes de su finalización o entregado, pero nunca utilizado).
LA IMPORTANCIA DEL ANÁLISIS DE REQUERIMIENTOS EN EL ÉXITO DEL PROYECTO DE SOFTWARE
El Análisis de Requerimientos es la fase importante del proceso de desarrollo de software. Básicamente, su objetivo es recopilar requerimientos significativos y bien definidos de los clientes de la manera adecuada. Es importante desarrollar un software de calidad que pueda satisfacer las necesidades del usuario sin errores. Es obligatorio aplicar buenas prácticas de análisis de requerimientos y análisis de negocio en cada etapa del proceso de desarrollo de software. Se acepta comúnmente que el análisis de requerimientos es el proceso más importante, crítico y complejo en el proceso de desarrollo de software. Un requerimiento bien definido representa la funcionalidad del software que satisface las necesidades del cliente.
El éxito o el fracaso de un proyecto depende de la precisión y la gestión eficaz de los requerimientos. Es crucial determinar la combinación de técnicas efectivas que se utilizarán para la elicitación de los requerimientos y documentar adecuadamente el proceso y los requerimientos para reducir los desafíos y las posibilidades de falla. Por lo tanto, el análisis de requerimientos debe ser el punto de partida y la columna vertebral de cualquier proyecto o decisión porque ayuda a determinar y enfocarse en el objetivo, hacer coincidir las necesidades de las partes interesadas con el proceso de desarrollo del producto, aumentando así las posibilidades de lograr el mejor resultado. Sin embargo, debe gestionarse a lo largo de todo el ciclo de vida de desarrollo del producto o sistema para el éxito del proyecto y la mitigación de fallas.
CONCLUSIÓN
El éxito o el fracaso de cualquier proyecto de desarrollo de software depende de cómo se llevó a cabo el proceso de requerimientos. El costo o los riesgos involucrados en un proceso de requerimientos mal diseñado son grandes y, a veces, irreparables. El análisis de requerimientos se erige como la piedra angular sobre la que se asienta el éxito de los proyectos de software. Se pueden evitar desperdicios colosales si se presta la atención adecuada a un análisis de requerimientos adecuado en todos los proyectos de desarrollo de software. Como se pudo observar, los procesos de requerimientos deficientes son responsables de los desafíos y fallas de los proyectos de software mientras que, por otro lado, una buena recopilación y proceso de requerimientos contribuye al éxito de los proyectos de software. Por lo tanto, corresponde a los planificadores, analistas de negocio, ingenieros y gerentes de proyectos de software incorporar un proceso de análisis de requerimientos adecuado en cada proyecto de desarrollo de software para lograr el éxito del proyecto y eliminar las fallas y los desafíos del proyecto.
Referencia:
Interesante tema..me gustaria profundizar as acercas de las tacticas para minimizar el impacto de las cuasas identificasdas:
Los requisitos son difíciles y desafiantes de describir en lenguaje natural;
Los requisitos tienen muchos tipos y niveles de detalles diferentes;
Los requisitos son difíciles de gestionar si no están bajo control;
La mayoría de los requisitos cambian durante el desarrollo del software.
Como analista de Calidad de SW las he vivido
Gracias por tu comentario. Si definitivamente gestionar los requisitos adecuadamente es una habilidad que es necesario desarrollar para hacer un buen análisis de negocio. La Guía BABOK recomienda varias prácticas para llevar una adecuada gestión de los mismos que te permite incrementar la calidad de los requerimientos. Saludos!