Si les gusta Java, se van a enamorar de Ruby on Rails.
Estoy haciendo una “Inmersión de Extreme Programming con Ruby on
Rails”, por tres semanas, de las cuales ya cumpli una.
La empresa en la que estoy haciendo la experiencia se llama Pivotal,
www.pivotalsf.com, situada en San Francisco, California. Esta en el
edificio histórico James Flood, en las calles Market y Powel, que
sobrevivio al terremoto de 1906. La empresa hace desarrollos en Java y
Ruby on Rails para “start-ups” y tiene como clientes, entre otros a
Google y Ebay.
El CEO de la empresa es Robert Mee, que es coautor con Martin F.
del libro “Patterns of Enterprise Application Architecture”.
Los desarrolladores de la empresa, como suelen ser los californianos,
son gente “cool”, aspecto social necesario para hacer “pair
programming” o programacion en pares.
Un día típico comienza con la reunión de pie en circulo (stand up
meeting), donde cada uno comenta brevemente a los demás sobre lo que
esta haciendo. Si es lunes, se pasa a la reunión de planeamiento
semanal. Una vez por semana tienen lo que ellos llaman “retrospective”
- retrospectiva, donde piden pizzas y/o cerveza y hacen presentaciones
de temas que sean de interes para los desarrolladores. La semana
pasada presentaron sobre la seguridad en las aplicaciones web, los
métodos de ataque y como prevenirlos, en las aplicaciones web y en
particular con Ruby on Rails.
Los casos de uso o requerimientos que guían el desarrollo se llaman
“histories” o historias.
El par de desarrolladores elige una historia de un proyecto y trabaja
en ella. Antes de escribir el código que implemente la historia, se
escriben las pruebas, ya sea de unidad, o funcionales. Las
herramientas que usan son sorprendentes, JsUnit, para JavaScript
(donde el “test runner” fue desarrollado por Pivotal -
http://www.jsunit.net/runner/testRunner.html); los test funcionales y
de aceptacion con Selenium (http://www.openqa.org/selenium/) que tiene
una realimentacion visual para el usuario sorprendente y para la
integracion continua usan CruiseControl
(http://cruisecontrol.sourceforge.net/), estas dos ultimas
desarrolladas mayormente por programadores de ThoughtWorks, la empresa
de Martin F… Usan el navegador Firefox con los pluggins Firebug,
XPather/XPath checker. Usan como IDE InteliJ IDEA, con un pluggin para
Ruby.
El hardware de desarrollo es heterogeneo: coexisten Macs, y PCs (con
Linux y Windows). Cada estacion de trabajo tiene dos monitores (en un
monitor esta el IDE, el otro muestra la UI), dos teclados y dos
ratones, especialmente para programacion en pares.
Antes de hacer el “commit” en el repositorio SVN, se corren todos los
tests y se verifica que ningun test falle. Luego de actualizar el
codigo en el repositorio, se procede a tomar la siguiente historia.
Las historias desarrolladas, si son aceptadas por el cliente, pasan a
formar parte de la siguiente liberación (release), que es semanal,
quincenal o según sea la duración de la
iteración.La comida y bebida no falta: hay una mesa con golosinas, chocolates,
cereales, snaks y un refrigerador con leche, frutas, quesos, jugos y
bebidas gaseosas. Tambien hay distintos tipos de te - incluso yerba
mate- lo cual es bueno para mi porque soy paraguayo y rioplatense -
Uno de los muchachos, casi todos los dias, trae dulces y pasteles que
cocina su esposa y otro, los viernes trae baguels. Si el trabajo se
vuelve de repente tedioso, damos una vuelta y salimos afuera a tomar
un cafe en Starbucks (disculpen la publicidad gratuita).
Al medio dia, el gran parte del grupo decide que ir a comer juntos,
generalmente a un restaurante etnico, ya sea comida china, hindu,
mexicana, japonesa, etc.
Me comentaron ahi que Larry Paige (cofundador y presidente de Google)
le pregunto a Rob Mee cual es el secreto que explique que los
desarrolladores de Pivotal sean tan productivos, ya que no conseguio
lo mismo reclutando los mejores “cerebros” que el dinero puede
comprar. La respuesta esta en, ademas del talento de la gente y las
herramientas, el método agil de desarrollo utilizado.
Saludos,
Ruben.