martes, 18 de febrero de 2014

Fase de planificación del proyecto, KLC y metodología SCRUM

Un proceso es una serie de pasos que involucran actividades , restricciones y recursos que producen una determinada salida, cuando el proceso implica la construcción de algún producto, se suele referir al proceso como “ciclo de vida”. Es por ello que al proceso de desarrollo de software o de un sistema de información, se le denomina “ciclo de vida”; porque describe la vida del producto desde que se concibe hasta que se implementa, entrega, opera, mantiene y retira. Una definición mas formal del ciclo de vida del desarrollo de sistemas es, el conjunto de actividades que los analistas, diseñadores y usuarios realizan para desarrollar e implantar un sistema de información, consta de las siguientes actividades:

  • Investigación preliminar
  • Determinación de los requerimientos del sistema
  • Diseño del sistema
  • Desarrollo de sistema
  • Prueba de sistemas
  • Implantación y Evaluación

Para llevar a cabo, el desarrollo de un sistema de información, es necesario primeramente, planificar este proceso, y esto consiste en en seleccionar el modelo de ciclo de vida del software apropiado, la adaptación y la implementación de los procesos apropiados del ciclo de vida del sistema, que se llevaran a cabo a la luz del alcance particular y de los requisitos que se han especificado del proyecto. El ciclo de vida propuesto para el desarrollo del sistema de información, requerido por la unidad del Servicio Comunitario, es la Metodología de Kimball, detallada en la entrada anterior de este blog.

A continuación definiremos uno de los modelos del ciclo de vida, propuesto para el desarrollo del sistema:

Scrum: Es una metodología para la gestión de proyectos, expuesta por Hirotaka Tackeuchi e Ikujiro Nonaka, en las que pone de manifiesto que, el mercado exige ciclos de desarrollo mas cortos. Scrum es un proceso que incluye un conjunto de practicas y roles predefinidos, un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones de un mes natural y hasta de dos semanas, si así se necesita). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final, que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.

Las actividades que se llevan a cabo en Scrum son las siguientes:

1. Planificación de la iteración

El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos partes:
  • Selección de requisitos (4 horas máximo): El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos más prioritarios que se compromete a completar en la iteración, de manera que puedan ser entregados si el cliente lo solicita.
  • Planificación de la iteración (4 horas máximo): El equipo elabora la lista de tareas de la iteración, necesarias para desarrollar los requisitos a los que se ha comprometido. La estimación de esfuerzos, se hace de manera conjunta y los miembros del equipo se auto-asignan las tareas.
2. Ejecución de la iteración

