El dragón en la luna

Mis ideas y sueños mezclados con un poco de locura

Continuidad

La inercia es una de las propiedades más poderosas del Universo. Es la habilidad de permanecer haciendo algo simplemente porque ya lo estabas haciendo antes, y esto no aplica solamente al movimiento. Día a día los seres humanos nos encontramos con miles de situaciones que son hechas “por inercia”. Hasta el mismo hecho de respirar podría ser justificado diciendo lo hago porque lo he hecho toda mi vida.

La inercia también puede ser importante en el desarrollo de proyectos. Cuando has definido una series de metas para tu proyecto y empiezas a trabajar para conseguirlas, creas una poderosa corriente que arrastra todo en su camino hacia tu objetivo. A veces la corriente es tan poderosa que es imposible variar su curso hasta que llegue a su destino, lo que ha llevado a mucha gente a la ruina al no haber fijado las metas adecuadas, y descubrirlo demasiado tarde.

Pero si canalizas esa corriente de la manera correcta, tienes a tu alcance una de las llaves del éxito, capaz de mover grupos, organizaciones y empresas hacia el objetivo fijado. Se que suena como algo mágico y difícil de conseguir, pero en realidad es algo que vivimos día a día, en mayo o menor grado. Sin embargo, tampoco es una fuerza absoluta, existen muchas maneras en las que se puede romper esta continuidad, especialmente en el mundo actual lleno de distracciones.

Pero uno de las desventajas de la inercia, es que no solo sirve para mantenerte en movimiento, sino que también para mantenerte estático. Eso lo hemos vivido todos al iniciar un nuevo proyecto o una nueva rutina. Cada persona es diferente, pero a todos nos cuesta, en mayor o menor grado, realizar un cambio en nuestras vidas. Pero el verdadero peligro no esta a veces en iniciar un nuevo proyecto, sino en continuarlo luego de que este ha sido detenido.

Esto es lo que me ha pasado a mí. Luego de llevar MoonDragon con un buen viento e ir agregando nuevas capacidades al sistema, tuvimos un choque. Por razones personales y técnicas la beta 3 no se publicó en la fecha planeada, y todavía no esta acabada. Esto ha roto por completo la continuidad del proyecto y ahora no me es posible reestructurarlo para continuar con el desarrollo.

La vida esta llena de sorpresas, y la mayoría del tiempo las cosas no saldrán como han sido planeadas. En estos casos, tenemos que ser capaces de tomar decisiones rápidas y acertadas que nos mantengan en el curso que hemos escogido; y si nos hemos salido de curso completamente, es necesario detenernos a analizar la situación para volver a caminar en la dirección elegida. Eso es lo que debo hacer ahora.

Recuento de proyectos

Siguiendo un consejo que leí hace poco, he decidido hacer un recuento de los proyectos en los que estoy involucrado para ver sus avances y sus problemas en los últimos meses. Me gustaría haberlo tenido en mente desde el principio, así podría haber ido haciéndolo con más exactitud, pero es mejor hacerlo tarde que nunca.

En algún momento he comentado sobre ambos proyectos en el blog. Claramente el que ha destacado más es MoonDragon e incluso de él se deriva el nombre del blog, así que comenzaré hablando sobre él.

Usualmente presento a MoonDragon como un gestor de contenido, pero en realidad es ligeramente distinto. Su principal propósito era tener una herramienta que me facilitara la creación de páginas web, y estaba básicamente orientado hacia programadores, pero con el tiempo ha ido cambiando de forma o mejor dicho, tomando una forma definida como un CMS.

Desde que se empezó a utilizar el sistema de blueprints de Launchpad se ha mejorado mucho en la definición de objetivos y planificación de las versiones. Para poder mantener el orden se dividió el trabajo en dos ramas de desarrollo, el CMS y el API, y por el momento parece haber sido una buena decisión.

