Jorge Gamba bio photo

Jorge Gamba

Consultor en Arquitectura y Desarrollo de Software. Colaborador de la comunidad http://ALT.NET Hispano. Agile, Extreme Programming, BDD.

Email Twitter Facebook Google+ LinkedIn Github

Es un movimiento… así de sencillo, pero también de entrada hay que decir que no hay una definición totalmente oficial ni exacta, hay descripciones y principios (tal vez no leyes) que rigen cómo piensa y actúa un alt.netero. De hecho, si buscas en la Web, seguramente vas a encontrar diferencias en como lo entienden unos y otros, aunque también es necesario aclarar que las diferencias son muy pequeñas y no muy distantes.

Historia

En Abril de 2007, Dave Laribee publicó un artículo, después de leer un post de Scott Bellware titulado On Being the NHibernate Mafia, en el cual insiste en la importancia de la capacidad de mantenimiento de las soluciones creadas, por encima de las herramientas para crearlas. Laribee propone usar el término ALT.NET explicando su significado por medio de cuatro principios básicos, que son:

  1. Usted es el tipo de desarrollador que usa cualquier cosa que funcione al mismo tiempo que sigue buscando una solución alternativa mejor.
  2. Es necesario salir fuera de los elementos convencionales para poder adoptar lo mejor de cada comunidad: Open Source, Agile, Java, Ruby.
  3. No está satisfecho con el status quo. Todo puede adoptar siempre un carácter más elegante, más mutable y, por supuesto, de mayor calidad.
  4. Se ha dado cuenta de que las herramientas son estupendas y, sin embargo, no le llevan demasiado lejos. Son los principios y el conocimiento lo que realmente importa. Las mejores herramientas son aquellas que integran el conocimiento y fomentan los principios (por ejemplo, ReSharper).

De esta manera, él también reúne el sentimiento de inconformidad de la comunidad .NET con algunas de las herramientas y prácticas provistas o impulsadas por Microsoft, particularmente lo que ya se dejaba ver para entonces de ADO.NET Entity Framework dejaba mucho que desear, esto llevó a pensar en buscar una Alternativa (se entiende que la parte ALT de ALT.NET se refiere a Alternativo). En Octubre de 2007 este movimiento toma una forma más concreta, cuando en Austin, Texas se realiza el primer evento ALT.NET Open Spaces (hasta ese momento solo había tenido vida en la blogósfera)

La necesidad

Microsoft vende, provee herramientas de software que usa la comunidad .NET, apoyándose en una corriente principal y tradicional de liderazgo conformada por autores de libros, MVPs, conferencistas INETA, entre otros, que enseñan como usar estas herramientas y APIs, esto ha sido muy bueno y es innegable que muchos de sus productos son de excelente calidad. Pero también es cierto que han descuidado cosas muy importantes, no basta con saber usar las herramientas, también se necesita saber cómo hacerlo de la manera más adecuada aplicando fundamentos de POO y diseño, manejo de configuración, gestión de proyectos, requerimientos, pruebas y otras cosas para tener proyectos exitosos. Por otro lado existen herramientas fuera de Microsoft que son superiores a algunas de ellos.

El problema está en la centralización y polarización, de los recursos de desarrollo de software (frameworks, conceptos, metodologías), en una sola fuente, sea la que sea, restringiéndose de usar los de terceros.

Qué es

Como ya se indicó, ALT.NET, más que definirse, se describe y esto se hace por medio de lineamientos, principios y opiniones que provienen principalmente de evangelistas destacados (muchos de ellos MPVs) de “una parte” de la comunidad .NET. No se trata de herramientas sino más acerca de pensamiento, de la búsqueda de la excelencia (no de perfección), de mantener la mente abierta a ideas, sin importar de donde vengan estas, si vienen de Microsoft, de un vendedor tercero o de un proyecto Open Source.

Este movimiento da mucha importancia al diálogo en todas sus formas (bien sea a través de Open Spaces, listas de correo, blogs, twitter, podcasts, webcasts, etc.), en donde los aportantes no se limitan simplemente a documentar, promover y dar soporte a los productos de proveedores de herramientas y prácticas de desarrollo, sino que se detienen a evaluarlas y si es necesario, incluso rechazarlas, trasladándonos así a la comunidad más control, elementos de juicio y poder de selección para disponer de los mejores recursos para crear software.

ALT.NET busca entonces también acabar con la pasividad y el conformismo de la comunidad .NET. La plataforma .NET es muy buena, proviene de Microsoft pero nosotros somos quienes “la usamos” y “la practicamos”, de manera que no debemos limitarnos a solo proveer retroalimentación a los proveedores de herramientas, conceptos y metodologías, sino que podemos participar más directamente con soluciones, no solo reporte de bugs y requerimientos, al tiempo que se crece colectivamente en conocimiento.