Cada día el equipo realiza una reunión de sincronización (15 minutos máximo). Cada miembro del equipo inspecciona el trabajo que el resto está realizando (dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con el compromiso adquirido. En la reunión cada miembro del equipo responde a tres preguntas:
  • ¿Qué he hecho desde la última reunión de sincronización?
  • ¿Qué voy a hacer a partir de este momento?
  • ¿Qué impedimentos tengo o voy a tener?
Durante la iteración el facilitador se encarga de que el equipo pueda cumplir con su compromiso y de que no se merme su productividad, a partir de las siguientes tareas: 
  • Elimina los obstáculos que el equipo no puede resolver por sí mismo.
  • Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.
3. Inspección y adaptación

El último día de la iteración se realiza la reunión de revisión de la iteración. Esta revisión, se divide en dos partes:
  • Demostración (4 horas máximo): El equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias de manera objetiva, ya desde la primera iteración, se replanifica el proyecto.
  • Retrospectiva (4 horas máximo): El equipo analiza cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, mejorando de manera continua su productividad. El facilitador se encargará de ir eliminando los obstáculos identificados.

Se puede considerar Scrum, como la adopción de la mejore metodología de desarrollo, de acuerdo a lo que se pretende llevar a cabo con el proyecto del Servicio Comunitario, y la mejor opción que se puede aplicar de manera dinámica durante el ciclo de vida de desarrollo, de este proyecto.


jueves, 30 de enero de 2014

Metodología de Kimball

La Metodología Kimball, es una metodología empleada para la construcción de un almacén de datos (data warehouse, DW) que no es mas que, una colección de datos orientada a un determinado ámbito (empresa, organización, etc.), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza.

La metodología se basa en lo que Kimball denomina Ciclo de Vida Dimensional del Negocio (Business Dimensional Lifecycle). Este ciclo de vida del proyecto de DW, está basado en cuatro principios básicos:
  • Centrarse en el negocio
  • Construir una infraestructura de información adecuada
  • Realizar entregas en incrementos significativos (este principio consiste en crear el almacén de datos (DW) en incrementos entregables en plazos de 6 a 12 meses, en este punto, la metodología se parece a las metodologías ágiles de construcción de software)
  • Ofrecer la solución completa (En este se punto proporcionan todos los elementos necesarios para entregar valor a los usuarios de negocios, para esto ya se debe tener un almacén de datos bien diseñado, se deberán entregar herramientas de consulta ad hoc, aplicaciones para informes y análisis avanzado, capacitación, soporte, sitio web y documentación).
La construcción de una solución de DW/BI (Datawarehouse/Business Intelligence) es sumamente compleja, y Kimball nos propone una metodología que nos ayuda a simplificar esa complejidad. Las tareas de esta metodología (ciclo de vida) se describen a continuación:






4.1. Planificación del Proyecto

En este proceso se determina el propósito del proyecto de DW/BI,
sus objetivos específicos y el alcance del mismo, los principales riesgos
y una aproximación inicial a las necesidades de información.

Esta tarea incluye las siguientes acciones típicas de un plan de proyecto:
    • Definir el alcance (entender los requerimientos del negocio).
    • Identificar las tareas
    • Programar las tareas
    • Planificar el uso de los recursos.
    • Asignar la carga de trabajo a los recursos
    • Elaboración de un documento final que representa un plan del proyecto.
Además en esta parte definimos cómo realizar la administración o gestión de esta subfase que es todo un proyecto en si mismo, con las siguientes actividades:
    • Monitoreo del estado de los procesos y actividades.
    • Rastreo de problemas
    • Desarrollo de un plan de comunicación comprensiva que direccione la empresa y las áreas de TI

4.2 Definición de Requerimientos del Negocio

La definición de requerimientos, es un proceso de entrevistar al personal de negocio y técnico, aunque siempre conviene, tener un poco de preparación previa. En esta tarea, se debe aprender sobre el negocio, los competidores, la industria y los clientes del mismo. Se debe dar una revision a todos los informes posibles de la organización; rastrear los documentos de estrategia interna; entrevistar a los empleados, analizar lo que se dice en la prensa acerca de la organización, la competencia y la industria y se deben conocer los términos y la terminología del negocio.

Se sugiere entrevistar al personal que se encuentra en los cuatro grupos que se mencionan a continuación:
  • El directivo responsable de tomar las decisiones estratégicas.
  • Los administradores intermedios y de negocio responsables de explorar alternativas estratégicas y aplicar decisiones
  • El personal de sistemas, si existe (estas son las personas que realmente saben qué tipos de problemas informáticos y de datos existen en la organización)
  • El personal que se entrevista por razones políticas.
Entre las tareas antes descritas, existe una flecha bidireccional, esto indica que los requerimientos del negocio son el soporte inicial de las tareas subsiguientes, también tiene influencia en el plan de proyecto.

Si avanzamos por el camino central del diagraman, encontramos las tareas asociadas al área de Datos, en esta, diseñaremos e implementaremos el modelo dimensional, y desarrollaremos el subsistema de Extracción, Transformación y Carga (Extract, Transformation, and Load - ETL) para cargar el DW. Las tareas pertenecientes al área, se describen a continuación:



4.3 Modelado Dimensional

Es un proceso dinámico y altamente iterativo. Comienza con un modelo dimensional de alto nivel obtenido a partir de los procesos priorizados y descritos en la tarea anterior, y El proceso iterativo consiste en cuatro pasos:
a). Elegir el proceso de negocio: que consiste en, elegir el área a modelizar. Esta es una decisión de la dirección, y depende fundamentalmente del análisis de requerimientos y de los temas analíticos anotados en la etapa anterior.
b). Establecer el nivel de granularidad: La granularidad significa especificar el nivel de detalle. La elección de la granularidad depende de los requerimientos del negocio y lo que es posible a partir de los datos actuales. La sugerencia general es comenzar a diseñar el DW al mayor nivel de detalle posible, ya que se podrían realizar agrupamientos posteriores, al nivel deseado.

