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.