miércoles, 30 de mayo de 2007

Organización de la Información (I)

Una vez que ya tenemos recabada cierta información, nos asaltan siempre las siguientes dudas, ¿tengo toda la información?, ¿seguro que no me he dejado algo?, ¿la información que tengo es correcta?, ¿y completa?, ¿y no excluyente?...

Después de mucho pensar, a Alfredo Zurdo de Entel IT Consulting, se le ocurrió una técnica para organizar los requisitos que presenta los siguientes beneficios:
  • Sencillez: Se basa en el principio de divide y vencerás. Si tienes un concepto o problema grande, divídelo.
  • Adaptable: Se puede analizar el sistema mediante dos enfoques, ya que se puede utilizar un criterio funcional o estructural.
  • Relacionado: Gracias a las asociaciones entre elementos se puede conocer qué está relacionado con qué.
  • Global: Permite obtener una visión de los todos sus elementos y sus relaciones.
  • Verificable: Gracias a sus reglas de balanceo y sus reglas de relación, podemos conocer si el resultado obtenido es correcto, falta o sobra información.
La técnica
  • Para desarrollar la técnica necesitaremos los siguientes materiales e información previa:
  • La petición de la unidad de negocio.
  • Las actas de las reuniones de captación de requisitos.
  • Un taco de tarjetas de cartulina de 5x3".
  • Rotulador, goma de borrar y lapicero.
  • Una mesa despejada.
Pasos a seguir
  1. Divide y vence: Siguiendo un criterio funcional o estructural.
  2. Crear las tarjetas PRC: Por cada partición creamos una tarjeta.
  3. Asignar responsabilidades a cada tarjeta.
  4. Buscar las colaboraciones necesarias para cada responsabilidad.
  5. Aplicar las reglas de balanceo a las tarjetas creadas: Balanceamos tanto por exceso como por defecto.
  6. Iterar los pasos anteriores hasta la condición de parada.
Como podéis comprobar es una técnica sencilla, de todas formas en siguientes publicaciones daremos cuerpo a cada uno de los pasos especificados.

martes, 17 de abril de 2007

Preguntas para capturar información (3)

Una vez que ya sabemos lo que queremos saber, debemos plantear las preguntas. Y lo primero es superar el síndrome del papel en blanco, ¿por dónde empiezo?, pues por aquél elemento que es menor en la mayoría de las ocasiones, los actores, después seguiré la relación existente según el diagrama del artículo anterior.
  1. Actores: Entendemos como actor aquella persona o sistema externo que interactúa con nuestro sistema, por lo que la pregunta debería ser ¿Quiénes utilizarán el sistema?.
  2. Requisitos Funcionales: Queremos conocer qué podrá realizar cada actor en el sistema, por lo que tendremos que hacer tantas preguntas para captar requisitos funcionales como actores hayamos identificado. Si tenemos dos actores, un usuario y un administrador, las preguntas deberían ser ¿Qué podrá hacer el usuario en el sistema?, ¿Qué podrá hacer el administrador en el sistema?.
  3. Requisitos No Funcionales: Las características del entorno son muy útiles conocerlas desde un principio. Por regla general están íntimamente relacionadas con dónde tendrán interacción con el usuario, a excepción de ciertos tipos de arquitecturas o entornos, pero la pregunta que se le debe hacer al interlocutor debería ser una por cada actor identificado con la siguiente forma ¿Dónde podrá utilizar el usuario el sistema?, ¿Dónde podrá utilizar el administrador el sistema?.
  4. Requisitos de Información: El caso de estos requisitos es compleja, ya que no puedes preguntar a un usuario por conceptos, nos debemos centrar en aquello que conoce, como son las entradas y/o salidas que espera del sistema como son pantallas, consultas e informes, por tanto debemos hacer dos tipos de preguntas, ¿Qué información necesitas introducir en el sistema? y ¿Qué información necesitas que te proporcione el sistema?.
  5. Restricciones de los Requisitos de Información: Estas reglas de negocio pueden estar asociadas tanto un único concepto (Requisito de Información), como a la relación de varios, y pueden venir dadas por cuestiones puramente legislativas, como asociadas a la cultura organizativa. Esto conlleva que tengamos dos tipos de preguntas (imaginemos que tenemos persona y cuenta bancaria), las cuales serían, ¿Qué aspectos legislativos ha de cumplir una cuenta bancaria en el sistema? y ¿Qué aspectos legislativos rigen la relación entre cuenta bancaria y persona en el sistema?.