En lo que se ha fallado con MoonDragon es en el tiempo de entrega de la tercera beta, que debería de haber sido este viernes 30 de mayo. Por el momento sigo siendo el único programador que trabaja en el proyecto, así que el avance depende exclusivamente de mi capacidad de sacar las cosas en los tiempos correspondientes. A medida que logre organizar mejor mi tiempo para programar y vaya ensamblando un equipo de trabajo irán mejorando nuestros tiempos de entrega, pero no deja de ser un error que no debe repetirse.

Además del trabajo con MoonDragon, he mencionado en algunas ocasiones que estoy en el proceso de poner una empresa. El proceso ha sido mucho más complicado que con MoonDragon, ha sido necesario trabajar para organizar a la gente involucrada, que probablemente es demasiada. El objetivo principal de la empresa ha cambiado varias veces, siempre dentro del ámbito del desarrollo web.

La empresa se llama CoSatelite, y hasta el momento hemos logrado montar nuestra página web y algo de información sobre nuestros servicios. No ha sido fácil lograr montar lo que tenemos y todavía nos falta mucho camino por delante. Todavía no hemos tenido nuestro primer cliente oficial, pronto empezaremos a hacer un poco de publicidad; luego de eso, tendremos que demostrar que podemos con el trabajo.

Viendo en retrospectiva todo lo que se ha hecho, puedo darme cuenta que los avances de MoonDragon han sido más notables que CoSatelite. Probablemente se deba a que MoonDragon empezó antes y un proyecto de software es más fácil de manejar que una empresa, en teoría.

Ambos proyectos todavía están muy jóvenes y falta ver los resultados. MoonDragon todavía se encamina hacia su primera versión estable, y en CoSatelite pronto empezaremos a prestar nuestros servicios. Confío en que ambos se desempeñaran bien en ambas tareas, pero en ningún momento hay que bajar la guardia, es necesario seguir dedicándoles todo el tiempo posible.

Para ser el primer recuento no ha quedado tan mal, en un futuro haré otros recuentos para poder seguir comprobando el progreso de estos y otros futuros proyectos. Mientras tanto, menos charla y más acción.

Bazaar, un sistema de control de versiones

Hace relativamente poco tiempo que he empezado a utilizar Bazaar como sistema de control de versiones en lugar de CVS, tal y como lo mencione en este otro post , y con la reciente noticia de que bazaar se ha convertido en un proyecto GNU creo que vale la pena aprovechar para escribir algo en el blog hablar un poco sobre mis impresiones con el sistema.

Llevo ya casi un año de haber empezado a trabajar con los sistemas de control de versiones, desde que empecé a travesear en Sourceforge . Al principio no tenía idea de como funcionaban y tuve que pasar un par de días leyendo al respecto, y para bien o para mal, empecé con CVS. Me costo bastante adaptarme, habían muchas cosas que no eran intuitivas y cometí muchos errores, incluso varios meses después de haber empezado a usarlo.

Consideré la posibilidad de cambiarme a Subversion , pero las diferencias no me parecieron significativas como para eso. La primera vez que escuche sobre Bazaar me pareció que era solamente un sistema de control más que andaba por ahí, pero ya viéndolo con detenimiento me di cuenta que éste si aporta muchas cosas interesantes.

Creo que una de las cosas que más me gusto de Bazaar en un comienzo es que cada revisión guarda una copia de todos los archivos, estén modificados o no. CVS solía tratar cada archivo individualmente, y si no marcabas explícitamente que todos estaban relacionados, era imposible saber que revisión de X archivo era compatible con otro archivo Y. Sien embargo, esta no es la característica más importante de Bazaar y, si no me equivoco, Subversion también funciona de esta manera.

En donde se encuentra realmente el potencial de Bazaar es en su manejo de ramas o branchs. CVS y Subversion tienen sus maneras de utilizar ramas, pero siempre me pareció que crear una rama era una decisión muy importante que no se debía tomar a la ligera. Con Bazaar, las ramas son la forma ordinaria de trabajar, permitiendo e incluso fomentando a que cada desarrollador trabaje en su propia rama, e incluso tenga varias ramas a su disposición.

