Contexto


La compañía Davisnet® se dedica a la fabricación y venta de estaciones meteorológicas para usos que van desde el doméstico hasta el agrícola. Cada estación está dotada de instrumentos de medición, como barómetro, termómetro, anemómetro, sensores de humedad interior, recolector de lluvia, sensores de radiación solar y sensores de humedad en el suelo.

Davisnet ® desea ofrecer a sus clientes la capacidad de monitorear la información de estos sensores desde una página de Internet y para ello ha contratado a una empresa desarrolladora de software que ya tiene un plan de trabajo. A ti te han asignado la coordinación de la ingeniería de requerimientos.

¿Cuál sería el primer paso que debes realizar para comenzar con la documentación de los requerimientos?

¿A quién deberías consultar para conocer las funcionalidades del sistema?

¿Qué técnica de indagación de información deberías utilizar para que las especificaciones de los requerimientos sean completas y lo suficientemente claras para que el equipo de desarrollo pueda cubrir con las expectativas de Davisnet®?

Esta son algunas de las preguntas que resolverás en este tema.

Explicación


4.1 Recopilación de información

Habiendo iniciado el proyecto de ingeniería de requerimientos, el primer paso será establecer las fuentes de información que se requieren y la necesidad de involucrar al mayor número de participantes clave que te permitan enlistar los requerimientos, describirlos a detalle y priorizarlos.

Fuentes de información:

  • Stakeholders: las personas de la organización que influyen directa o indirectamente en los requisitos del sistema son la principal fuente de información: clientes, gerentes, operadores, asistentes, equipo de desarrollo, entre otros.
  • Documentos: en una organización puedes encontrar los siguientes tipos de documentos; políticas, estándares, procedimientos, líneas de acción (guidelines) y manuales de usuario de sistemas heredados. Contienen información que es particularmente útil cuando se desea realizar un sistema que automatice un proceso manual de la organización.
  • Sistemas en operación: es un sistema que actualmente utiliza la empresa para operar sus procesos administrativos u operativos. En ocasiones podrás encontrar que el sistema realiza funciones de forma eficiente, útiles de replicar en el nuevo; por otra parte pueden ser utilizados para recuperar métricas de desempeño a comparar.

Sesiones de trabajo

Las reuniones con todos los stakeholders son particularmente efectivas, porque te permitirán escuchar diferentes puntos de vista sobre lo que se espera del software. Para que estas reuniones cumplan el objetivo, deben participar personas que tienen conocimiento e información sobre los procesos que se realizan en la empresa, asimismo una actitud propositiva y abierta. También deben ser capaces de tomar decisiones durante las sesiones.

“La meta es identificar el problema, proponer elementos de la solución, negociar distintos enfoques y especificar un conjunto preliminar de requerimientos de la solución en una atmósfera que favorezca  el logro de la meta” (Pressman, 2010).

Las sesiones suelen ser largas y en muchos casos es necesario realizar varias reuniones para ir aclarando la totalidad de los requerimientos. Esto implica que los participantes dejen de realizar sus funciones habituales para atender a estas reuniones, lo que provoca que muchos gerentes o directores se vean tentados a enviar personas que no son clave, para impactar lo menos posible a la operación. Es importante que el ingeniero de requerimientos detecte desde el inicio esta problemática antes de avanzar más, de lo contrario será una pérdida de tiempo.

Es responsabilidad del ingeniero de requerimientos ser el facilitador de las reuniones, aclarar las expectativas y reglas de comportamiento, mantener motivados a los participantes y guiarlos hacia la meta propuesta.

Las sesiones de trabajo deben realizarse en un lugar acondicionado, con material didáctico suficiente para poder expresar ideas de forma gráfica: pintarrón, marcadores, postit, rotafolio, hojas blancas, bolígrafos, proyector, etc.

La recomendación que hace Pressman (2010) para llevar a cabo estas reuniones de trabajo es comenzar con una declaratoria general del problema, que permita contextualizar la sesión. Los participantes pueden revisarla antes de iniciar la sesión. Al mismo tiempo se les solicita describir una lista de los elementos que conformarán el ambiente del sistema;  las funciones, proceso, resultados, restricciones o reglas de negocio aplicables y la lista de criterios de desempeño del sistema (velocidad y exactitud). Todo este trabajo previo permite obtener una visión particular de lo que se espera del sistema. Se comparan, se analizan, se eliminan y se agregan las características del sistema a través de un ejercicio de consenso. Éstas serán parte de un documento preliminar de especificaciones.

