Desarrolladores Rails ¿un modelo mental diferente?

Estándar

Después de casi dos años integrado en un equipo que desarrolla aplicaciones en rails y tras la charla que dí este año en la Conferencia Rails 09, he reflexionado sobre si los desarrolladores rails pueden aportar un mayor valor a la hora de definir, desarrollar y ejecutar un proyecto web en comparación con un equipo de profesionales que desarrolle en otra tecnología. Recordamos que Rails es un framework de código abierto para Ruby que sirve para desarrollar aplicaciones web. A continuación comparto mi opinión sobre el tema basada en la experiencia vivida en ASpgems, una empresa que desarrolla soluciones ágiles utilizando fundamentalmente Ruby on Rails.

En mi opinión un equipo de profesionales que trabaja en rails aporta un mayor valor por que dicha tecnología tiene una serie de características que se alinean, y a la vez potencian, una determinado modelo mental, refiriéndome a una forma determinada de trabajar, una filosofía, o una forma de plantear y ejecutar un proyecto ante un cliente.

Edad de la tecnología. Rails es todavía joven, y aunque dentro de poco llamará a las puertas del mundo viejuno, si me parece una característica relevante. Un desarrollador que ha decidido sumergirse en Rails es una persona tecnologicamente activa, busca la plataforma que más valor le aporta en un determinado momento, independientemente de si se trata de una tecnología madura o existen grandes oportunidades laborales detrás. Además, al tratarse de una tecnología reciente, exige una atención especial a la evolución de la misma, una mayor nivel de actualización, un seguimiento de las posibilidades que va ofreciendo dicha tecnología así como las aportaciones que van incorporando la comunidad…todo ello nos obliga a salirnos en mayor medida de nuestra zona de confort.

Mercado y necesidades cambiantes. Nos gusta lo dinámico, sabemos que el mercado es cambiante y que el cliente no sabe lo que quiere, y por eso Rails encaja con nosotros. Aceptamos a priori la existencia de cambios y la modificación continua de requerimientos en un proyecto, tenemos interiorizado el prueba y error, escuchamos y nos ajustarnos a lo que piden los usuarios…Esta capacidad de aceptar y gestionar correctamente el cambio supone un punto de diferenciación relevante, más aún cuando estamos viviendo cambios muy importantes con la web 2.0 que afectan desde la mejora de un proceso concreto de la organización hasta el modelo de negocio en sí.

Getting Real. No creemos en la definición y desarrollo de miles de funcionalidades, nos gusta ver algo online rápido, algo que funcione, aunque no sea perfecto, ya habrá tiempo de mejorarlo con los usuarios. Somos amigos del “hazlo realidad“, de poner las cosas online rápido, algo sencillo que contenga el “core” del proyecto y testar si aporta valor o no, de interactuar con los usuarios, aprender de ellos, dejarles claro la web es suya, no nuestra, y adaptarnos a las necesidades que nos vamos trasladando.

Entornos Web. Internet esta cambiando mucho y muy rápido en estos años, parece que la web 2.0 todavía esta en su primera fase pero ya hemos visto como surgen nuevos modelos de negocio e iniciativas que aportan valor en esta nueva Era de la Colaboración. Tenemos interiorizado que las aplicaciones no son nuestras, son de nuestros usuarios, y por ellos lo importante el mantenerse abierto y predipuesto al cambio. El hecho de encontrarnos en un mercado tan cambiante y dinámico, y donde los requirimientos son dictados por los usuarios y no por el departamento de marketing también influye a construir un modelo de trabajo específico.

La naturaleza de la tecnología. Con Rails se pueden desarrollar aplicaciones web más deprisa de lo que se haría con, por ejemplo, un framework típico en Java , y sin sacrificar la calidad de la aplicación oiga! Se escriben menos líneas de código para implementar la aplicación, y si el código es pequeño quiere decir que el desarrollo es más rápido, más fácil de entender, mantener y mejorar. Una forma de desarrollar que va de la mano del “menos es más” y la modificación constante de la aplicación.

