Mingle: Pequeña obra de arte.
lunes 16 de julio de 2007 by Alejandro Di Battista
Estuve probando Mingle... es fantástico!!
Alguna vez leí "Un producto simple es muestra de un mente clara", Mingle, un producto de ThorghtWorks, lo demuestra.
En producto recien se inicia, tiene cosas para mejorar, pero se ve claramente que es un ganador. Es increíblemente ágil de usar, muy simple, y sorprendentemente, muy poderoso.
La idea es simple, usa "tarjetas" para describir los requerimientos. Las mismas son paginas wiki, (lo que da total flexibilidad al momento de escribir una presentación), a las que se le puede agregar propiedades dinámicamente (lo que hace muy fácil filtrar y organizar la información).
Las tarjetas puede ser visualizadas como un lista o como una grilla. En la primera opción se facilita la edición grupal de propiedades, en la segunda se facilita la visualización y manipulación directa de las mismas (drag & drop).
Al mostrarse como lista se puede elegir múltiples tarjetas y cambiar las propiedades de todas ellas simultáneamente.
Al mostrarse como grilla permite visualizar dos propiedades simultáneamente y cambiar el valor de una de ellas arrastrando la tarjeta a otra columna. Basta indicar cual es la propiedad que se va a usar para agrupar las tarjetas y el sistema responde instantáneamente con todas las tarjetas encolumnadas en cada uno de los valores posible de dicha propiedad. Luego si la arrastramos a otra columna toma el valor del dicha columna (es mas difícil describir que usar)
Además se puede indicar que propiedad se va a usar para "colorear" la tarjeta.
Esta dos características, agrupar y colorear, resulta excelente para revisar de "un vistazo" el estado del proyecto.
Las vistas pueden ser filtradas, guardadas y luego puestas como una solapa en al pagina principal por lo que muy fácil crear "informes" por ejemplos de las tareas no asignadas que sean criticas.
También tiene la posibilidad de definir transiciones, que al aplicarse a una tarjeta le cambia una o mas propiedades. Nuevamente es genialmente simple, basta con indicar el patrón que debe cumplir la tarjeta para que se pueda aplicar la transición y en todos los lugares en donde se visualiza la misma aparacerá un link con el nombre de la transición, al ejecutarlo le cambia el estado de la tarjeta. Esto permite definir con simplicidad un workflow.
Uno de los aspectos mas agradable de la aplicación es un muy equilibrado uso del ajax que hace un placer usar muchas de sus funciones. Agregar un tag, un nuevo valor a una propiedad, cambiar el estado, etc. todo es fluido y natural.
Por alguna extraña razón parece verse a cada instante que esta hecho usando increíble framework de moda, Ruby on Rails. (¿seré fanático?)
La herramienta es la metodología.
viernes 13 de julio de 2007 by Alejandro Di Battista
La palabra metodología suena importante, pero en definitiva es la forma en que hacemos las cosas.
En las universidad se enseña que las metodologías (o al menos una forma de ellas, las metodologías en cascada) es lo que hace al ingeniero en sistema un profesional.
Si duda esto es verdad, sin una forma de trabajo efectiva, no se puede hacer un trabajo profesional.
Ahora también es cierto que se le da demasiada importancia a algo que debería ser tan natural.
El problema radica en una confusión de medios y fines. La metodología es nada más que un medio, el fin es tener un sistema funcionado. Las metodologías formales se vuelven algunas veces un fin en si mismo.
Se debe cumplir con documentación, procesos, certificaciones, etc. sin cuestionar cuanto contribuye al resultado final.
Parece absurdo hacer algo que no produce resultado, pero si producen costos. Pero no lo es si prestamos atención que la relación causa-efecto casi nunca es clara.
En las grandes empresas, con recursos casi ilimitados, la posibilidad de hacer trabajo inútil y que nadie haga algo para cambiar es altísima, ni que hablar del estado o las universidades.
En cambio, quienes somos pequeños, con recursos limitados, no podemos darnos el lujo de desperdiciar lo poco que tenemos.
Es por eso que debemos cuestionar constantemente la utilidad de una práctica, que debemos pedir pruebas concreta de su utilidad antes de aplicarla. Las metodologías ágiles no solo se hacen viables en este contexto, sino que son obligatorias.
Genexus es una herramienta, como lo es cualquier lenguaje de programación, pero no es una herramienta más para las empresas que pretenden ser ágiles. La herramienta condiciona, y hasta define en gran medida, la metodología, la forma de trabajar.
La herramienta es la metodología, tan solo necesita ser complementada con algunos artificios externos en caso que la misma sea limitada.
En lo posible esos artificios deberían ser integrados a la propia herramienta. Convenciones de nombre, formato en los comentarios, organización de carpetas, etc. son algunos elementos "metodológicos" que complementan a la herramienta y que en muchos casos suelen ser suficiente.
Una de las formas más efectivas de ser ágiles es mantener las estructuras muy reducidas. Es lograr que la producción aumente por el aumento de la productividad en lugar de aumentar los recursos. Es invertir en desarrollar la metodología y no solo el sistema.
En definitiva ser "chicos por diseños"
