Archivo de la categoría "Ágil"

Por qué usamos el framework Ruby on Rails

Wednesday, 7 de November de 2007

El pasado 6 de noviembre participé en una mesa redonda sobre frameworks en SIMO. Expertos en Drupal, Code Igniter, Zend Framework, .Net y Sun JSF expusieron su punto de vista sobre el estado del arte de los frameworks para desarrollo de aplicaciones web.

Yo por mi parte me encargué de explicar porqué hemos elegido Ruby on Rails como nuestra herramienta favorita para este tipo de proyectos. Podeis ver a continuación la explicación -más o menos fidedigna- que realicé en los 4 minutos de presentación que me correspondían.

Ruby on Rails es un framework para desarrollo de aplicaciones web escrito en el lenguaje de programación Ruby.

En ASPgems, donde todo el equipo tenemos experiencia en otros entornos sobre todo en proyectos grandes en el mundo corporativo, utilizamos Ruby on Rails porque nos permite desarrollar proyectos web de calidad en tiempos muy competitivos y usando metodologías de programación ágiles. Esto nos permite empezar a desarrollar un proyecto con un número mínimo de requisitos que sabemos que van a cambiar mucho durante la vida del proyecto, y que podemos aceptar cambios incluso en los días previos a la salida a producción sin que tengan un impacto significativo en la mayoría de los casos.

Encontramos varias ventajas en Rails sobre algunos otros frameworks. Por un lado, el lenguaje sobre el que se desarrolla, Ruby, es un lenguaje muy orientado a objetos, potente, y muy expresivo. Con pocas líneas de código puedo conseguir muchas cosas, con lo que la legibilidad del código es mayor y la probabilidad de errores se reduce.

Ruby on Rails, es un framework con opinión que se basa en el principio de “Convención sobre Configuración”, de forma que si yo utilizo las convenciones que el framework espera, Rails es capaz de hacer gran parte del trabajo por mí. En rails no hay que mantener ningún fichero XML para configuración de filtros, mapeos, validaciones o nada parecido. Además, al trabajar todo el mundo siguiendo las mismas convenciones, se puede incorporar gente a un proyecto en marcha o rotarla con un coste mínimo.

Otra gran ventaja de Rails, es la filosofía misma del framework. Rails está creado a partir de un proyecto real puesto en producción. Se desarrolló un proyecto web con Ruby siguiendo patrones de diseño estándar como MVC, Inversión de Control, Persistencia de Datos… y se vio que el proyecto funcionaba bien y que había varias partes reusables. Ese código reusable se extrajo para hacer un proyecto Open Source. Además, se le añadió un mecanismo de plugins para poder ampliar o modificar el comportamiento del framework de forma simple.

Como el código del framework es fácil de entender, y es sencillo crear un plugin, en seguida se consigue una comunidad de desarrolladores muy activa. Cuando un plugin se usa mucho dentro de la comunidad, se acaba incorporándo al núcleo del framework; y al contario, si una parte del framework no la usa casi nadie, se acaba sacando como plugin. Se puede seguir usando, pero no se mantiene dentro del framework, con lo que no se convierte en un framework monstruo donde cabe todo.

Debido a esto, tenemos un framework que está vivo y que se va modificando según los proyectos y las necesidades reales de la comunidad que lo usa en sus proyectos en producción.

El resultado es que, para una persona acostumbrada al desarrollo web, se puede desarrollar una aplicación completa con muy poco código. Te puedes centrar en la lógica de negocio y dejar muchos detalles de implementación al framework.

Esto choca con otros frameworks que están pensados en abstracto para cubrir cualquier caso posible, y acaban teniendo una arquitectura tan compleja que en muchos casos te da la impresión de que, más que desarrollar, estás luchando contra el framework.

Conferencia Rails Hispana 2007

Tuesday, 31 de July de 2007

Me acabo de dar cuenta de que no habíamos escrito en el blog sobre la conferencia rails de este año. Toda la información está en: Conferencia Rails Hispana 2007

El año pasado fue un “exitazo” de la comunidad, y nosotros estuvimos apoyando ese éxito. Este año repetimos.

Offshore programming vs. flexibildiad y experiencia.

Monday, 23 de July de 2007

Offshore programming es una forma elegante de llamarle al arbitraje salarial.
Se trata de encargar un trabajo de desarrollo de software allí donde los desarrolladores son más baratos y con el precio como criterio principal en la elección del proveedor.

Está práctica es muy frecuente sobre todo en USA y también en el Reino Unido. En España es una práctica que no ha tenido demasiado éxito hasta ahora quizás porque las diferencias de coste no eran tan grandes. En España el “offshore development” ha sido tradicionalmente sustituido por las empresas de “body shopping”, no mencionaré ninguna porque igual se ofenden ;-), que venden muy barato horas de programación sin tener muy en cuenta ni la experiencia ni la calidad de los programadores.

Con la subida salarial y la demanda de profesionales cualificados en España subiendo, algunas empresas se han acercado a esta modalidad de desarrollo contratando desarrollos fuera de España (países del este, India, Argentina, etc.)

Pues bien nosotros llevamos ya 3 clientes que se acercan a nosotros después de no haber tenido éxito con sus proyectos de “offshoring” con aplicaciones Rails. y yo creo que la razón fundamental es que en proyectos cortos, con especificaciones poco definidas, y en los que la capacidad de adaptación es imprescindible, las distancias se hacen enormes, y las diferencias horarias mas todavía.

En nuestros proyectos el uso de SCRUMgem nos hace competir con las compañías de “offshoring” en aquello que ellos no pueden hacer que es la proximidad con el cliente, la flexibilidad en los cambios, y la capacidad de negociación cara a cara con el cliente.

Además todo esto es posible cuando cuentas con un equipo de gente muy cualificada, que en la mayoría de los casos a anticipado los cambios que vas a pedir, y con una tecnología de desarrollo como Rails.

Mirubi.com La web que te paga por navegar.

Friday, 20 de July de 2007

Hoy se está lanzando MiRubi.com la web que te paga por navegar.

Es un proyecto que hemos desarrollado en ASPgems, es para nosotros un claro exponente de los principios y tecnologías de desarrollo de software que defendemos porque:

  • Está hecho con Ruby on Rails.
  • Ha sido un desarrollo ágil, y muy basado en SCRUMgem.
  • Es “menos es mas” ha sido una dura lucha en el diseño y la concepción para no poner todo lo que se nos ocurría.
  • El tiempo de desarrollo no ha sufrido desviaciones sobre el previsto.

Yo creo que es un claro ejemplo de las cosas que la tecnología hace hoy posible.

Mucha suerte para MiRubi.com.

Lo que le contamos a la gente que nos pregunta de que vamos.

Thursday, 28 de September de 2006

No están todos los que son y probablemente alguno está y no debería pero amén del discurso cara a cara, y que cada día tenemos mejor estructurado a los amigos que nos preguntan que hacemos yo les paso esta lista de links:

Algunas cosas que molan:

En España:

Y para ver Un video Web 2.0 y La paradoja de la elección dos videos sensacionales.

Como hoy ya van dos veces que lo mando, pues he decidio subirlo al blog.