Mis experiencias con XP + Ruby On Rails en San Francisco, CA

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.

¿Y hay una vacante en tu empresa? Estoy dispuesto a cruzarme el charco

Yo me apunto también, lo mismo que la agencia donde trabajo y eso que es
Americana…

2006/10/31, Ruben Díaz [email protected]:

Gracias por contarnos tu experiencia, es muy valiosa para uno que esta
queriendo empezar en el mundo del desarrollo de software.

Saludos2.

Ruben, gracias por compartir tu experiencia. Debe ser genial laburar en
una
empresa con esas características. ¿Qué tipo de aplicaciones desarrollan
allí?

Hacía mucho que no leía algo tan interesante, algo tan esperanzador.
Ojalá
podamos llegar a eso por estos lugares (Argentina).

Saludos

Lucas

Ruben tienes Blog??

Si hay un vacante en tu empresa yo voy de una.

Saludos

Gaston R.

Quoting Ruben Díaz [email protected]:

del libro “Patterns of Enterprise Application Architecture”.
métodos de ataque y como prevenirlos, en las aplicaciones web y en
una realimentacion visual para el usuario sorprendente y para la
Antes de hacer el “commit” en el repositorio SVN, se corren todos los
vuelve de repente tedioso, damos una vuelta y salimos afuera a tomar
Saludos,
Ruben.


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


This message was sent using IMP, the Internet Messaging Program.

Hola a todos

lo que nuestro amigo Ruben nos esta contando no es ni mas ni menos que
la implementacion de una nueva forma de desarrollar proyectos que esta
ahora de moda el desarrollo Agil o Agile Development. Echadle un vistazo
a estas paginas:

donde se explica como funciona esto del Agile.

Tiene gran similitud el metodo que usan en la empresa de Ruben, que es
el de Extreme Programming, con el SCRUM, donde se usan stories, o
llamados mas genericamente timeboxes. E ideas del Unified
Process (RUP)

Ruben tengo varias preguntas:

  • al dar servicio a otras empresas me imagino que las empresas os dan
    documentos con especificaciones, que en realidad son el contrato, o la
    licitacion,
  • como capturais los requerimientos de los usuarios o de los clientes?
  • una vez el caso de uso completado (use case). Cuales son las
    siguientes fases: analisis? diseño? test? codigo? deployment, etc
  • que herramientas usais en las fases de analisis y diseño?
  • que diagramas producis en esas fases, Domain Model, Class diagram,
    Sequence diagram, etc…
  • con respecto al proyecto en si:
    . como estimais la duracion del proyecto?
    . como lo planificais, gestionais los riesgos, y los cambios
    (change management), asignais prioridades,

gracias

La empresa donde estoy haciendo el entrenamiento tiene las puertas
abiertas a quien quiera aprender a programar de la manera que ellos
hacen. Lastimosamente no hay paga. Si estan interesados pueden
contactar con Robert Mee ( rob arroba pivotalsf punto com )

El 1/11/06, [email protected][email protected]
escribió:> Si hay un vacante en tu empresa yo voy de una.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs