Según el informe del Caos (Chaos Report) una de las principales causas del fracaso de los proyectos de desarrollo es la mala gestión de los requisitos y/o requerimientos. En muchos casos ocurre o bien porque el analista o jefe de proyecto desconoce las técnicas para su educción, detección o elicitación de manera profesional y efectiva, y por el otro, que el usuario simplemente no sabe lo que quiere, o en su defecto no lo sabe trasmitir a su interlocutor técnico sus necesidades, su lenguaje o léxico es de negocios, y en tal sentido intenta hablar con su contraparte técnica en los términos que conoce.

El análisis de requisitos o requerimientos es CLAVE para que el proyecto reduzca los riesgos de fracaso, o en su defecto, incremente la calidad del producto final. ¿Cuántos malos desarrollos  nos encontramos en empresas de todos los sectores, a lo largo de nuestras vidas? — Por mi parte he visto muchos que nunca salen de la fase del mantenimiento perpetuo. E incluso la palabra “faseo” es común en el vocabulario de los desarrolladores para denotar que un proyecto siempre se desarrolla por fases.

Malos requisitos o requisitos incompletos, así como la falta de involucración del usuario en el proyecto las causas por qué fallan los proyectos, de acuerdo al Chaos Report.

La ingeniería o gestión de requisitos como se le conoce en la ingeniería de software o desarrollo de software, puede ser realizada siguiendo una metodología rigurosa y claros principios de análisis y diseño de aplicaciones. Todo ello, si se aplican sólidos principios conducen a mejores software y/o en cualquier caso reduce el riesgo de fracaso del proyecto.

El panorama se complica cuando entran en escena conceptos de Agilidad (Agile) y métodos como SCRUM, los cuales incorporan nuevos conceptos a un mismo objetivo o fin. La evolución es natural, los métodos tradicionales de analizar requisitos tienen más de 50 años de edad, y por contraste las nuevas aplicaciones móviles o Web, por ejemplo, son de nueva generación. Es por ello que surge la necesidad de nuestras técnicas o métodos para gestionar los requisitos o requerimientos.

Pero veamos cómo debe ser la nueva generación de gestión o ingeniería de requisitos para minimizar los fracasos de los proyectos:

  1. Requisitos Colaborativos. Con las herramientas existentes hoy día, basadas en modelos SaaS (Cloud Computing), es clave que los stakeholders puedan tener acceso a los requisitos que se están analizando y detectando, y puede colaborar en su perfeccionamiento o mejora de dichos requisitos. El trabajar colaborativamente los usuarios con los analistas responsables enriquece los requisitos y facilita su gestión. Herramientas como Jira Software y Confluence de Atlassian© son excelentes opciones para poder realizar el análisis o la ingeniería de requisitos de manera profesional. Trabajar colaborativamente los requisitos los mejora y por ende reduce los fracasos en muchos proyectos. Se debe olvidar las perversas prácticas de enviar requisitos por eMail y/o en reuniones informales, que lo que han contribuido con la mala calidad de los software desarrollados en muchas empresas (y por muchas empresas consultoras).
  2. Utilizar una herramienta en la Nube. Consecuencia del punto anterior, el utilizar una herramienta de nueva generación favorece la colaboración, trazabilidad y documentación de los requisitos de manera profesional. Los usuarios finales podrán verificar, validar y aprobar los requisitos cargados en el proyecto y facilitar el proceso de desarrollo de software.
  3. La incorporación Historias de Usuarios. El mundo Agile incorpora el concepto de “historias de usuarios”, Epics y Themes para denotar a los requisitos en una metodología Agile. Las herramientas como Jira Software (Agile) incorpora la facilidad para gestionar estos requisitos y perfectamente realizar seguimiento y trazabilidad de dichos requisitos. Independiente del proyecto o metodología, todo profesional IT debe conocer cómo se gestiona o crea una historia de usuario, cuáles son las técnicas de detección, apoyar al usuario final en su detección, y en definitiva poder gestionar requisitos o historias de usuarios de forma profesional.
  4. Técnicas de requisitos. Existen varias técnicas que sin duda alguna ayudan a mejorar la detección de requisitos de calidad desde el principio, algunas de ellas son: Team Building, Casos de usos, prototipos o Muck ups (en especial en aplicaciones móviles), análisis de atributos, el método Delphi, entrevistas, Brainstorming, entre otras. Aplicadas correctamente facilitan que los proyectos pueden contar con requisitos de calidad, lo cual redundará en proyectos de calidad.
  5. Documentación de los requisitos. El trabajar colaborativamente con herramientas de nueva generación como son Confluence y Jira Software, va dejando la “estela” de requisitos documentados, y podemos perfectamente generar nuestro documento de requisitos del software (DRS). El usuario se sentirá motivado a participar en el proceso de análisis de requisitos, la priorización de requisitos y la obtención del documento final DRS. La documentación de forma profesional y colaborativa facilita la gestión el análisis, lo cual sin duda alguna minimiza riesgos de fracasos e incrementa la calidad del producto final.
  6. Agile – SCRUM. Cobra fuerza en los equipos de desarrollo de software del mundo los métodos ágiles, siendo el más popular el método SCRUM, utilizado por una vasta comunidad de desarrolladores a nivel mundial, las historias de usuarios pueden documentarse perfectamente con las herramientas mencionadas, facilitando su gestión a los Products Owner y a los equipos de desarrollo de los proyectos SCRUM. Es por ello que consideramos esencial que los profesionales IT tenga una visión periférica de los requisitos en las empresas.
  7. Estandarización. Es clave que en la empresa exista un estándar general, común y compartido por todos. Tradicionalmente cada proyecto documenta a los requisitos de forma diferente, incoherente, o hasta si se quiere, de manera anárquica. Cada analista le incorpora de su “cosecha” nomenclaturas u formatos, que no son entendido por los responsables y mucho menos por las consultoras que luego le realizarán mantenimiento. Peor aún resulta, el hecho de aquellas empresas que contratan e o externalizan el desarrollo de aplicaciones con consultoras, resultando una especie de “caos” en la forma o manera que cada consultora redacta y/o define los requisitos de los proyectos en donde están involucrados. Es por ello, que resulta importante, el poder estandarizar la nomenclatura, estilo y narrativa de los requisitos a los efectos de eliminar ese caos o desorden que se genera al tratar de impulsar proyectos de software, y muy en especial a los de nueva generación.

En definitiva, los departamentos responsables de desarrollar software empresarial deberían evolucionar y cambiar la forma de gestionar o analizar los requisitos o requerimientos. Para ello se deben utilizar herramientas y técnicas de nueva generación. Conocer lo tradicional con lo ágil resulta importante para que los profesionales IT puedan mantener coherencia en la ingeniería de requisitos. Todo ello debe venir acompañado de herramienta colaborativas y en la nube, en donde los stakeholders y los analistas de aplicaciones trabajen de forma cooperativa ara formar o documentar lo que en definitiva se considera la base sólida de cualquier proyecto: Los Requisitos de Software o aplicaciones.

Las metodologías Agile, involucran desde el inicio a los usuarios finales en la gestión del proyecto, de hecho el usuario final responsable, denominado el Product Owner, es parte del Scrum Team responsable de llevar adelante el proyecto.

Si quieres conoce como ITMadrid IT Business School puede ayudar en la gestión y/o análisis de los requisitos de software te invitamos a que visites el curso: Gestión y Análisis de Requisitos IT:

informate