Miniespecificaciones

Algunas características del sistema requerirán descripciones más detalladas, que se llaman miniespecificaciones. Son particularmente útiles para aclarar las funciones críticas del sistema al equipo de desarrollo del software y son la base para validar el sistema por el usuario.

Por lo general, las miniespecificaciones son elaboradas por un grupo reducido de personas que conocen a fondo los pasos del procedimiento a describir. Estos pasos son analizados y complementados por las opiniones del resto del equipo de trabajo, con el objetivo de crear descripciones más estables y con una visión más amplia.

  1. Técnicas de recopilación de información

Estas técnicas permiten recuperar más información que detalle de forma completa y exhaustiva los requisitos del sistema. Son complemento de las sesiones de trabajo. Recuerda que puedes utilizar una o varias técnicas dependiendo de la situación y el tipo de información que necesites recolectar.

Haz clic en cada habilidad para revisar su descripción

4.2 Herramientas de soporte

Las herramientas que puede utilizar un ingeniero de requerimientos están relacionadas con el modelado de ideas, que permitan expresar información de una manera ágil y sencilla.
Imagina que necesitas explicar la arquitectura tecnológica de la organización a un grupo de usuarios. Lo más sencillo es simplificar la mayor cantidad de información a través de un diagrama o modelo gráfico.

Algunas herramientas que permiten realizar esto son las siguientes.

Haz clic en cada una de las herramientas para conocer más detalle

Productos de la indagación de requerimientos

El resultado de todo el trabajo que se realice para recopilar los requerimientos debe estar debidamente documentado. En este sentido Pressman (2010) propone el siguiente listado de productos de trabajo:

  • Enunciado de la necesidad y su factibilidad.
  • Un enunciado acotado del alcance del sistema o producto.
  • Una lista de clientes, usuarios y otros participantes que intervienen en la indagación de los requerimientos.
  • Una descripción del ambiente técnico del sistema.
  • Una lista de requerimientos (de preferencia organizados por función) y las restricciones del dominio que se aplican a cada uno.
  • Un conjunto de escenarios de uso que dan perspectiva al uso del sistema o producto en diferentes condiciones de operación.
  • Cualesquiera prototipos desarrollados para definir requerimientos.

Cierre


Para iniciar un proceso de ingeniería de requerimientos de un proyecto de desarrollo de un sistema, ya sea para una compañía de estaciones meteorológicas o cualquier otra,  es necesario establecer claramente el tipo de apoyo que necesitas de parte del personal, que definirá los requerimientos de las funciones del sistema. Su compromiso de participación activa será uno de los factores del éxito del proyecto.

El trabajo de la ingeniería de requerimientos puede iniciar de lo general a lo particular o viceversa, es decir, puedes iniciar con sesiones de trabajo para darle un contexto general y posteriormente detallar la información con técnicas de indagación; o bien iniciar con alguna técnica de recopilación de información para después detallarlo en reuniones con los usuarios.

Cualquier estrategia que apliques siempre debe permitirte detallar los requerimientos de manera que no haya duda de lo que se espera que haga el sistema, tanto para el usuario como para el equipo de desarrollo.

Checkpoint


Asegúrate de poder:
  • Analizar las diferentes técnicas de indagación de información que te permitan detallar los requerimientos de un sistema.
  • Conocer las herramientas que acompañan a las técnicas de indagación para ayudar a los usuarios a aclarar sus requerimientos.

Referencias


  • Pohl, K. y Rupp, C. (2011). Requirements Engineering Fundamentals. EE.UU: Rocky Nook.
  • Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico (7a ed.) México: McGraw Hill. ISBN: 9786071503145

Glosario


Políticas: son reglas generales que deben ser respetadas por la organización, por lo que son de carácter obligatorio.

Estándares: es la aplicación de una política específica que permite homogeneizar las acciones que deben llevar a cabo las personas de la organización.

Procedimientos: es la descripción paso a paso de un proceso para obtener los mismos resultados.

Líneas de acción (guidelines): describen sugerencias o alternativas que pueden aplicarse a situaciones poco comunes. Su aplicación no es de carácter obligatorio.

Sistema heredado: es un sistema que la organización ha utilizado anteriormente y que ha quedado obsoleto, por lo tanto se desea cambiar.