Cuestión de evolución
“Talk is cheap, show me the code” – Linus Torvalds
No hablo mucho de mi trabajo en este blog, es una política personal, pero voy a mencionar que hace unos meses tuve la oportunidad de implementar un servicio de misión crítica, en que todas las componentes están soportadas por productos opensource, desde el sistema operativo (RedHat), el middleware (JBoss) hasta la base de datos (Postgres).
Creo que hicimos un buen trabajo con ayuda de nuestros proveedores tecnológicos, y establecimos de pasada las bases de la infraestructura básica de servicios (SOA) para nuestra compañía, la que guiará nuestros futuros desarrollos en los próximos años.
Tal como dice Franco Catrin, la elección de componentes de base, como el sistema operativo es una decisión táctica, pero cuando empezamos a subir en la escala de complejidad de las soluciones informáticas, la decisión de usar o no opensource se convierte en una decisión estratégica.
Estas decisiones no deben tomarse con el criterio de ahorrarse las licencias, de hecho, las licencias de mantención de Redhat Linux Enterprise suelen costar lo mismo y a veces más que una versión de Windows. El costo de licencias no es la decisión relevante en estos casos, el que toma decisiones tecnológicas basado en el costo de licencias es un ratón.
“El Open Source no es algo a lo cual temer. El Open source es algo que debe ser explicado. El Open source gana no porque sea abierto, ni porque sea gratis. El Open source gana sólo cuando es mejor” – Larry Ellison
Larry Ellison es un exitista, y como tal cree en los conceptos de mejor y peor. Como yo no creo en estos términos, pienso en términos evolutivos, y evolución es adaptación al cambio.
¿Que tipo de software es más apto (en el sentido evolutivo)?
La biología nos enseña que los ecosistemas más ricos, con grandes poblaciones, reaccionan más rápido a los cambios, entre otras razones porque el pool genético es más diverso.
En el caso del software, el genoma, el ADN, es el código, y el pool genético, el ecosistema que sustenta la evolución está dado por la cantidad de programadores que tiene acceso a este código, es decir, la comunidad de desarrolladores (excluyo de esta discusión la comunidad de usuarios, que suele ser mayor en el software propietario).
Entonces, para ciertos tipos de aplicaciones, es mejor contar con acceso al código, y al ecosistema que lo sustenta. El opensource da acceso a eso, el software propietario lo hace más dificil.
¿Se podían implementar estos procesos con herramientas propietarias (no open source)? Sí, definitivamente. Entonces, ¿cómo tomas esta decisión?
Yo soy tecno-agnóstico. He tenido la oportunidad de participar en la toma de la decisión de la estratégia tecnológica en 3 empresas, y he usado tanto tecnologías propietarias como abiertas.
En esta oportunidad creo que he tomado la decisión tecnológica más importante en mi vida profesional, tanto por la envergadura del servicio como por su impacto real. Esta vez decidí el opensource, porque de verdad necesito ser flexible y adaptarme al cambio.
Trabajo en una industria fuertemente regulada (la industria previsional), y por su dinámica, y por su impacto social, está sujeta a cambios y reformas fuertes que provienen desde el gobierno y la legislatura. Era importante estar en condiciones de soportar estos cambios bruscos, actuar con flexibilidad. Ese fue mi criterio, y el software abierto me da esa flexibilidad.
Las decisiones estratégicas en tecnología, como cualquier decisión estratégica deben ser razonadas, no se deben tomar por moda, o por razones políticas personales, no es cuestión de fundamentalismos, ni de seudo éticas trasnochadas. Para mí una decisión de este tipo es una cuestión de evolución (y por lo tanto, también es una decisión ética).