21 de mayo de 2012

¿Solo o en comunidad?

Cuando empecé a trabajar adonde ahora trabajo, mis habilidades obviamente no eran las que hoy son, sabía instalar y configurar aplicaciones en linux, y un poco de programación en php. Conforme pasó el tiempo fui aprendiendo mucho más de php, algo de javascript, y definitivamente la relación entre las clases e ids de las etiquetas de html y las operaciones de jquery. Además mejoré muchísimo mis habilidades para implementar y modificar instancias de drupal, un gestor de contenido muy famoso que cuenta con miles de desarrolladores en el mundo, y que sigue creciendo y mejorando día con día.

Muy al principio, cuando entré a trabajar ahí, había dos caminos posibles (tal vez había más, pero estos son los dos que se me presentaron). 1. Podíamos usar drupal (o pal caso cualquier otro gestor de contenido robusto del mercado) para nuestros desarrollos; y aprovechar así la colaboración gratuita de miles de programadores en el mundo, así como de más de mil módulos ya listos para usar; aprender la estructura y el uso de un desarrollo ya maduro y contribuir a nuestra vez con cosas nuevas de nuestra cosecha para el mundo; o 2. podíamos hacer todo nosotros desde cero, como mejor creyéramos que debía ser.

Yo por supuesto me inclinaba por la opción uno, y de hice varios desarrollos así, con Drupal, y con bastante éxito. Pero el resto del equipo fue de otra opinión, el alegato principal era que si lo hacíamos todo nosotros sabríamos todo nosotros, donde estaba cada cosa, como modificarla, etcétera; mientras que si retomábamos un programa ya hecho, tendríamos que aprender todo sobre él... (y ahora pienso que el tiempo que nos llevó construir todo desde cero es el mismo que nos hubiera llevado aprender todo de drupal, por ejemplo). Si usábamos drupal (o wordpress, o jumla) y algo fallaba nos íbamos a tardar una eternidad en saber qué era, y por lo tanto en repararlo; pero si algo fallaba en nuestro propio desarrollo, sabríamos casi instantáneamente qué era, y lo repararíamos en fa.

Los argumentos anteriores se demostraron no tan certeros, cuando he tenido algún problema con drupal googleo el error y (con más de 500mil implementaciones en el mundo) a alguien más ya le pasó, y casi siempre ya hay una solución; ahora que si me hubiera metido a fondo a aprender el api de drupal hasta yo habría podido proveer una solución a los pobres que padecieran de ese error. Además, drupal cuenta con una súper documentación, un acerbo impresionante de manuales y tutoriales, un foro con miles de preguntas y respuestas, un gestor de bugs, un api claro y definido, una estructura de base de datos estándar, y gente dispuesta a ayudarte a resolver algún problema o a fabricar un módulo por una módica cantidad.

Por otro lado, el framework desarrollado en la oficina, por más que el arquitecto sea brillante y genial, no cuenta con manual, con documentación, con prácticamente nada que pudiera ayudar a algún programador nuevo a aprender a usarlo, más allá de la tradición oral. Vamos, que si en una de esas corrieran a todo el equipo de desarrollo, y contrataran a gente nueva, los nuevos tendrían que tirar nuestro programa porque aprender a usarlo, por más buenos programadores que fueran, les costaría una eternidad... Así que en retrospectiva concluyo que es mejor unirse a una comunidad que hacer todo uno solo.

No hay comentarios.: