Sunday, 13 July 2014

Test no-oficial de Scrum

He creado estos días una pequeña aplicación web que permite al usuario probar los conocimientos que tiene sobre Scrum. Es un test similar al oficial de scrum.org y te permite, en español, poner a prueba tus conocimientos de Scrum.

Se trata de un test 10 preguntas aleatorias sobre este marco de trabajo y al final del mismo te indicará información sobre el número de respuestas correctas que has tenido y un enlace al test de prueba en inglés donde practicar antes de tomar el examen oficial para el certificado Professional Scrum Master I.

El test sirve como preparación para el examen PSM I y actualmente está disponible sólo para los lectores de mis 2 libros: Certificación Professional Scrum Master y Gestión práctica de proyectos con Scrum.

Información técnica:

El objetivo de hacer esta aplicación no era sólo hacer un test de Scrum útil al que esté pensando obtener la certificación, sino también como pet project para poner en práctica algo de Ruby on Rails y otras herramientas relacionadas. Les describo en los siguientes párrafos estas cuestiones más técnicas (pueden saltarse esta parte si les resulta aburrido):

La aplicación ha sido realizada con Ruby on Rails, un framework que promete una mejora de la productividad y del número de líneas de código sobre Java. Por otro lado, no ha sido desplegada en un Tomcat o JBoss sino en la 'nube' gracias a Heroku una de las primeras plataformas de computación en la nube. Para desplegar el código en Heroku bastaba con usar el comando git push para enviar el código fuente subido en mi cuenta de GitHub al repositorio remoto de Heroku.

La base de datos Postgres la facilitaba Heroku y, como no, también está en la nube. En esta base de datos no era necesario enviar scripts con sentencias SQL para crear las tablas y relaciones sino que Ruby on Rails deduce la estructura de tablas del modelo de clases de la aplicación y con él las crea. Si cambias un atributo de una clase, también cambiará el modelo de base de datos. Los registros con preguntas y respuestas iniciales no se crearon tampoco mediante sentencias SQL sino que en un único fichero se creaba cada registro con clases y objetos Ruby. Por ejemplo:

Question.delete_all
question = Question.create(:title => 'El Scrum Master es:', :value => 1, :order => 1)
question = Question.create(:title => 'Los equipos Scrum son:', :value => 1, :order => 2)


Si quieres aprender algo de Ruby on Rails, desplegar aplicaciones con Heroku y algunas cosas más sobre desarrollo Ágil y SaaS te recomiendo el libro 'Engineering Long-Lasting Software' de David Patterson y Armando Fox. Muy recomendable.