c). Elegir las dimensiones: Las dimensiones surgen naturalmente de las discusiones del equipo, y facilitadas por la elección del nivel de granularidad y de la matriz de procesos/dimensiones (que se realiza en la tarea 4.2) Las tablas de dimensiones tienen un conjunto de atributos (generalmente textuales) que brindan una perspectiva o forma de análisis sobre una medida en una tabla hechos. Una forma de identificar las tablas de dimensiones es que sus atributos son posibles candidatos para ser encabezado en los informes, tablas pivot, cubos, o cualquier forma de visualización, unidimensional o multidimensional.

d). Identificar medidas y las tablas de hechos: Este paso, consiste en identificar las medidas que surgen de los procesos de negocios. Una medida es un atributo (campo) de una tabla que se desea analizar, sumando o agrupando sus datos y usando los criterios de corte conocidos como dimensiones. Las medidas habitualmente se vinculan con el nivel de granularidad del punto 2, y se encuentran en tablas que denominamos tablas de hechos (fact en inglés). Cada tabla de hechos tiene como atributos una o más medidas de un proceso organizacional, de acuerdo a los requerimientos. Un registro contiene una medida expresada en números, como ser cantidad, tiempo, dinero, etc., sobre la cual se desea realizar una operación de agregación (promedio, conteo, suma, etc.) en función de una o más dimensiones. La granularidad, en este punto, es el nivel de detalle que posee cada registro de una tabla de hechos.


4.4. Diseño Físico

En esta tarea, se contestan las siguientes preguntas:

¿Cómo puede determinar cuán grande será el sistema de DW/BI?
¿Cuáles son los factores de uso que llevarán a una configuración más grande y más compleja?
¿Cómo se debe configurar el sistema?
¿Cuánta memoria y servidores se necesitan? ¿Qué tipo de almacenamiento y procesadores?
¿Cómo instalar el software en los servidores de desarrollo, prueba y producción?
¿Qué necesitan instalar los diferentes miembros del equipo de DW/BI en sus estaciones de trabajo?
¿Cómo convertir el modelo de datos lógico en un modelo de datos físicos en la base de datos relacional?
¿Cómo conseguir un plan de indexación inicial?
¿Debe usarse la partición en las tablas relacionales?


4.5. Diseño e Implementación del subsistema de Extracción, Transformación y Carga (ETL)

El subsistema de Extracción, Transformación y Carga (ETL) es la base sobre la cual se alimenta el Data warehouse. Si se diseña adecuadamente, puede extraer los datos de los sistemas de origen de datos, aplicar diferentes reglas para aumentar la calidad y consistencia de los mismos, consolidar la información proveniente de distintos sistemas, y finalmente cargar (grabar) la información en el DW en un formato acorde para la utilización por parte de las herramientas de análisis.


4.6. Implementación

La implementación representa la convergencia de la tecnología, los datos y las aplicaciones de usuarios finales accesible desde el escritorio del usuario del negocio. Existen varios factores extras que aseguran el correcto funcionamiento de todas estas piezas, entre ellos se encuentran la capacitación, el soporte técnico, la comunicación y las estrategias de feedback.


4.7 Mantenimiento y Crecimiento del Data Warehouse

Para administrar el entorno del Data Warehouse existente es importante enfocarse en los usuarios de negocio, los cuales son el motivo de su existencia, además de gestionar adecuadamente las operaciones del Data Warehouse, medir y proyectar su éxito y comunicarse constantemente con los usuarios para establecer un flujo de retroalimentación, En esto consiste el Mantenimiento. Finalmente, es importante sentar las bases para el crecimiento y evolución del Data Warehouse en donde el aspecto clave es manejar el crecimiento y evolución de forma iterativa utilizando el Ciclo de Vida propuesto, y establecer las oportunidades de crecimiento y evolución en orden por nivel prioridad.