Toda esta información será recogida en las diferentes actas de reunión. Más adelante veremos qué hacemos con dicha información.

viernes, 16 de febrero de 2007

Preguntas para capturar información (2)

Es muy común recabar información en las entrevistas de captación que no nos hace ninguna falta, lo cual provoca desorientación en nuestro cliente (a cualquier nivel), por lo que lo primero que debemos saber, es qué información necesito. El tener totalmente claro el tipo de información a recabar es muy útil, y nos permite aclarar las preguntas que tengo que realizar, e ir al grano, de esta manera no existirá esa sensación de pérdida de tiempo, o si es así, será debida a otros factores o entornos, pero no debido a la entrevista para capturar la información. Partiendo del gráfico del artículo anterior, vamos a especificar el tipo de requisitos y elementos son necesarios para cada uno de los enfoques:
  • Enfoque funcional: Como este enfoque permite conocer qué realizará el sistema y quién lo hará, definiremos requisitos funcionales y actores.
    • Requisitos funcionales (RF): Son aquellas actividades que ha de realizar el sistema.
    • Actores (ACT): Son aquellos elementos externos que interactúan con nuestro sistema mediante requisitos funcionales.
  • Enfoque estático: En este enfoque prima la información con la que trabajará el sistema y sus restricciones, por lo que son necesarios:
    • Requisitos de información (RI): Representan cada concepto con el que trabaja nuestro sistema.
    • Restricciones sobre los Requisitos de Información (RRI): Representan dos tipos de limitaciones sobre la información (RI). Tipo de información, o significado, que está obligado a cumplir el RI, o tipifica la relación (número de elementos relacionados), entre dos o más RI.
  • Enfoque dinámico: El enfoque dinámico nos muestra la relación entre el enfoque funcional y el estático, y no tiene definido por tanto ningún requisito específico, ya que nos responde al cuándo y cómo.
  • Entorno: Las características del entorno son muy importantes, por lo que tiene asociado requisitos no funcionales.
    • Requisititos No Funcionales (RNF): Estos requisitos nos permiten especificar características de arquitectura lógica, infraestructura, interfaz gráfica, seguridad, rendimiento y disponibilidad e, integración y portabilidad.
Teniendo en cuenta estos requisitos y elementos, la relación que existe entre ellos y que la mejor manera de plantear un proyecto, es crear objetivos (ya veremos cómo se hacen), el siguiente gráfico muestra mi propuesta que resume todo lo anterior.

viernes, 12 de enero de 2007

Preguntas para capturar información (1)

Esta una de las partes más difíciles e importante de todo el ciclo de ejecución de una petición, ya que dependiendo de la información que captemos, así realizaremos el resto del trabajo. Por todo esto, las preguntas que realicemos nos han de garantizar:
  1. Cubrir todos los aspectos funcionales, es decir, qué realizará el sistema y quién lo hará.
  2. Cubrir todos los aspectos informativos, es decir, qué información gestionará el sistema.
  3. Cubrir todos los aspectos técnicos, es decir, que las cosas funcionen donde han de funcionar.
Los dos primeros puntos nos proporcionan, en un sistema software, lo que se denomina el enfoque funcional (1) y el enfoque estático (2). Más adelante veremos en qué se convierte todo esto.

El tercer punto nos proporciona información de cómo se relacionan los otros dos enfoques.

Más adelante hablaremos sobre la siguiente capa y profundizaremos un poco más.

jueves, 4 de enero de 2007

Preparar la Reunión

