domingo, 15 de julio de 2012

Coursera: SaaS (Berkley)

Han sido realmente 5 semanas muy intensas, y creo que la resaca durará semanas. El contenido del curso es tan extenso que necesitaré alguna semana más para finalizar el contenido, y meses para digerirlo.

Podéis ver la información del programa aquí, realmente ha sido una formación muy interesante, y bien organizada. Basada en:
  • material visual (vídeo chats, clases y screencasts)
  • material didáctico (presentaciones y libros)
  • pruebas. Dos tipos de pruebas, pruebas tipo test, y pruebas de codificación prácticas
Intentando cumplir con el proceso de aprendizaje óptimo según el equipo de Berkley: lee, mira y practica (Creo que no estamos en disposición de dudar del método) Más bien al contrario. Estoy gratamente sorprendido.

Podéis obtener más información del curso y apuntaros aunque teóricamente empezó hace un par de días en el próximo curso en este link


Aunque el objetivo, que era explorar nuevas vías de crecimiento ha sido muy satisfactorio, además me llevo conmigo varios tesoros que hoy quiero compatir con vosotros.

En primer lugar la formación me ha venido bien para descubrir Ruby & Rails. Un lenguaje simplemente delicioso. Con una agilidad parecida a la que aporta python.

Por otra parte, profundizar en técnicas que hasta ahora solo conocía de forma teórica, sobretodo en relación a BDD (Behavior Driven Development),  ha sido de lo más interesante. A priori era muy escéptico en relación a poder especificar cualquier requisito mediante lenguaje semántico, y poder automatizar la ejecución de pruebas de aceptación.

Sigo siendo escéptico en la viabilidad de su implantación en grandes proyectos, es posible que si desde el primer día introduces la dinámica sea sostenible, pero adoptar a medio camino me parece inalcanzable.

Se trata de especificar mediante un pseudo-lenguaje natural las user stories, para automatizar su posterior cumplimiento.

Existen productos como Cucumber que proveen de la infraestructura necesaria para implementar un entorno BDD. He visto incluso versiones alineadas con proyectos XCode, por lo que no descarto incluirlo o si más no realizar alguna prueba a corto plazo.

En relación a TDD, sí que era un proceso más conocido, pero he podido profundizar en relación a la teoría  RedGreenRefactor


  • Red: Escribe un set de pruebas sobre una funcionalidad (que todavía no has implementado) y ejecútalo. El resultado debe ser ver la suite en rojo, dado que los test no se superan
  • Green. Realiza el código código posible para conseguir superar las pruebas, hasta ver la ejecución de la suite en verde
  • Refactor. Una vez superadas las pruebas, y teniendo la garantía que posibles incumplimientos de los requisitos van a ser detectados por la suite, itera y mejora el código 
En fin, animaros a probarlo, realmente es un recurso fantástico y gratuito. Creo que la siguiente formación será la de Standford - Machine Learning (una de mis debilidades intelectuales)

Aunque tengo la lista de libros llena, y me gustaría acabar cuanto antes Running Lean y Customer Development.

Un abrazo,