¿Qué es un requerimiento funcional? - La Oficina de Proyectos de Informática

miércoles, 30 de mayo de 2018

¿Qué es un requerimiento funcional?

Buscas formación en técnicas para identificar, analizar y gestionar los requerimientos de software. Curso Online de Ingeniería de requisitos: Software orientado a negocio. Asegurando el éxito de la producción de software. Para mayor información visita la página del curso.


La identificación, análisis y gestión de los requerimientos funcionales es una actividad crítica en la ingeniería del software. Por ello, a continuación te contaremos qué es un requerimiento funcional y por qué su gestión adecuada es fundamental para asegurar el éxito de tus proyectos.

La gestión de los requerimientos funcionales deficiente, es citada como una de las causas más frecuentes en el fracaso de los proyectos, es por ello que es importante entender que son los requerimientos funcionales, bajo qué metodologías deben identificarse y gestionarse para asegurar el logro de los objetivos.

En este artículo se explica qué son los requerimientos funcionales, cual es la importancia de definirlos sin ambigüedades y cómo se realiza la gestión de los requerimientos después de que han sido identificados, bajo enfoques predictivos y metodologías ágiles de gestión de proyectos de software.

Te presentamos a continuación nuestro artículo sobre que es un requerimiento funcional.


¿Qué son los requerimientos funcionales?


La guía del Business Analysis Body of Knowledge (BABOK) en su version 3, proporciona la siguiente definición para los requerimientos funcionales de una solución:

“Los requerimientos funcionales son las descripciones explicitas del comportamiento que debe tener una solución de software y que información debe manejar.”

Por lo tanto, los requerimientos funcionales:

  • Expresan las capacidades o cualidades que debe tener la solución para satisfacer los requerimientos de los interesados de proyecto.
  • Se expresan en términos de cuál debe ser el comportamiento de la solución y que información debe manejar.
  • Deben proporcionar una descripción lo suficientemente detallada para permitir el desarrollo e implementación de la solución.
  • Son los que más influyen en si la solución será aceptada o no por los usuarios.

Importancia de definir los requerimientos funcionales


Los problemas y errores en la gestión de requerimientos funcionales son citados como una de las causas más frecuentes que ocasionan insatisfacción de las expectativas de los interesados en proyectos de software.

Profundizando en las causas de estos problemas, las situaciones observadas con mayor frecuencia son:

  • Requerimientos funcionales con descripciones muy ambiguas, produciendo interpretaciones inadecuadas por parte del equipo de desarrollo.
  • El requerimiento funcional no fue entendido adecuadamente cuando fue levantado con el interesado, pasando información incorrecta al equipo de desarrollo.
  • En su forma original, el requerimiento funcional no era factible técnicamente y el equipo de desarrollo realizó modificaciones que no fueron aprobadas por los interesados.

Es fundamental la aplicación de metodologías probadas de gestión de requerimientos funcionales que eviten que estos problemas sucedan, algunas de las prácticas más recomendadas son:

  • Ante la presencia de ambigüedades, solicitar información adicional, mesas de trabajo o reuniones con los interesados. Es menos costoso esperar a obtener una descripción que aclare las dudas antes que asumir y avanzar en el desarrollo.
  • Validar las descripciones escritas de los requerimientos funcionales antes de comenzar su desarrollo. 
  • Cualquier duda que presente el equipo de desarrollo buscar comunicación con los interesados para su resolución.
  • Si durante el desarrollo se presentará la necesidad de modificar algún requerimiento funcional debido a razones técnicas, solicitar mesas de trabajo o reunir, no proceder con un desarrollo e implementación que no ha sido validado por los interesados.

Siguiendo estas prácticas podemos asegurar una mejor aceptación de los requerimientos funcionales cuando llegue el momento de la implementación.

¿Buscas formación en técnicas para definir los requerimientos de software?




Se ha hecho muy evidente que una especificación deficiente de los requisitos del software puede conducir a proyectos fallidos, de allí que esta disciplina cada vez adquiera mayor importancia.

El curso de Ingeniería de requisitos esta diseñado para enseñarte a identificar y analizar requisitos de manera integral, con el cual garantizaras la elaboración de especificaciones funcionales de calidad.

Conocerás técnicas de levantamiento de requisitos como la revisión de documentación, observación y entrevistas, técnicas para el análisis como la descomposición funcional, modelado de procesos, MoSCoW, TimeBoxing, así como actividades de gestión de requisitos para su organización, priorización y gestión de alcance.




Los requerimientos funcionales en un enfoque predictivo


Bajo un enfoque de proyecto predictivo, esto es, un proyecto de software ejecutado con la metodología de ciclo de vida de desarrollo de sistema (Cascada), esto es, el desarrollo del sistema se realiza el fases claramente delimitadas, el Análisis, diseño, desarrollo, pruebas e implementación de la solución.