Como decíamos en la publicación anterior, lo primero que debemos hacer es identificar a los interlocutores, y éstos pueden ser:
  • Clientes: Principalmente recabaremos información de clientes administrativos y técnicos para el primer acercamiento.
  • Expertos en el dominio: Otros analistas de negocio que conozcan bien tanto lo que se hace actualmente como lo que se debería hacer, aunque sea en el caso perfecto (ya analizaremos luego su adecuación e idoneidad).
  • Proyectos anteriores: No sólo recabaremos información de personas, sino también de la "documentación" de los proyectos anteriores realizados. Lo mismo estamos realizando un evolutivo o adaptativo de un producto ya realizado por nosotros o no.
  • Otros profesionales de IT: Seguramente otros compañeros que estén trabajando en el área de IT habrán hecho proyectos para el mismo cliente. Son una fuente muy importante de información.
Y una vez que los tengo indentificados ¿qué hago?. Cogemos un taco de folios de papel para reciclar, los dividimos en cuartillas, y escribimos en cada una el nombre de la persona con la que nos vamos a reunir.

El siguiente paso dependerá del método elegido, pero me centraré en las entrevistas ya que es el más utilizado. El primer paso será preparar la batería de preguntas a realizar, y se las asignaremos a aquella o aquellas personas a las que se las debamos hacer (Sobre qué y cómo hacer las preguntas hablaremos en otro momento). De este modo tendremos un conjunto de cuartillas con preguntas a realizar, tal y como se puede observar en la siguiente imagen.

El siguiente paso consiste en identificar el orden, es decir, vamos a tener que reunirnos con unas personas antes que con otras ya sea por gerarquía (lo siento mucho pero es así), dependencias funcionales o entre las preguntas.

Con todo esto ¿qué hemos conseguido? Tener una planificación de reuniones y poder lanzar las convocatorias con un órden del día ¿cuál? la batería de preguntas que tiene asignada cada persona.

Lo siguiente, realizar las entrevistas, pero eso lo comentaré más adelante.

El Proceso de Captación

Bien, ya estamos en la primera fase de la ingeniería de requisitos la captación de información. El objetivo de esta fase es recabar, de todas las fuentes requeridas, la información relevante e implicada directamente con la petición. Para conseguir dicho objetivo se han detectado las siguientes actividades:
  1. Preparar la Reunión: En esta actividad se identificarán los interlocutores necesarios, el método a utilizar en la realización, se prepararán las preguntas adecuadas y se lanzará la convocatoria.
  2. Realizar la Reunión: Dependiendo del tipo de método utilizado, serán individuales o grupales, pero todas ellas han de tener una agenda y los participantes han de asistir preparados.
  3. Analizar la Información: Toda información recabada durante las reuniones, ha de ser analizada para conocer si disponemos de información suficiente para pasar a la siguiente fase, o por el contrario hay que realizar otras para concretar o ampliar la información recabada.

¿Cómo saber todas estas cosas? Bueno, eso dependerá de los métodos utilizados, lo cual nos llevará un buen número de artículos.

miércoles, 3 de enero de 2007

Por dónde empezar

Normalmente es complicado saber, cuando nos remiten una petición del cliente, por dónde hemos de empezar. Bien, pues lo primero es establecer el punto de partida y el punto al que se quiere llegar. Y más concretamente, ¿qué deberíamos conocer de ese punto de partida y finalización? ¿qué se encuentra entre medias?


Punto de Inicio
A este punto lo denominaremos "Situación Inicial" y nos permite conocer el estado actual del cliente en relación a la petición que nos ha solicitado. Con el objetivo de conocer todos los aspectos relativos a su situación inicial deberemos recabar toda la información relacionada con:
  • Calidad: Estándares de calidad implantados, utilizados,... hasta el momento.
  • Procesos: Qué hacen. Esta información nos permitirá conocer cuales son sus procedimientos de trabajo, quién recibe qué, qué hace con ello y a quién se lo pasa.
  • Métodos: Cómo lo hacen. Esta información nos permitirá conocer cómo hacen su trabajo (Ejm.: Si el proceso nos dice que tiene que validar los datos de un artículo, aquí nos dirá cómo hace esa validación).
  • Herramientas: Con qué contamos. En este punto debemos conocer con qué elementos debemos de realizar los métodos, o el proceso completo. Las herramientas pueden ser de tres tipos:
    • Artículos: Los artículos pueden ser artículos físicos, como un sello, o documentos o plantillas.
    • Software: Programas informáticos que nos ayudan a automatizar ciertos procesos o métodos.
    • Hardware: Máquinas informáticas utilizadas para la realización de operaciones. Es donde funciona el software.
Desarrollo de la Petición
El fin último es el desarrollo de la petición, pero en este punto debemos conocer cuál es la problemática o necesidad, en el ámbito del negocio, de nuestro cliente. Por eso, a este punto, lo llamaremos "Necesidad/Problemética", y contendrá el por qué de la petición a nivel de negocio. En ciertos ámbitos a este punto se le denomina "Justificación de Negocio".

Punto de Finalización
Como punto final de la contextualización, debemos conocer hacia dónde se quiere ir, a este punto lo llamaremos "Situación Final" y contendrá una descripción del estado en el que quedaría el negocio cuando esa problemática y/o necesidad estuviera resuelta. Para ayudarnos, podremos utilizar el mismo patrón que en en el primer punto:
  • Calidad: Estándares de calidad implantados.
  • Procesos: Procesos implantados, o lo que harán cuando la necesidad/problemática esté cubierta.
  • Métodos: Cómo harán su trabajo.
  • Herramientas: Artículos, Software y Hardware utilizado una vez se haya finalizado la petición.

martes, 26 de diciembre de 2006

Grandes meteduras de pata

Es muy curioso lo que ves y escuchas en muchas organizaciones cuando pasas por la puerta y te cuentan sus experiencias, necesidades, problemática, vivencias, etc..., en la mayoría de los casos soy yo el que más aprende, pero hay ciertos momentos que te dejan huella, y sabes desde ese mismo momento que va a ser un verdadero fracaso y lo único que quieres hacer es levantarte de la silla y correr hacia la salida más cercana.

Uno de los más típicos es el de "vamos a comprar la megaherramienta", pensando que así se arreglará todo, que la herramienta funciona sola, que todo el mundo sabrá manejarla perfectamente, que estará parametrizada según las necesidades específicas de mi organización. Tener una buena herramienta es muy útil, pero no empecemos la casa por el tejado y supeditemos todo lo que debemos atender a una herramienta, tal y como vimos en artículos anteriores.


Otro caso curioso es el de encargar a aquella persona que, por una causa u otra, tiene un método para gestionar los requisitos de las peticiones de los usuarios y le encargan que aleccione al resto de personas que realizan el mismo tipo de rol. ¡¡Cuidado!!, no siempre algo particular puede tener replicación, es igual que si nos ponemos el traje hecho a medida de otra persona, seguramente lo podremos llevar, pero no se ajustará a nuestras necesidades, y será más un estorbo (fracaso) que una utilidad.

En otros sitios no se es totalmente consciente de lo que implica un proceso de cambio, pretendiendo resultados del día a la noche. Señores, cambiar no es sencillo ni fácil, pero claro que se puede hacer.

La última es también muy típica, y es aplicable a otras muchas cosas, el intento de aplicar las cosas como aparecen en los libros o manuales. Cada organización tiene sus particularidades, necesidades, cultura y manera de hacer las cosas. Si queremos implantar un modelo de ingeniería de requisitos en Oz perfecto, pero no en una organización que debe dar respuesta y soporte a las unidades de negocio.

Definición de Herramientas

Qué entendemos por herramientas
Las herramientas son aquellos elementos que nos ayudan, o proporcionan soporte, para hacer ciertas cosas; en ciertos ámbitos les denominan “elementos facilitadores”. Responden a la pregunta, ¿con qué lo haremos?

Uno de los principales errores es pensar que se trata únicamente de un programa informático, sobre todo en el entorno de sistemas de información. Este concepto es mucho más amplio y, además de poder ser software, también podría ser una plantilla, hardware, etc.

Herramientas a utilizar
Tipificaremos las herramientas que podemos utilizar no por la fase en la que se usan, ya que se suelen utilizar en dos o más fases, sino atendiendo a su naturaleza:

  • Documento: Entendemos por documento todos los elementos escritos o que sirven de guías para otros (plantillas). A este grupo atienden, actas de reunión, peticiones de trabajo, documento de requisitos de usuario, documentos de verificación y validación, correos electrónicos,… ya se encuentren en formato físico o digital.
  • Software: Es el conjunto de programas informáticos que facilitan la gestión y desarrollo de documentos, la comunicación entre las personas que participan en la ingeniería de requisitos. El software puede ser generalista, como un procesador de textos o un cliente de correo electrónico, o específico, como un software para la gestión de requisitos, de los cuales ya hablaremos.
  • Hardware: Es la máquina sobre la que funciona el software según las especificaciones indicadas, incluyendo especificaciones de comunicaciones físicas, almacenamiento en disco, teléfonos, webcams, etc.