Si avanzamos por el camino inferior del diagraman, encontramos las tareas asociadas al área Aplicaciones de Inteligencia de Negocios, en esta ruta se encuentran tareas en las que diseñamos y desarrollamos las aplicaciones de negocios para los usuarios finales. Las tareas pertenecientes al área, se describen a continuación:


4.8 Especificación de aplicaciones de BI

En está tarea se proporciona, a una gran comunidad de usuarios una forma más estructurada y por lo tanto, más fácil, de acceder al almacén de datos. Se proporciona este acceso estructurado a través de lo que llamamos, aplicaciones de inteligencia de negocios (Business Intelligence Aplications). Las aplicaciones de BI son la cara visible de la inteligencia de negocios: los informes y aplicaciones de análisis proporcionan información útil a los usuarios. Las aplicaciones de BI incluyen un amplio espectro de tipos de informes y herramientas de análisis, que van desde informes simples de formato fijo, a sofisticadas aplicaciones analíticas que usan complejos algoritmos e información del dominio. Kimball divide a estas aplicaciones en dos categorías basadas en el nivel de sofisticación, y les llama:

a). Informes estándar: son informes relativamente simples, de formato predefinido, y parámetros de consulta fijos, proporcionan a los usuarios un conjunto básico de información acerca de lo que está sucediendo en un área determinada de la empresa y se utilizan día a día.

b). Aplicaciones analíticas: Son más complejas que los informes estándar. Estas aplicaciones pueden incluir algoritmos y modelos de minería de datos, que ayudan a identificar oportunidades o cuestiones subyacentes en los datos, y el usuario puede pedir cambios en los sistemas transaccionales basándose en los conocimientos obtenidos del uso de la aplicación de BI. Algunas aplicaciones analíticas comunes incluyen:
  • Análisis de la eficacia de la promociones
  • Análisis de rutas de acceso en un sitio Web
  • Análisis de afinidad de programas
  • Planificación del espacio en espacios comerciales
  • Detección de fraudes
  • Administración y manejo de categorías de productos

Por ultimo, en el camino superior, encontramos las tareas asociadas al área Tecnología en esta ruta, se encuentran las tareas relacionadas con software específico, por ejemplo, Microsoft SQL Analysis Services, etc. Las tareas pertenecientes al área, se describen a continuación:


4.9 Diseño de la Arquitectura Técnica
El área de arquitectura técnica cubre los procesos y herramientas que se aplican a los datos. En el área técnica existen dos conjuntos que tienen distintos requerimientos, brindan sus propios servicios y componentes de almacenaje de datos, por lo que se consideran cada uno aparte: El back room (habitación trasera) y el front room (habitación frontal). El back room es el responsable de la obtención y preparación de los datos, por lo que también se conoce como adquisición de datos y el front room es responsable de entregar los datos a la comunidad de usuario y también se le conoce como acceso de datos.





domingo, 19 de enero de 2014

Gartner Business Intelligence



Gartner.Inc es la principal compañía de asesoramiento y de investigación, de tecnologías de la información, a nivel mundial. Gartner proporciona el análisis de investigación y consejos para profesionales de las tecnologías de la información y la comunicación, empresas de tecnología, y la comunidad de la inversión en varios formatos: Reuniones informativas, servicios de pares en red (peer networking service) y programas de socios diseñados explícitamente para CEOs y otros directores ejecutivos. Además, ofrece consejos relacionados con la industria/sector y el apoyo al Gobierno, la venta al por menor, los medios de comunicación y de telecomunicaciones, y los servicios financieros. En pocas palabras, Gartner entrega la visión relacionada con la tecnología necesaria, para que el cliente tome las decisiones correctas de la organización, diariamente.

