Comunidad y software libre

12/10/2009

El otro día estaba hablando con una buena amiga de la facultad sobre su proyecto fin de carrera, se trata de un portal web implementado con tecnología Drupal, me preguntaba si conocía algún tipo de software, libre, para hacer pruebas de usabilidad, la verdad que me quedé un poco a cuadros, ya que no tenía idea de qué contestarle.

Cuando llegué a mi casa al curiosidad me pudo y me puse a buscar información acerca de este tema, tras un rato empecé a vislumbrar que para la realización de las pruebas de usabilidad existen dos tipos de herramientas, las herramientas de eyetracking y las herramientas de clicktracking. Mientras que las primeras, las más avanzadas, se basan en recoger dónde mira el ojo cuando está visualizando la información, las segundas recogen dónde ha hecho click el ratón en la página html, ambas, sin embargo, muestran los resultados de una forma muy parecida, utilizando heatmaps.

Ejemplo de heatmap

Ejemplo de heatmap

El siguiente paso fue buscar herramientas que proporcionaran las funcionalidades de las que hablaba antes, cuál fue mi sorpresa cuando de repente veo que existe un módulo de Drupal que permite mostrar heatmaps integrándose con la librería de la herramienta ClickHeat.

Estas son las cosas que a uno le hacen pensar y plantearse cosas. La oferta de gestores de contenidos de software libre es amplísima, Drupal, OpenCms, Joomla, Mambo, Magnolia y un largo etcétera, pero a la hora de elegir uno en ¿qué parámetros debemos basarnos?, pueden ser muchos, rendimiento, escalabilidad, curva de aprendizaje, etc, pero para mí uno indispensable es la comunidad de usuarios que haya alrededor del cms en cuestión, una comunidad activa que ayude a través de foros, faq´s, listas de correos, etc, una comunidad que desarrolle y comparta sus desarrollos.

En mi experiencia con los gestores de contenidos he tenido la oportunidad de trabajar con dos de ellos, OpenCms y Drupal. Independientemente de la tecnología, arquitectura, etc utilizada en cada uno de ellos hay una diferencia entre ellos que veo sumamente clara, y es la comunidad, mientras que en Drupal tenemos una activa comunidad con más de 300 módulos desarrollados, compatibles con la versión 6 del gestor de contenidos, en OpenCms es complicado si quiera encontrar una décima parte de esos módulos.

¿Por qué en una comunidad autónoma, como la nuestra, en la que se ha hecho y se sigue haciendo una apuesta tan fuerte por el software libre son tan pocas las empresas proveedoras que siguen este enfoque y se convierten en meras consumidoras de software libre?

Como he citado en otras ocasiones:

El software es como el sexo, es mejor cuando es libre. Linus Torvalds


Sobre los prejuicios y PHP

04/09/2008

Con la llegada de PHP5 y su orientación a objetos (la orientación a objetos que PHP4 proporcionaba no lo convertía en una opción competitiva aún) con sus modificadores de visibilidad, manejo de excepciones orientada a objetos y demás características ha vuelto a cobrar fuerza una opción que revoloteaba en la cabeza de muchos ingenieros software a la hora de seleccionar un marco tecnológico con el que modelar la solución software que le proporcionarán a sus clientes, está claro, a la luz de los hechos, que dicha opción no existe o no tiene el mismo peso en todas cabezas.

En el día a día , tanto profesional como personal, se toman muchas decisiones, de mayor o menor envergadura, en base a una serie de criterios y motivos. Muchos de estos criterios y motivos son estudiados minuciosamente para conseguir maximizar los beneficios obtenidos de tales decisiones, pero por desgracia hay otras decisiones, fundamentales para una empresa que tiene en la Ingeniería del Software una de sus áreas de negocio, como son los marcos tecnológicos con los que trabajar, que se toman en base a prejuicios e ideas infundadas. PHP es uno de esos marcos tecnológicos que cuenta con un número mayor de ellas:

  • PHP no es seguro.
  • No es escalable.
  • Java tiene frameworks que facilitan el desarrollo de aplicaciones.
  • Java es más fácil.
  • Java lo usan más empresas.

Como vemos existen muchos prejuicios (recalcando la palabra prejuicio) alrededor de los marcos tecnológicos basados en PHP, muchos de ellos totalmente falsos y otros muchos demasiado poco matizados como para poder tomarlos en consideración. Porque las facilidades que PHP o cualquiera de sus frameworks (Symfony, Cake, etc) o productos (Magento, OSCommerce, Drupal, Phing, Xinc, etc) proporcionen para gestionar la seguridad y la escalabilidad, la capacidad de un técnico para asimilar nuevos conceptos, etc no quedan exclusivamente determinados por el marco tecnológico, al igual que las herramientas utilizadas para desarrollar un producto no determinan totalmente la calidad de éste, sino que nos proporcionan esa serie de criterios, comentados al principio, que debemos evaluar para conseguir seleccionar el marco tecnológico que mejor se ajuste a nuestras necesidades y las de nuestros clientes.

No se trata de hacer una defensa desaforada de los marcos tecnológicos basados en PHP o cualquier otra tecnología, sino de hacer una defensa de la toma de decisiones razonada y basada en criterios y motivos sólidos y fundamentados.

No existen soluciones, solo caminos que merece la pena tomar. Proverbio chino.


Ya estamos aquí

18/08/2008

Pues sí, finalmente y tras mucho meditarlo, he decidido (no sé si acertadamente), que ha llegado la hora de compartir, con todo aquel que quiera acercarse a este rincón de la web, todo lo que he aprendido y estoy aprendiendo acerca de esta apasionante profesión a la que me dedico la Ingeniería Informática.

Una pregunta muy recurrente y que yo mismo me he hecho en numerosas ocasiones, ¿por qué crear un blog?. Ahora lo tengo claro, para mí no han sido muchas las razones que me han llevado a dar este salto (que considero un punto de inflexión en mi trayectoria profesional), pero sí muy poderosas. La primera y más importante de todas es intentar devolver de alguna manera, y aunque sea mínimamente, todo lo que la comunidad me ha aportado durante estos años, otra de las razonees que también me han impulsado ha sido la firme creencia de que un blog como el que pretendo me ayudará a ir reciclando y aumentando mis conocimientos.

En este blog vamos a hablar y aprender sobre Ingeniería del Software, frameworks y herramientas de desarrollo, ¿ecosistemas software? (aunque considero que estoy muy verde en este tema intentaremos hacer algo interesante) y en general sobre todas aquellas cosas relacionadas con la Ingeniería Informática, por supuesto estaré encantado de hablar sobre aquellos temas que me propongais y que estén dentro de mi área de conocimiento.

Finalmente no querría dejar pasar este momento para agradecerle a mis amigos (muchos de ellos compañeros de batalla) que me hayan animado a dar este paso, me esforzaré para estar a la altura de las espectativas.

Lo que sabemos es una gota de agua; lo que ignoramos es el océano. Isaac Newton