domingo, 24 de diciembre de 2006

Definición de Métodos

Qué entendemos por métodos
Los métodos, refiriéndonos a los métodos de trabajo, nos proporcionan las guías de cómo debemos hacer las cosas. Haciendo referencia al artículo anterior, si los procesos nos indican qué hacer, los métodos nos indican cómo hacerlo.

Este punto es el más complicado de cambiar, o de influenciar o adaptar, en todas las personas que colaboran en una organización, ya que tiene mucho que decir la cultura organizativa, o como me suelen decir “es que aquí, las cosas las hacemos así”.

No quiero decir que cuando se cambia o implanta una metodología haya que cambiar todo, ni mucho menos, además, ciertos de estos hábitos son correctos y hay que integrarlos y enriquecerlos con las nuevas maneras de hacer las cosas.


Métodos a utilizar

Haremos una categorización de los métodos a utilizar por las diferentes fases descritas en la anterior entrega y que describiremos más adelante:

  • Captación: En este punto hablaremos principalmente de las entrevistas (cómo enfocarlas y realizarlas), ya que es el método más utilizado y por tanto el que más debemos cuidar. También trataremos métodos de captación de información en momentos de crisis y otros métodos grupales.
  • Análisis: Principalmente trataremos técnicas que nos ayuden a organizar y conocer la completitud de la información que hemos recabado.
  • Formalización: Este será el apartado que más nos lleve, ya que tratará todos los temas de modelado y métodos de representación, el uso de gráficos, cómo desarrollar un DRU, etc.
  • Verificación y Validación: Los métodos de verificación nos permitirán conocer el nivel de completitud y cumplimiento de los estándares establecidos por el DRU. Los métodos de validación se orientan a la negociación del alcance acordado en el DRU con los clientes.

sábado, 23 de diciembre de 2006

Definición del Proceso de Ingeniería de Requisitos

Características del proceso
El proceso es la guía que nos permitirá hacer aquello que hayamos definido que queremos hacer. No voy a entrar en las generalidades del los procesos, y me centraré en los particulares de la ingeniería de requisitos.

El proceso debe permitirnos recabar toda la información distribuida por toda la/s organización/es, analizarla, formalizarla, verificar que el documento generado es completo y se ajusta a los estándares y validar con el cliente la exactitud de la información tratada.

Además de todo esto, es muy normal, ya sea por la imposibilidad de recabar toda la información necesaria al principio o por la amplitud de la petición que estamos atendiendo, que debamos realizar un primer acercamiento y posteriormente concretar cada una de las partes identificadas, por lo que debe seguir un ciclo de vida iterativo e incremental.

Concreción del proceso
Por todo lo anterior, creo correcto diferenciar cuatro grandes fases con un objetivo propio y bien diferenciado, las cuales son:
  • Captación: Enfocado a obtener y recabar la información necesaria de todas aquellas fuentes necesarias.
  • Análisis: En ella se analiza la completitud e idoneidad de la información recabada atendiendo a la naturaleza de la petición.
  • Formalización: Desarrollo del Documento de Requisitos del Usuario (DRU).
  • Verificación y Validación: Comprobación de la completitud del DRU, el cumplimiento de estándares y la comprobación con el cliente técnico y algún cliente usuario de que hemos entendido lo que quieren y necesitan.

jueves, 21 de diciembre de 2006

Definición de la Calidad

Introducción a la calidad
El entorno de Sistemas de Información tiene asociado muchos conceptos asociados, y uno de los más complejos y que más impacto proporcionan es la calidad, ya que, según veremos más adelante, según como definamos y caractericemos la calidad dependerá qué como realizaremos.

Siguiendo la definición que proporciona la Real Academia Española, calidad se define como “propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor”, y es justamente esto lo que queremos definir, determinar, verificar y validar.

Importancia de la calidad en la ingeniería de requisitos
La razón por la que debemos tener en cuenta, en primer lugar el concepto de calidad, es porque es lo que nos va a determinar un conjunto de mínimos y máximos a realizar y a tener en cuenta para atender a toda petición que realicemos la ingeniería de requisitos.

Dicho esto, y ateniéndonos a lo que aparece en el siguiente gráfico, es la calidad la que nos determinará el proceso, las técnicas y las herramientas que debemos utilizar.


Definición de elementos de la calidad
La definición de qué elementos determinará la calidad y establecerá el rango de mínimos y máximos. Entre los factores que debemos tener en cuenta están los siguientes:
  • Entorno empresarial: Tal y como definía en el primer artículo, no será lo mismo un entorno de administración pública, empresa de servicios o área de IT que da servicios a la propia empresa.
  • Criticidad: No es lo mismo crear un producto que gestione el espacio aéreo de un país, que una aplicación de gestión presupuestaria de una PYME, ya que en el primer caso debemos tener en cuenta aspectos relacionados con vidas humanas, y no en el segundo caso.
  • Legislación: Existen ciertos aspectos legislativos que dependiendo del país, sector empresarial, nivel de responsabilidad empresarial, etc., que influyen mucho y que nos permiten ser más o menos estrictos.
  • Estándares de calidad corporativa: El enfoque de la ingeniería de requisitos difiere si tenemos que atenernos a un tipo de “sello” de calidad de corporativa como ISO.
  • Mercado: Hoy en día aspectos como el time-to-market, referido a la velocidad de respuesta frente a las necesidades de nuestro público objetivo (como empresa) o a la paridad de los servicios ofrecidos por la competencia, nos obligan a alinearnos con las unidades de servicio.
  • Recursos: El nivel, calidad y número de recursos disponibles además de definir los niveles esperados de capacidad, también define los de calidad.
  • Tipología de las Peticiones: Es muy importante conocer y determinar aspectos relativos al tipo de peticiones que recibimos, como ámbito y plazo, ya que debemos diferenciar aquellas que son pesadas (coordinación de muchas personas y/o áreas), de las ligeras (pequeñas modificaciones o adaptaciones).

Impacto de la calidad
Los elementos o parámetros y políticas de calidad definidas impacta directamente en:
  • Los procesos: Definen qué hacemos y quién lo hace. Dados unos procesos estándar, estos se verán aligerados o engrosados atendiendo a los elementos descritos anteriormente para cada petición.
  • Los métodos: Definen cómo lo hacemos. La aplicación de ciertos métodos viene determinado por aquellas cosas que podemos o no hacer, además de la cultura empresarial y de entorno.
  • Las herramientas: Con qué lo hacemos. En este punto nos encontraremos desde plantillas, documentos, herramientas informáticas, herramientas físicas, etc., las cuales vendrán determinadas o influenciadas por cómo lo hacemos.
El orden anterior no es casualidad, por que ¿qué nos ha ocurrido cuando nos hemos visto supeditados a una herramienta específica para la realización de un proyecto? ¿o a la utilización de determinado lenguaje de programación? En la mayoría de los casos esas limitaciones han producido una ventaja y un inconveniente:
  • Ventaja: Obtenemos un enfoque más concreto de los elementos que tenemos que tener en cuenta y disminuye el nivel de incertidumbre.
  • Inconveniente: El enfoque al que nos obliga puede ser contraproducente y no el más idóneo y ser un lastre para conseguir los objetivos propuestos.

miércoles, 20 de diciembre de 2006

Introducción a la Ingeniería de Requisitos

¿Qué es la ingeniería de requisitos?

La ingeniería de requisitos es el conjunto de procesos, técnicas y herramientas que rige toda petición de las unidades de negocio para conseguir:

  • Una comprensión de la necesidad o problemática completa.
  • Conocer la complejidad e impacto en el negocio.
  • Realizar el primer acercamiento al lenguaje utilizado en Sistemas de Información.
