Octavas Jornadas de Data Mining

miércoles, 27 de noviembre de 2013

El 26 de octubre pasado tuve la oportunidad de asistir a las Jornadas anuales que organiza la Maestría en Exploración de Datos y Descubrimiento del Conocimiento, en la Facultad de Ciencias Exactas, de la Universidad de Buenos Aires.
Logo Maestría (UBA)

El tema principal fue de especial interés, puesto que se enfocaba en Visualización,   tema que venimos abordando en Tercer Planeta.



Algunas apreciaciones

Muy buena  la presentación de Visual Analytics (SAS). Mediante esta herramienta es posible representar en forma gráfica grandes cantidades de información. Permite tener una vista general de los datos, aplicar zoom y filtrar, y mostrar detalles a demanda, teniendo en cuenta el mantra de visualización de Ben Shneiderman.
 Se relacionó con visualización la conferencia sobre Técnicas de Visualización de Sistemas Complejos en Bio informática, donde se postuló la necesidad de superar la problemática de la cantidad y heterogeneidad de los datos.
La presentación de Claudio Delrieux (UNS) destacó las  Problemáticas Actuales de la Visualización en Big Data:  volumen, velocidad, variedad, verosimilitud y valor (las 5V).
Finalmente, Alejandro Baranek presentó sus trabajos en la conferencia “Visualización experimental en 3D”.

Otro tema de interés en las jornadas fueron la búsqueda de artículos científicos en la web y Open Data.

Djamel Abdelkader Zighed,  invitado especial de la Universidad de Lyon, trató  el problema de la complejidad en el proceso de búsqueda de artículos científicos en la web y su posterior análisis entre millones de referencias disponibles. Al respecto señaló que la dinámica de crecimiento de los datos abiertos en Internet, conocida como Open Data, y la ambigüedad existente en los nombres de los autores de los artículos, vuelve imprescindible implementar una metodología en minería de datos. Como ejemplo de ello, Zighed mencionó la herramienta Babel, que cuenta actualmente con interesantes resultados para refinar la información de las bibliotecas digitales.

La conferencia “Open Data: oportunidades y desafíos para el Estado, la sociedad y la industria”, permitió ubicarnos en la realidad actual del tema, siendo de particular interés los ocho principios de gobierno abierto, declarados por la UNESCO. No hay dudas de la oportunidad que se abre a partir de esta área.

 
Leer más...

Factores a considerar en la elección de un CMS

martes, 19 de noviembre de 2013

Como hemos mencionado en otras oportunidades, llevamos una larga experiencia trabajando con los departamentos de RRHH, Comunicación y Marketing de empresas nacionales y en el exterior. Y a medida que fue pasando el tiempo hemos visto que la necesidad de organizar, centralizar y ordenar lo que se quiere exponer, tanto en el área interna como en el aspecto público, creció enormemente y a gran velocidad.

Evidentemente la tecnología ha acompañado y fomentado este crecimiento ganando una gran incidencia en los sectores antes mencionados y ayudando con muy variadas herramientas (ver artículo Incidencia de las TIC en la gestión del Capital Humano). Un ejemplo de las mismas son los CMS (Content Management System) es decir, sistemas para la administración de contenidos de sitios web, internos o públicos, que han tenido un gran crecimiento desde hace varios años.

Imagen: sictanet.org
Si bien existen en el mercado CMS de muy variadas características y precios, en determinado tipo de empresas hemos comprobado que las mejores opciones se encuentran entre CMS pagos (hay compañías que tienen una larga trayectoria en productos muy sólidos) o CMS hechos a medida.  De hecho, venimos acompañando a organizaciones que mantienen una combinación de estos dos tipos de herramientas para su sitio público y para sus intranets.

Esto no quita, por supuesto, mencionar que existen varias opciones de CMS gratuitos, muchas muy buenas, pero más apropiados para objetivos y empresas con características diferentes a las que nos ocupan en este artículo.

Qué es un CMS?