En la metodología cascada, el desarrollo de un nuevo sistema o requerimiento funcional individual siempre comienza con una fase de levantamiento y análisis, caracterizada por los siguientes aspectos:

  • Especialistas conocidos como Analistas de negocio (Business Analyst) realizan reuniones con los interesados (Por ejemplo los usuarios de la nueva solución) para levantar cuáles son sus requerimientos.
  • Para que el enfoque sea exitoso, el documento debe ser lo más detallado posible. Sin embargo, un problema es que al tener que ser detallado, los revisores pueden verse abrumados, ocasionado que ciertos errores no sean identificados.
  • Una vez aprobado, el documento de requerimientos de software se convierte en un contrato, cualquier aspecto que el equipo de desarrollo no implemente se convierte en una causa de no aceptación. Por otro lado, cualquier aspecto adicional o cambio solicitado por los interesados debe llevar un proceso de cambio de alcance.

¿Bajo este enfoque que es un requerimiento funcional? Pues es un comportamiento o funcionalidad que debe ser cumplida con rigurosidad y exactitud por la solución implementada.

Como se sabe, el surgimiento de las metodologías ágiles ha devenido en muchas críticas al enfoque predictivo, sin embargo, es necesario que entendamos que existen situaciones en las que de hecho el enfoque predictivo es el más recomendable.

En situaciones donde tenemos una solución conocida, los estándares para implementar nuevos requerimientos funcionales están definidos y existe claridad en las reglas por todas las partes, el enfoque predictivo es el que da los mejores resultados.

Los requerimientos funcionales en las metodologías ágiles


Las metodologías ágiles establecen un enfoque más flexible sobre lo que es un requerimiento funcional, los proyectos son ejecutados en iteraciones cortas se fomenta una mayor constante interacción entre usuario y desarrolladores abrazando el cambio en lugar de rechazarlo.

Por ejemplo en el marco de trabajo Scrum:

  • El dueño de producto (Product Owner) es el que tiene la responsabilidad de la gestión de los requerimientos funcionales.
  • Sostiene reuniones con los interesados e identifica los requerimientos funcionales los cuales luego lleva al equipo de desarrollo de software.
  • Una de las formas de documentar los requerimientos funcionales en metodologías agiles es la historia de usuario.
  • La intención es que las historias de los usuarios sean el inicio y no el final de las conversaciones entre usuarios e interesados sobre la funcionalidad que debe tener el software.
  • El enfoque ágil fomenta la constante comunicación entre interesados y usuarios, los requerimientos funcionales se van elaborando progresivamente, priorizando para el desarrollo los que estén definidos sin ambigüedades.

¿Bajo este enfoque Qué es un requerimiento funcional? Pues es un elemento que se documenta como una historia de usuario que puede ser elaborado progresivamente y modificado en función de las necesidades del negocio.

Técnicas para el levantamiento y análisis de requerimientos funcionales


Independientemente de si se aplica un enfoque predictivo o una metodología ágil las técnicas para el levantamiento y análisis los requerimientos son similares.

¿Te gustaría saber más acerca de cuáles son estas técnicas? te recomendamos los siguientes artículos:

> 7 Técnicas para el levantamiento de requerimientos

> 8 Técnicas de análisis de requerimientos de software

Gestionar los requerimientos funcionales


Un aspecto que es primordial entender cuando definimos qué es un requerimiento funcional es la gestión del mismo no finaliza cuando se identifican, analizan y documentan. La gestión de requerimientos se extiende a largo del ciclo de vida del proyecto e inclusive trasciende a este.

La guía del Business Analysis Body of Knowledge (BABOK) en su version 3, define las actividades involucradas en la gestión de requerimientos, a saber:

  • Trazabilidad de requerimientos.
  • Mantenimiento de requerimientos.
  • Priorizar requerimientos.
  • Evaluar cambios en los requerimientos.
  • Aprobar requerimientos.

En los enfoques predictivos de gestión de proyectos, la gestión de requerimientos es una especialidad, integrada por una gerencia de requerimientos funcionales y analistas de negocio. La priorización y aprobación forman parte del proceso de planificación y los cambios en requerimientos se procesan utilizando un proceso de cambio de alcance.

Por otra parte, las metodologías ágiles como por ejemplo Scrum, integran la gestión de requerimientos dentro del enfoque, por ejemplo la priorización de requerimientos ocurre de forma natural manejando un product bakclog que se prioriza de acuerdo al avance que tenga la elaboración de requerimientos funcionales y su valor para el negocio. Por otro lado, la evaluación de cambios a los requerimientos se realiza en las reuniones Sprint Review que ocurren al final de cada iteración.

¿Y qué opinas tú?


¿Qué opinas sobre nuestra definición sobre lo que es un requerimiento funcional? ¿Agregarías algo a nuestra definición? ¿Cómo se realiza la identificación, análisis y gestión de los requerimientos funcionales en tu organización?

¿Buscas más información de gerencia informática?

¿Quieres obtener completamente gratis y directamente en tu correo electrónico plantillas, artículos y otros recursos de gerencia informática?, entonces presiona "suscríbete" a continuación.

Suscríbete a la lista de correo electrónico:


Vía FeedBurner, se abrirá una nueva ventana

También puedes seguirnos vía Twitter, Facebook o Linkedin:

  

Artículos relacionados

1 comentario :

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.