Qué no es

No es una “comunidad Microsoft”, pero si es una parte de la comunidad .NET, diferente, no?, aunque si tiene miembros de dentro de la casa Microsoft y de otros proveedores de recursos de desarrollo, las puertas están abiertas a todo el que concuerde con los principios que promueve ALT.NET, provengan de donde provengan.

La plataforma .NET no es necesariamente un limitante, eso sí la mayoría de sus participantes trabajan con .NET y buscan mejorar esa experiencia, para lo cual son bienvenidos conceptos, metodologías, modelos e ideas provenientes incluso de otras plataformas como Ruby o Java, por poner solo dos ejemplos. Además, ALT.NET no solo busca influir en el ambiente .NET, sino en el desarrollo de software en general.

No es un movimiento hippie o uno revolucionario que busca romper esquemas, ir en contra de un orden establecido, no, tampoco, no es nada tan extremo, ni siquiera cerca, nuevamente, es acerca de tener la mente abierta a ideas y no radicalizarse o polarizarse. Aquí no se cree que Microsoft u otro proveedor sea del diablo, no es anti-Microsoft ni anti-comercial, eso debe quedar muy claro; simplemente, si tienen el mejor recurso requerido en cierto momento sobre determinada línea tecnológica, lo usaremos, si no lo tienen usaremos otro, pero aún en ambos casos, “siempre buscaremos alternativas”. ALT.NET si está relacionado con otros “movimientos” como Agil.

Si bien se buscan alternativas, estas son precisamente eso, alternativas y no remplazos, opciones entre las cuales podemos elegir, pero a las cuales no necesariamente daremos prioridad para remplazar recursos comerciales. Si bien se observa una tendencia a desarrollar y usar recursos Open Source, en muchos alt.neteros, ALT.NET no es acerca de Open Source, es solo una opción más.

Tampoco se trata de herramientas, de definir por ejemplo cuál es el mejor patrón, framework, metodología, concepto, utilería, etc., enfrentándo de esa manera a diferentes participantes, aunque si se habla de las ventajas, desventajas o conveniencia que tienen algunos de estos recursos en determinados escenarios.

Principios

Los principios básicos que aún se mantienen, son los que promulgó Dave Laribee y que relacioné en la sección Historia de esta publicación. pero para ser un alt.netero, deberás tener en consideración por extensión, lo siguiente:

Hay que creer en cosas como:

  • Aprendizaje continuo
  • Estar abierto a soluciones Open Source
  • Desafiar el Status Quo
  • Buenas prácticas de Software
  • DRY (No te repitas)
  • Aplicar sentido común cuando sea posible
  • Reconocer que a veces Microsoft no tiene la última palabra
  • La calidad de las cosas siempre se puede mejorar
  • Buscar la excelencia en la creación de Software
  • Se usan recursos para alegrar el ambiente de trabajo
  • La tecnología siempre cambia pero el conocimiento se acumula

Estado actual

ALT.NET es relativamente nuevo, lleva tan solo dos años aproximadamente, por lo que aún está en etapa de expansión y de que muchas cosas se acomoden, pero definitivamente es un movimiento imparable que cada vez tendrá más protagonismo e influencia en la dirección que tomen muchas cosas en .NET y en el desarrollo de software en general, es y será mucho más bueno, de modo que muy bueno por nosotros si nos mantenemos adheridos a él.

Para el caso de la comunidad hispana, estamos más distantes, hasta ahora comenzando a asimilar su cultura y pensamiento, para la muestra un botón, si googleamos un poco buscando contenido en idioma Español acerca de definiciones o descripciones de ALT.NET, podemos contar los resultados con los dedos de nuestras manos, recién comienzan su camino dos listas de correo, AltNet-Argentina y AltNet-Hispano, a las cuales bien vale la pena seguirles el paso.

Conclusión

Como se puede notar, hay mucho qué decir respecto de ALT.NET, esta publicación se centro en describir su ideología, resta por abordar temas como lo que yo he llamado recursos, tales como los grupos de usuarios locales, listas de correo, herramientas, open spaces, cómo comenzar etc., de estos temas escribiré más adelante. Por ahora les dejo algunos enlaces a contenido (en inglés) útil para ahondar un poco más en el mundo de ALT.NET.

Sitio Web "Oficial" de ALT.NET

altnetpedia

Lista de correo principal

Grupos de usuarios

Finalmente y como siempre, son muy importantes los comentarios que puedan expresar para complementar estos temas y encauzar futuras publicaciones relacionadas.