A grandes rasgos un CMS consta de 2 partes:
  1. Administración de contenidos: o sea, una aplicación a través de la cual los editores o encargados de contenidos ingresan las notas, artículos, archivos, etc. que quieren mostrar en el sitio, definen en qué categoría ubicarlos, en qué "zona" dentro del diseño definido, cuándo publicarlos, etc.. Un buen CMS debe incluir también un sistema de permisos confiable, permitir la modificación de ciertas configuraciones como así también la asignación de distintos roles a diferentes usuarios.
  2. Presentación de contenidos: que es la aplicación encargada de mostrar los contenidos programados por los usuarios correspondientes desde la aplicación anterior para las distintas vistas, idiomas y dentro del diseño previamente definido.

Factores a considerar

Qué puntos se deben evaluar cuando se quiere cambiar o incorporar por primera vez un CMS?

  • Volatilidad de contenidos: Si bien son varios los factores que hacen a una compañía decidir invertir en un CMS, uno de los que más influye es la gran volatilidad de los contenidos a comunicar. Esto aplica tanto a intranets como a sitios públicos donde se necesita administrar de forma autónoma, rápida y verstátil  los diferentes tipos de información (textos, imágenes, videos, sonido, archivos, etc.)).
  • Tamaño de organización y dispersión geográfica: Otro de los puntos a considerar es el tamaño de la organización y su dispersión geográfica. Para el caso de empresas que reparten sus sedes entre varios países e idiomas, el CMS a elegir deberá contar con determinadas características que, seguramente, no serán requeridos por otro tipo de empresas.
  • Variedad de datos y funcionalidades: Por otro lado, es necesario considerar el tipo y variedad de datos que la organización quiere manejar a través del sitio para poder seleccionar un CMS que sea capaz de administrar la complejidad de contenidos que la empresa requiere.
  • Seguridad: Por supuesto, la seguridad de la información es otro de los puntos críticos y prioritarios.
  • Escalabilidad: Es importante también visualizar el rumbo que tomarán los portales y pensar que la herramienta que se elija tenga una flexibilidad tal que permita escalabilidad en cuanto a diseño, contenidos y funcionalidades en general.
  • Integración: Otro tema a tener en cuenta es que el CMS elegido pueda integrarse fácilmente con otras aplicaciones utilizadas en la organización para intercambio de información.
  • Curva de aprendizaje: Un punto fundamental es que la curva de aprendizaje de utilización de la herramienta no sea muy alta. Una de las características primordiales es que el CMS elegido sea de fácil uso para que los responsables puedan utilizarlo sin dificultad, sin riesgo de cometer errores y sin oponer resistencia al mismo.
  • Soporte: algo fundamental a considerar es que el lenguaje utilizado para el desarrollo de una herramienta como esta sea ampliamente conocida, sólida y confiable.

Imagen: gestiondepymes
Para el caso de CMS más complejos, que permitan cubrir necesidades avanzadas o desde los cuales se deban administrar funcionalidades más sofisticadas, es necesario tener en cuenta que se debe contar con personal capacitado para la administración del mismo.
Para firmas de cierto tamaño y caracteristicas, obviamente será necesario disponer de un equipo interno o externo que se encargue del mantenimiento de determinados componentes de la herramienta, su integración con otras aplicaciones de la empresa y el control de la instalación e infraestructura de la misma.

Si bien puede no resultar simple encontrar un único producto que satisfaga 100% estas y otras necesidades, hay que tener en cuenta que las herramientas pagas suelen tener una enorme variedad de posibilidades, soporte técnico de muy buena calidad y comunidades que ayudan a difundir y optimizar el uso del producto. En estos casos la evaluación crucial está en determinar el retorno de inversión que se obtendrá versus el pago de licencias por la compra del producto, si ese fuera el caso.

