Diveria

Mi empresa

jueves, 9 de septiembre de 2010

Business Intelligence - Parte 1


Existe un tema denominado BI (Business Intelligence) que es de mucho interés para mi y que tuve la posibilidad de implementar diferentes soluciones las cuales desde algún u otro modo siempre resultaron atractivas, particularmente en los últimos días hemos desarrollado en Diveria una aplicación particular .... digamos hibrida que carga transacciones de forma directa en un modelo estrella (Data warehouse) y permitirá explotar los datos desde una base de datos OLAP, las tecnologías involucradas fueron:
  • Visual Studio 2008 - C# - Linq
  • SQL Server 2008 R2 Standard
  • SSAS - Analysis Services 2008
Antes entrar en detalle en la arquitectura/funcionamiento de esta aplicación (será para un próximo post), me gustaría comentar algunos conceptos de base de BI para luego derivar y realizar un mapeo con las herramientas que Microsoft propone para este tipo de soluciones.

¿Que es Business Intelligence?
Básicamente es una de las principales herramientas con las cuales los empresarios pueden tomar decisiones basadas en elementos válidos y no hacerlo solamente por su experiencia e intuición.
Definidos los indicadores (KPI) con BI es posible y se acostumbra a analizar los valores recientes de los indicadores, los valores históricos y las proyecciones de los mismos, del mismo modo se establecen los objetivos y se realizan comparaciones de los valores reales con los objetivos bajo distintos criterios.


¿Qué áreas cubre?
Por lo general una
  • Colaboración: plataforma de base que permite exponer y compartir los elementos de la solución, principalmente reportes controlando el acceso a los mismo en base a políticas de seguridad y facilitando la localización de elementos por medio de búsquedas empresariales.
  • Reportes empresariales: son reportes ya establecidos que se repiten en un periodo de tiempo manteniendo su formato. Estos son reportes mucho más ligados a las áreas operacionales de la empresa que a las áreas de toma de decisión.
  • Reportes Ad hoc: las áreas usuarias siempre tiene la necesidad de variar un reporte, muchas veces es simplemente agregarle un nuevo dato o un nuevo filtro otras veces la necesidad tiene que ver con realizar un nuevo reporte totalmente desde cero, es por ello que las soluciones BI cuentan con la posibilidad de armar un reportes desde cero, persistir para más tarde utilizarlo o continuar modificandolo con herramientas totalmente amigables para el usuario final.
  • Reportes analíticos: en este grupo encontramos a los dashboard (tableros de comandos) lo que permiten visualizar de forma gráfica y rápida indicadores de negocios que a la alta dirección de la empresa (gerencias) le interesa conocer y controlar. Dependiendo de las necesidades de la empresa los indicadores pueden incluír costos, tiempos, satistacción del cliente etc.

Las tecnologías se BI en la mayoría de los casos proveen: análisis de datos, (BPM) business performace management, consultas ad hoc, análisis predictivo, data mining, entre otras.

Enlaces relacionados:

miércoles, 17 de febrero de 2010

El diseño de UI


Hay un famoso mito que dice que para ser un buen programador hay que hacer feas intefaces, desde mi punto de vista la UI de una aplicación no es solo una cuestión de estética, todo lo contrario, es el primer elemento que un usuario evalúa en cuanto a la calidad de una aplicación, mantener calidad en un código perfecto, eficiente, libre de errores pero con una UI pobre no hace a la calidad global de un producto de software.

Lograr una UI atractiva no es cuestión sencilla y si no somos Apple o Microsoft lo más probable es que nos apeguemos a un estilo ya definido tratando de personalizarlo o adecuarlo a cada situación, por ejemplo es muy común desarrollar una aplicación de escritorio con un estilo office 2007/2010 extendiendo la iconografía y respetando los patrones gráficos y los layouts.

Existen técnicas y herramientas que nos pueden acompañar en cada una de las etapas, así como hay patrones de diseño que solucionan problemas comunes al desarrollo de software, también existen patrones de diseño de UI ( Ejemplo ).
Estos patrones de diseño de UI como todos los patrones buscan dar las mejores soluciones a problemas recurrentes pero especificos a las interefaces.

A la hora de diseñar la UI que más ajusta a los deseos del usuario, debemos encontrar herramientas que agreguen valor a nuestro trabajo, que simplifiquen etapas y que maximicen el tiempo invertido. Para ello contamos con interesantes herramientas para el prototipado, como siempre en todas sus opción las free, las no tanto y las pagas...
Este tipo de herramientas ayudan no solo a crear la UI si no tambien son un elemento fundamental para levantar requerimientos.