¿Quién participa en la ingeniería de requisitos?
Para la correcta consecución de los objetivos de la ingeniería de requisitos necesitamos la identificación y participación de los siguientes roles:
  • Cliente administrativo: Es aquella persona o personas que tienen la responsabilidad de alinear las peticiones realizadas al área de IT con sus objetivos estratégicos y de adecuar los recursos necesarios para su consecución.
  • Cliente técnico: Es aquella persona o personas que tienen la responsabilidad de proporcionar una visión global de las necesidades desde un punto de vista operativo (qué hay que hacer) y de realizar una validación del producto (DRC) obtenido.
  • Cliente usuario: Es aquella persona o personas que tienen la responsabilidad de proporcionar una visión específica de las necesidades desde el punto de vista técnico (cómo hay que hacerlo).
  • Ingeniero de Requisitos: Es aquella persona o personas que tienen la responsabilidad de captar la información de los diferentes clientes, analizarla y formalizarla en un documento de requisitos del cliente garantizando la adecuación del producto realizado (DRU) y la calidad del mismo. En algunos ámbitos se le denomina analista de negocio.
  • Consultor: Es aquella persona o personas, internas o externas a la organización, que sirven como apoyo al ingeniero de requisitos para:
    • Comprender mejor el negocio del cliente y obtener una visión más concreta de sus necesidades, tanto a corto plazo como futuras.
    • Colaborar en el desarrollo del DCU como experto en los procesos, técnicas y herramientas utilizadas en la ingeniería de requisitos.
Debemos tener en cuenta que una misma persona puede desempeñar uno o más roles.

¿Cuándo se realiza la ingeniería de requisitos?
La ingeniería de requisitos es uno de los primeros pasos en todo ciclo de vida de los proyectos de software en el ámbito de TI. Independientemente de si estamos hablando de un ciclo en cascada, iterativo o ágil, se debe seguir un proceso de ingeniería de requisitos que se adapte a cada una de las metodologías utilizadas.

Lo que sí está claro, es que es prácticamente imposible tener un DCU completo desde el inicio, lo cual nos obliga a diversas revisiones del documento, por lo que propondremos un proceso guía iterativo e incremental con el objetivo de tener diversos niveles de concreción y profundidad en cada una de ellas, y que se pueda adaptar al ciclo de vida global de desarrollo de proyectos en la organización.

¿Dónde se aplicaría la ingeniería de requisitos?
La ingeniería de requisitos en el ámbito de sistemas de información, tiene tres ámbitos de aplicación:
  1. Administración Pública: Como trabajo previo a la preparación de pliegos técnicos.
  2. Empresas de Servicios: Ayudará al desarrollo de la presentación de propuestas y podrá ser cumplimentado una vez que haya que desarrollar el DRC como entregable intermedio del producto comprometido.
  3. Áreas de Sistemas de Información: En el entorno de las empresas que dan servicio a las unidades de negocio dentro de su propia organización para definición del alcance de las peticiones, pudiendo formar parte del contrato.
¿Por qué se realiza la ingeniería de requisitos?
Para poder responder a esta pregunta nos tenemos que centrar en su ámbito de aplicación, los proyectos, es decir, ¿por qué es necesaria la ingeniería de requisitos en los proyectos? Como toda actividad debe realizar algún tipo de aporte significativo, sino no es justificable su realización, debemos avanzar un poco más y preguntarnos ¿qué inconvenientes proporciona la no realización la ingeniería de requisitos en los proyectos?

Según una referencia realizada por Juan Palacio Bañares en el Compendio de Ingeniería del Software I, la causa de fracaso de los proyectos responde a la siguiente distribución:


Teniendo en cuenta todos aquellos aspectos que están implicados en la ingeniería de requisitos, el porcentaje total asociado es un mínimo de un 52%. Si representáramos estas causas tipificadas en un diagrama de Pareto, sería la principal causa de fracaso de los proyectos, por lo que sería el primer elemento a afrontar para solucionar las causas de fracaso.

Bibliografía inicial
[1] Amador Durán Toro. Un Entorno Metodológico de Ingeniería de Requisitos para Sistemas de Información. http://www.lsi.us.es/~amador/.
[2] Roger S. Pressman. Ingeniería del Software, un enfoque práctico. 6ª edición.
[3] Juan Palacio Bañeres. Compendio de Ingeniería del Software I.