El orden dentro de un proyecto es probablemente el factor más importante para que este siga creciendo. La experimentación también es importante, un proyecto que deja de probar cosas nuevas esta condenado a desaparecer. Bazaar permite combinar las dos cosas, un desarrollador puede tener su propia rama experimental, en la que puede hacer y deshacer a su antojo con todas las ventajas de un VCS ordinario, como tener distintas revisiones, sin contaminar la rama principal de desarrollo que debe de mantenerse impecable.

La mezcla entre las ramas es un proceso muy delicado, no queremos que el trabajo de otros se pierda por un error de compatibilidad, y tampoco queremos perder la línea de los cambios que se han realizado. Bazaar trata de hacer este proceso lo más sencillo posible y lleva un control bastante estricto de las ramas que se han mezclado y los aportes que se han incluído. Hay muchos conflictos que siempre necesitarán asistencia humana para resolverse, pero hay que recordar que el software es una herramienta y no debe servir para hacer el trabajo en nuestro lugar.

Por el momento estoy bastante contento con este sistema de control de versiones, junto con el sistema de blueprints de Launchpad , me ha ayudado mucho con la organización y el avance de MoonDragon . Espero que Bazaar siempre siga mejorando, personalmente espero el día en el que su plugin para Eclipse sea estable y completamente funcional.

Resumen de la semana

He fallado con mi intento de mantener actualizado este blog, he pasado bastante ocupado y a pesar de que si han habido cosas de las que he querido escribir, no he logrado despegarme de lo que estoy haciendo para redactar algo decente.

Esta semana ha sido dedicada casi en su totalidad a MoonDragon. El proyecto todavía es muy joven, y muchas veces hay cosas que no se han organizado bien aún, hasta hace poco todas las decisiones en el proyecto salían de mi humilde opinión personal, lo cual no era muy productivo. He traspasado mi planeación personal al sistema de blueprints de Launchpad, y tengo que decir que ha sido más agotador que sentarme a programar.

A veces siento que me complico demasiado con los detalles. La documentación, la legibilidad del código, la organización en Launchpad, todas son cosas que han requerido de mucho tiempo y algunas todavía no están terminadas, sin embargo me parece que es mejor trabajar en eso para darle unas buenas bases al proyecto desde el inicio.

Uno de los cambios más radicales de esta semana ha sido empezar a utilizar el sistema de control de versiones Bazaar (antes utilizaba CVS). Puedo decir que me ha gustado mucho la transición, y como uno de mis malos hábitos es intentar aprovechar todas las características posibles de las herramientas que tengo disponbiles perdí mucho tiempo leyendo toda la documentación posible, pero al final valió la pena.

Espero que semanas como esta en las que es necesario dedicarle tanto tiempo a la estructuración del proyecto no se den muy a menudo, si cada semana tuviera que reestructurar las cosas entonces demostraría que nunca lo hago bien. Escribir en el blog no ha sido la única cosa que he dejado de lado, a veces simplemente me olvido de que hay todo un mundo alla afuera.

Pd. Creí que este post iba a ser una especie de excusa de porque no he actualizado esta semana, pero termino un poco diferente a como me lo imagine.

Desorden y falta de animos

Este no es el mejor momento para estar escribiendo en el blog, así que seré breve. Estas útlimas semanas traté de hacer todo lo posible para iniciar a trabajar en el primer proyecto de nuestro intento de empresa nuestra empresa, pero las cosas nunca salen como uno quiere.

El avance se ha retrasado por varias razones, ahora hasta siento que vamos hacia atrás. Prefiero no entrar en detalles al respecto, por aquello de herir sensibilidades. Por otro lado, tanto lío ha tenido sus reprecusiones en MoonDragon y me esta constando poner en orden el proyecto de nuevo.

No se si el desánimo que me causo que las cosas no caminaran fue lo que causo que se desorganizara todo, o si el proyecto ya estaba destinado irremediablemente a perder el rumbo. En todo caso, en este momento estoy en etapa de reestructuración, espero que cuando acabe de reestructurar el proyecto quede en mejor estado para el futuro.

Archivo