El curso de inteligencia de negocios, tiene como finalidad formar Analistas de sistemas, es decir, profesionales que puedan llevar a cabo las tareas de asesoría e investigación de las tecnologías de información que requiere una organización, la empresa Gartner, lleva a cabo esta tarea, en todos los niveles de la empresa. Entre la tarea de asesoría e investigación, para la toma de decisiones en una organización, es necesario realizar mediciones, a continuación, mencionaremos un estudio, mi, muy utilizado en el area de inteligencia de negocios, desarrollado por el grupo Garnert en el año 2011.

Los Cuadrantes Mágicos de Gartner, son una representación gráfica de la situación del mercado de un producto tecnológico en un momento determinado. El gráfico está dividido en cuatro partes dónde se distribuyen las principales compañías en función de su tipología y la de sus productos, cada parte sera definida a continuación:



Leaders (líderes): En esta área, encontramos, aquellos que tienen la mayor puntuación resultante al combinar su habilidad para ejecutar (lo bien que un vendedor vende, y ofrece soporte de sus productos y servicios a nivel global) y el alcance de su visión, que se refiere a su potencial. 

Challengers (aspirantes): Caracterizados por ofrecer buenas funcionalidades y un número considerable de instalaciones del producto, pero sin la visión de los líderes.

Visionaries (visionarios): Pueden tener todas las capacidades que ha de ofrecer un ECM (Enterprise Content Management - aplicaciones que operan entre ellas, pero que pueden ser utilizadas y vendidas por separado) de forma nativa, o mediante alianzas con otros socios, lo cual significa un fuerte impulso a la integración de programas y plataformas así como una habilidad para anticiparse a las necesidades del mercado que ellos no puedan cubrir. 

Niche players (nichos específicos): Esta zona, enfoca determinadas áreas de las tecnologías ECM, pero sin disponer de una suite completa.






 


Informe Técnico para el estudio del perfil de un Analista de Sistemas


Un informe técnico es un documento que describe el progreso o los resultados de una investigación técnica o científica, y el estado de un problema técnico, y se prepara a solicitud de una organización o persona. Un informe de este tipo debe presentar, información suficiente para que un lector cualificado pueda juzgar, evaluar o proponer modificaciones a sus conclusiones o recomendaciones.

En esta entrada, presentaremos un estudio realizado al perfil del Analista de Sistemas, en él, se muestran las habilidades requeridas, por tres bolsas de empleo en nuestro país, con la finalidad de evaluar las carencias del estudiante de Inteligencia de negocios y prepararlo, para el mercado laboral.

Antes definiremos, de manera abstracta que es un analista de sistemas. Un analista de sistemas es la persona que estudia los problemas y necesidades de una empresa, para determinar cómo podrían combinarse los recursos humanos, los procesos, los datos y la tecnología para obtener mejoras y lograr eficiente, efectiva y eficazmente las metas de la organización.

Ahora que sabes que es un Analista de Sistemas, observa el siguiente estudio y saca tus propias conclusiones:


sábado, 4 de enero de 2014

Ejemplo de construcción de una Base de Datos


Una base de datos es una colección organizada de datos relacionados, datos que proporcionan información lógica y coherente, la información y los datos significan dos cosas distintas. Cuando los datos en su totalidad tienen sentido para un negocio, estos se convierten en información. Es decir, los datos procesados a menudo se llaman información. Por ejemplo , un negocio puede tener algunos datos de ventas. Cuando estos datos se convierten a ventas regionales por trimestre, se transforman en información.

Estos datos, son agrupados en diversas tablas, este conjunto de tablas, se denominan tablas relacionales, y todas las operaciones sobre lo datos se realizan sobre las propias tablas, que pueden producir tablas adicionales para almacenar el resultado. ¿Cómo decide usted el número de tablas? ¿Qué datos almacenan en una tabla particular? Para contestar a estas preguntas, necesitamos formular el diseño del contenido de las tablas que pueden almacenar los datos. A este proceso se le llama diseño de base de datos. A continuación, se presentara, con un ejemplo de la vida real, los pasos para el diseño de una base de datos, para ilustrar lo antes descrito:

El primer paso para el diseño una base de datos, son la Recolección y análisis de los requerimientos y el diseño conceptual, es decir, la documentación de los datos que deben ser capturados por la base de datos y los procesos involucrados en la captura, además de, la identificación de las entidades involucradas y sus relaciones.

El siguiente paso consiste , en representar las entidades y sus relaciones en forma de un diagrama, llamado Diagrama Entidad- Relación (ER) , este diagrama será una representación de la aplicación del mundo real.

Los últimos pasos, consisten en el Diseño lógico y Físico de nuestra base de datos. En el diseño lógico, se lleva a cabo la traducción de entidades y relaciones, a tablas y otros objetos de la base de datos, su proceso de normalización y otras consideraciones de diseño. El diseño Físico consiste en la creación de las tablas y las decisiones sobre su almacenamiento físico considerando el rendimiento y disponibilidad de los recursos de Hardware.

Para ilustrar lo antes definido, partiremos de un ejemplo de la vida real:

Modelar el registro de notas de un estudiante universitario, a su vez, el estudiante debe producir los queries que generen cada una de las estadísticas que este contiene: Eficiencia, promedio, promedio ponderado y UC inscritas por el estudiante


Para crear La base de datos, debemos partir de un diseño lógico, ya que este, es lo más aproximado a la base de datos real, que se desea, para la resolución del problema; El diagrama se sometió al proceso de Normalización, para organizar los datos y reducir al mínimo la duplicación. La normalización generalmente implica el proceso de dividir una base de datos en dos o mas tablas y de definir las relaciones entre ellas.

A continuación se presentara el diseño relacional en 3NF (Tercera Forma Normal) , que consiste, en un conjunto de pasos lógicos que se pueden aplicar a nuestra base de datos si esta se encuentra en 2NF (Segunda forma normal) y cada columna no clave es mutuamente excluyente e independiente, es decir, ningún atributo no-primario de la tabla, es dependiente transitivamente de una clave primaria.




Se observa que la tabla central de nuestro diagrama es la relación con el resto de las entidades, y es la tabla que genera el registro de notas de cada estudiante, este registro, llamado en nuestro modelo Entrada_Kardex, solo tendrá como datos, los valores primarios del resto de las tablas,

Luego de modelar nuestros datos, el siguiente paso es el diseño físico de nuestra base de datos. Para la creación de las tablas que componen la base de datos utilizaremos , el Lenguaje de Consulta Estructurado (SQL) desarrollado para comunicarse con una base de datos. Las tablas de nuestro ejemplo, serán creadas en PostgreSQL que es un sistema de gestión de bases de datos objeto-relacional (herramienta RDBMS), de uso interactivo, que permite al usuario ingresar sentencias SQL y pasarlas a la base de datos para su ejecución, distribuido bajo licencia BSD y de código fuente disponible libremente. Estas sentencias, llamadas consultas (queries), nos ayudan a crear , acceder y dar mantenimiento a los distintos objetos de la base de datos.

La porción de SQL que proporciona comandos para definir los objetos de la base de datos (tablas , vistas, índices, procedimientos almacenados (stored procedures), etc; Es el DDL (Lenguaje de Definición de datos – Data Definition Language). El DML (Lenguaje de Manipulación de datos – Data Manipulation Language) de SQL proporciona comandos para insertar, eliminar y modificar registros en la(s) tabla(s). Mientras el DDL y el DML se refieren a la manipulación de datos dentro de la base de datos , el DCL (Lenguaje de Control de datos – Data Control Language) proporciona comandos para manejar y controlar datos. Ayuda al usuario a controla la seguridad y proporciona el acceso concurrente aa los datos de una tabla. Por ultimo, el DQL (Data Query Language) proporciona comandos para recuperar datos de la tabla, como por ejemplo la sentencia SELECT.

Ahora, llevaremos a cabo la creación de la base de datos, de nuestro ejemplo y el conjunto de las tablas que la componen. La información la encontraras en el siguiente enlace: 


Tutorial_postgreSQL