Pensar en un CMS a medida nos permite contar con la posibilidad de adaptar las funcionalidades del mismo a las necesidades exactas de la organización, escalabilidad en la medida que se necesite y personalización de determinadas funcionalidades cuando sean requeridas. Esta opción no tiene por qué necesariamente estar siempre asociada a la idea de "quedar atado" a un solo proveedor, pago de abonos interminables o riesgo de no tener soporte. Una herramienta estabilizada y bien construida evita tener que lidiar con estos problemas.


En la experiencia que tenemos vemos que una buena combinación de usuarios expertos, usuarios de funcionalidades más básicas y un equipo de desarrollo y mantenimiento pequeño - interno o externo a la organización - da excelentes resultados en cuanto a velocidad de respuesta, calidad y eficiencia en el uso de este tipo de productos.

 










Leer más...

Scrum - Impedimentos

martes, 5 de noviembre de 2013

Muchas veces nos ha pasado en nuestro trabajo encontrarnos con eventos o situaciones imprevistas que nos obligan a buscar soluciones creativas para continuar según lo planificado o que nos llevan a modificar directamente la planificación hecha, con el cambio de humor que esto implica dentro del equipo. Este tipo de situaciones o eventos son lo que llamamos impedimentos.


Cuando recién empezamos con Scrum nos resultaba muy difícil comprender qué hacer con estas cosas y cómo tratarlas. Algo que nos sirvió y que me parece fundamental es entender claramente de qué se trata y cómo identificarlos.

Impedimentos Scrum
Entonces, qué es realmente un Impedimento? De las muchas definiciones que al respecto podemos encontrar, la que más me gusta es la que ve a los impedimentos como cualquier obstáculo que bloquea o demora el progreso del equipo. Es decir, cualquier situación que impide a una o más personas del equipo continuar con su tarea, con su correlativo impacto en el progreso del sprint en el que estén trabajando y/o en el backlog general.

Y algo que nos ayudó mucho a "aceptarlos como tales" fue comprender que no hay team que no se encuentre con trabas de cualquier tipo que impacten en los Sprint. Que todos los miembros del equipo entiendan esto suele ser "liberador" ....

Cómo detectarlos

Estas trabas o imprevistos surgen durante el trabajo diario y DEBEN ser comunicados al resto del equipo, en general durante las reuniones diarias. Pero, dado que uno de los roles más importantes del Scrum Master (SM) es el de eliminar los problemas para lograr la mayor eficiencia del team, es esperable también que sea él quien tenga la capacidad de estar muy atento a buscarlos y detectarlos.
Por otro lado existe una contrapartida a este rol del SM y es la responsabilidad que tiene el equipo de comunicarle, en cualquier momento, la aparición de toda situación que impida o retrase una tarea , para que ese problema pueda ser tratado adecuadamente.

Y, por supuesto, las retrospectivas son el mejor momento para exponer, identificar y categorizar todas las "molestias" surgidas durante el sprint.

En resumen, tanto las capacidades del SM como una fluida y abierta comunicación dentro del team son fundamentales para la detección, reconocimiento, tratamiento y resolución de los impedimentos.

Tipos de impedimentos

Una posible clasificación de los impedimentos se basa en el tratamiento que necesiten:


  • Impedimentos del equipo, que son los típicos problemas que pueden ser resueltos dentro del team, ya sea tomando medidas internas para evitar que se repitan, estableciendo cambios en la forma de trabajo, definiendo el uso de nuevas herramientas, etc.

  • Impedimentos de la organización, que son problemas que dependen de otros para ser resueltos como temas de infraestructura, demoras en los entregables de otros equipos, entre otros.

