12
Nov
2017

Pharo en Osoco (parte 1)

Taking the Pharo Red Pill

Tiempo: 3 minutos

Tags: #osoco , #pharo y #smalltalk

En 2014 encontramos la ventana de oportunidad idónea para introducir Pharo Smalltalk en OSOCO. Se trataba del desarrollo de OpenBadges, un producto dirigido a ofrecer Gamification as a Service. Tratándose de un producto interno teníamos total libertad para la elección de tecnologías y en estos casos siempre aplicamos la recomendación de Paul Graham en Beating the Averages:

When you choose technology, you have to ignore what other people are doing, and consider only what will work the best.

Personalmente llevaba años cautivado por el potencial que intuía en Smalltalk. Había leído prácticamente toda la bibliografía existente, que en gran parte está disponible gratuitamente. También conocía la comunidad a través de sus listas de distribución de correo. Incluso me animé a acudir como un completo noob a la conferencia ESUG 2012 que se celebró durante una semana en Gante.

Había desarrollado pequeñas cosas, primero en Squeak y luego en Pharo, pero nunca nada más serio que una kata o una sencilla aplicación web con Seaside, así que tenía algunas intuiciones sobre cómo podría mejorar nuestra forma de trabajar en OSOCO, pero ninguna certeza y bastantes dudas.

El proyecto OpenBadges nos permitió validar por primera vez nuestras hipótesis sobre Smalltalk en el contexto de un proyecto de desarrollo de software profesional.

Algunas de nuestras primeras conclusiones aparecen en la siguiente presentación para una reunión del grupo Madrid Smalltalk User Group.

Los factores diferenciales que mencionábamos entonces eran:

  • Sencillez, consistencia y comprensibilidad.
  • Programación de sistemas vivos.
  • Ciclos de realimentación más cortos.
  • Productividad.
  • Construcción de herramientas específicas del dominio.
  • Facilitador de Domain-Driven Design.
  • Agilidad hasta sus últimas consecuencias.

Aunque ya teníamos claro que podríamos beneficiarnos de todas estas ventajas, en realidad, éramos conscientes de que todavía estábamos lejos de extraer todo el potencial posible y que en muchas ocasiones seguíamos desarrollando con la mentalidad de Java o Groovy, pero con la sintaxis de Smalltalk. No habíamos hecho más que iniciar un largo camino de aprendizaje y descubrimiento.

Acabábamos de aceptar el reto de vencer el FUD y de ir contracorriente. Habíamos optado por la pastilla roja, por quedarnos en el País de las Maravillas, pero todavía no éramos conscientes de hasta dónde nos llevaría la madriguera del conejo.

Tras este primer proyecto, hemos vuelto a emplear Pharo en otros dos proyectos: un ATS (Applicant Tracking System) para un gran cliente y Contestia, una línea de productos de software internos. Estas experiencias nos han dado la oportunidad de profundizar en sus implicaciones, reflexionar sobre cómo nos está afectando y trabajar también en vencer alguno de los inconvenientes que nos planteó inicialmente.

Estamos tan convencidos de su idoneidad que lo hemos incluido en el radar de tecnologías del equipo de ingeniería como un lenguaje estratégico, al mismo nivel que nuestros lenguajes de cabecera: Java y Groovy.

Creo que estamos alcanzando una segunda fase de madurez, en la que una vez superada la epifanía inicial, somos más conscientes de cómo exactamente podemos aprovechar el potencial de Smalltalk en OSOCO.


Próximamente publicaremos Hemos publicado una segunda parte de este post describiendo esta otra fase de nuestra experiencia de adopción de Smalltalk en OSOCO.

comments powered by Disqus
Top