Algunas que podemos mencionar:




¿Qué hay de nuevo en VS 2010?




Que lejos que quedan los viejos entornos de desarrollo donde no teniamos la posibilidad de ver ni la sintaxis en colores, donde un debbug era muy complejo....

Que imponente es la obra de Microsoft, hasta donde estan llegando con este entorno de desarrollo cuantas características les están sumando a una arquitectura bien lograda como fue este framework con su correspondiente IDE y herramientas para trabajar en equipo....

Bueno llego la hora de la versión 2010, será la que marque la mitad de la vida de este maravilloso .Net, los especialiastas dicen que los entornos de desarrollo tienen un ciclo de 10 años.... si es así seguro que estamos en la mejor etapa de la vida de esta plataforma....

Pero.... ¿qué trae de nuevo esta versión?
Tengamos en cuenta que MS liberó una RC y las características con respecto a la versión final pueden variar, pero a continuación incluyo las características más destacadas (en inglés), en los links que les dejo podrán verlas de forma detallada:


Framework 4.0
  • Call Hierarchy of methods
  • A New Quick Search
  • Multi-targeting more accurate
  • Parallel Programming and Debugging
  • XSLT Profiling and Debugging
  • The XSD Designer
ASP.NET
  • Static IDs for ASP.NET Controls
  • The Chart control
  • Web.config transformation
VB.NET
  • Auto Implemented Properties for VB.NET
  • Collection Initializers
  • Implicit Line Continuations
  • Statements in Lambda Expressions
C#
  • Dynamic Types
  • Optional parameters
  • Named and Optional Arguments

Links relacionados

martes, 16 de febrero de 2010

Si de migrar se trata...

Bueno, es como que me torné mono temático y me subí a la problemática de las migraciones, si hace unos días con las líneas de código hoy con las bases de datos.... es que nuestros amigos de Microsoft hace pocos días liberaron una CTP de una nueva version de una interesante herramienta:

Microsoft SQL Server Migration Assistant 2008 for MySQL v1.0 (SSMA) CTP1, la que se puede descargar del sitio de descargas de MS.

Este tipo de herramientas estaban disponibles desde SQL Server 2005 pera diferentes motores de bases de datos Acess, Oracle, Sybase y también My SQL...

Ahora las funcionalidades se suman y en esta nueva versión es posible llevar datos a SQL Server 2005/2008 y SQL Azure Database, reduciendo el esfuerzo y el riesgo que una migración implica.


viernes, 12 de febrero de 2010

Cuando la compatibilidad de hace un problema….

Estos días estuve trabajando sobre un antiguo pero muy útil proyecto desarrollado en VB6, mi idea era lograr una implementación sobre un Windows 2008 Server, si bien la gente de MS garantiza la compatibilidad de los runtime de VB6 sobre: Windows Vista, Windows Server 2008 and Windows 7, esto lo podemos encontrar en la pagina oficial de soporte de Visual Basic 6 donde fue actualizado el siguiente artículo

Lo cierto es que al día de hoy llevo realizada varias pruebas y la solución no está muy clara, ya ahora con la colaboración de de Agustín nos encontramos en plena fase de diagnostico y trabajando bajo prueba/error, realizando algunas aplicaciones de ejemplo y utilizando algunas herramientas con las que esperamos encontrar la punta de este ovillo…

Lo cierto es que la simpleza de despliegue de una aplicación .net nos seduce desde el primer día que nos enteramos que con solo un framework y un xcopy nuestra aplicación estaba en marcha, es por ello que en mi cabeza estos días comencé a pensar viajar hacia ahí… Alguna vez probé las herramientas que Visual Studio .Net trae de forma nativa para migrar… hoy me puse a investigar un poquito más y rápidamente encontré algunas ayudas adicionales….

>> Soporte de MSDN (Patterns & Practices) - Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005

>> Herramienta de evaluación de esfuerzo de migración

Si logramos hacer un hueco de tiempo y si estas aplicaciones son tan valiosas para nosotros como creemos entiendo que planear una migración no es nada desubicado, simplemente debemos diseñar una arquitectura tal que nos permita hacer un Wrapper de los viejos módulos y crecer prolijamente entorno a ello….

Prometo contar como sigue esta historia

:D