Ejemplos típicos de impedimentos:

  1. Enfermedad de algún miembro del equipo
  2. Operaciones de mantenimiento de hardware o software corporativo que afecten la continuidad de las tareas planificadas
  3. Interacción con proveedores que no cumplen con los plazos o los servicios comprometidos. Este es, tal vez, uno de los impedimentos más preocupantes dado el poco margen de intervención que puede llegar a tener el SM para solucionarlo
  4. Ausencias o poco compromiso del Product Owner que demora la toma de decisiones o aprobaciones. Particularme este caso lo hemos sufrido en algunos de nuestros proyectos y representa  realmente un gran problema, la clave está en tratar de mantener un muy buen diálogo con el PO y hacerle notar la importancia de su presencia durante todo el proceso y las consecuencias que puede provocar su no involucramiento
  5. Un backlog mal definido o con requerimientos que no estén listos o bien detallados para iniciar la planificación del sprint
  6. Reuniones largas, innecesarias o que involucren a miembros del equipo que podrían no estar, restándoles tiempo para avanzar según lo planificado

Cómo tratarlos

La lista de puntos a seguir con los impedimentos debería recorrer los siguientes pasos:
Impedimentos Scrum
  • Registrarlos
  • Piorizarlos
  • Hacerlos públicos
  • Actuar sobre su resolución
  • Informar de su resolución

Muchos de los impedimentos que pueden encontrarse en las tareas diarias suelen ser pequeños y de fácil y rápida resolución  (pedir ayuda a otro miembro del team, un mail, una llamada telefónica al equipo de operaciones, etc.). Como muchos aconsejan, estos ítems pueden ser incluídos en el backlog y tratados dentro del mismo.  Para el resto de los impedimentos se aconseja llevar un Backlog de Impedimentos.

Yendo en el mismo sentido, la Scrum Alliance nos da 5 tips para manejar la resolución de Impedimentos:

  1. Hacerlos visibles, dejarlos escritos y a la vista de todo el equipo, cerca de la pizarra de tareas. Deben estar especialmente visibles durante la reunión diaria para que el SM pueda contar al equipo cuáles se fueron removiendo y junto con el equipo re-categorizar el resto.
  2. Buscarlos, indagar, sobre todo en equipos que recién empiezan con la práctica el SM debe encargarse de detectarlos y sacarlos a la luz (por ejemplo, cuando las tareas quedan inmóviles en la pizarra por mucho tiempo, cuando hay más tareas "En Progreso" que desarolladores). Preguntar siempre qué haría que las tareas se resuelvan lo más rápido posible.
  3. Limitar el número de Impedimentos, ya sea por tiempo o por cantidad. Por tiempo implica establecer un máximo de horas que se permite a un impedimento permanecer en la lista, por ejemplo "un impedimento puede existir por un máximo de 24 hs", pasado ese tiempo tiene que ser resuelto o enviado al próximo sprint. Por cantidad implica establecer un máximo de impedimentos abiertos por sprint para ser resueltos. El equipo decidirá qué hacer en el caso en que surja alguno nuevo en el medio. En el punto siguiente hacemos una salvedad a este tip.
  4. Diferenciar entre impedimentos globales y locales. Esta categorización es importante para entender cuáles son los impedimentos que disminuyen la velocidad del equipo (globales) y cuáles los que bloquean la continuación de alguna tarea (locales o blockers). Esto nos remite al punto 3: ese tip sirve para los impedimentos de tipo global. A los impedimentos locales, que bloquean una o más tareas, la Scrum Alliance nos aconseja agregarlos a la pizarra del sprint con algo que los diferencie visualmente del resto de las historias para que sean enfrentados cuanto antes.
  5. Ayudar al equipo a resolverlos. En la medida que se pueda, es aconsejable encontrar un equilibrio entre los impedimentos que toma para solucionar el SM y aquellos que puede solucionar el team por sí solo.Si bien una de las capacidades del SM es la de "limpiar" los impedimentos, es bueno dejar que el equipo pueda hacerse cargo de algunos de ellos.
 
Para finalizar, me quedo con una una frase que encontré respecto de este tema y me pareció muy buena: "No puedes eliminar los impedimentos pero tampoco deberías ignorarlos, o peor aún, aceptarlos como algo normal". (de Impediments Management and The Agile Triangle )


Más para leer:

Identificando Impedimentos

Impedimentos en Scrum

Top ten organizational impediments

   

Leer más...