7 comentarios en “Desarrolladores Rails ¿un modelo mental diferente?

  1. tapia

    Hola, Dani. Igual te suena mi cara🙂 Por fin me he animado a comentar en tu blog.

    He leído éste artículo, y no puedo evitar comentarlo. Después de unos cuantos años programando, creo que caes en una serie de tópicos que suelen ser negativos de cara al desarrollo (aunque entiendo que es inevitable).

    El fundamental es la idolatría a las metodologías ágiles. Es evidente de que de cara a la dirección de equipos, SCRUM, XP y compañía son muy tentadores. Rapidez de desarrollo, versiones funcionales prácticamente cada semana, incorporación de funcionalidad casi en tiempo real… suena maravilloso. Salvo que no es cierto. Al menos, no del todo.

    Las metodologías ágiles tienen un problema fundamental, tratado muy de pasada en casi toda la documentación que he visto sobre el tema. Y es que, con el tiempo, la calidad del código cae en picado, porque se da prácticamente de lado el diseño a largo plazo. Si a la hora de diseñar una aplicación tenemos que pensar en plazos de entrega semanales y en que la aplicación tiene que ser funcional prácticamente desde el primer día, es inevitable que se piense a corto plazo. Y eso da muchos problemas, de los que se habla muy poco.

    Para hacer una aplicación pequeña de 8 o 10 mil líneas de código, desarrollada en 5 o 6 meses es perfecto, porque no es necesario pensar tanto en el “y si más tarde queremos…”. Las nuevas funcionalidades que se van metiendo no suelen ser muy radicales, y no supone variar demasiado la arquitectura de la aplicación.

    Pero cuando te vas a otro tipo de software la cosa deja de ser tan agradable, en mi opinión. En mi experiencia, SCRUM tiende a que, pasados los primeros 6 u 8 meses, en cada sprint suele ser necesario reescribir más y más código escrito en su momento para salir del paso y acabar la funcionalidad exigida en el sprint. Y no es algo que me haya pasado a mí sólo, que entonces hablaría más en mi contra que en contra de SCRUM, sino que lo he visto sistemáticamente en los equipos que lo usan para desarrollos de más de 12 meses.

    Con ésto no estoy diciendo que no me gusten las metodologías ágiles. En mi empresa las usamos, y tienen muchísimas ventajas, soy el primero en admitirlas. Pero, como casi siempre cuando hablamos de tecnología, no sirve para todo.

    Desde luego, prefiero los problemas que genere SCRUM a los que genera la sobrearquitectura de java, .NET y compañía. Pero hay que ser consciente de que aún existen problemas que hay que solucionar.

    En fin, ya hablaremos más despacio de todo ésto con una cerveza de por medio, que es la forma académica de hacerlo😉

  2. Gracias Cesar por animarte a participar y comentar la jugada🙂 Estoy de acuerdo en que la metodologías ágiles no son 100% perfectas, en ASPgems utilizamos algo que hemos llamado SCRUMgem, una transformada de SCRUM, metodología ágil pero sin ser 100% SCRUM. Tengo pendiente hacerme un post sobre metodología ágil pero primero quiero hacerme un poco de research y profundizar🙂 También me parece relevante que la metodología ágil no siempre se puede aplicar, por ejemplo por el tipo de proyecto o porque el cliente simplemente no acompaña.
    Esa cervecita…cuando quieras!!

  3. Creo que el post es en su mayoría acertado. Creo que es cierto que un desarrollo ágil no siempre es posible, sobre todo para proyectos muy grandes y más aún, como dices tú, Dani, cuando el cliente no acompaña. Sin embargo, para proyectos de tamaño pequeño – mediano, creo que sí ayuda, sobre todo en la reducción de costes, que entiendo es un factor importante a la hora de vender un proyecto. Aunque como casi siempre, puedo estar equivocado.

    Acerca del tema del post, mi breve experiencia en el mundo rails, me hace intuir que es cierto lo que dices… aunque esperaré unos cuantos meses más para darte la razón del todo😉

    Un abrazo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s