Desarrollo ágil

Nuestro proceso de desarrollo se basa en el concepto del desarrollo ágil. Lo que nos proponemos es desarrollar software de la forma más eficiente posible, basado en las premisas del manifiesto para el desarrollo ágil de software:

  • Dar más prioridad a los individuos y las relaciones sobre los procesos y las herramientas.
  • Dar más importancia al software que funciona que a la documentación.
  • Dedicar más tiempo a colaborar con el cliente que a negociar contratos.
  • Dar más importancia a la respuesta a los cambios que a la elaboración de planes.

Es decir, el proceso de desarrollo que utilizamos se aleja del paradigma clásico de la ingeniería del software: “Recogida de requisitos – Especificación – Desarrollo – Validación”, que consideramos no responde a las características que hacen del desarrollo de software algo distinto.

El modelo de desarrollo clásico desaprovecha la característica principal del software:  no tiene realidad física, no es más que texto, al fin y al cabo. Cuando pensamos en los proyectos de las ingenierías ‘nobles’, en los que se construyen cosas físicas, para todos resulta natural pensar que una vez terminada cualquier parte del proyecto, hacer cualquier cambio resulta caro y dificil. Por decirlo brevemente, al desarrollo clásico de software no le gusta en absoluto que haya cambios en la especificación.

Un ejemplo fácil: si pedimos que nos construyan una casa, y una vez terminada, nos damos cuenta de que queríamos el suelo de otro material, todos somos conscientes de que esa modificación es, o bien imposible, o tremendamente cara. Cuando pensamos en software, este problema es mucho menor. Si el software está bien diseñado, la cantidad de trabajo necesaria para adaptar el software a la necesidades del cliente es mucho menor.

Hay muchas metodologías de desarrollo ágil actualmente… la que utilizamos nosotros es una mezcla entre la eXtreme programming y el Lean and Kanban, con nuestros propios ajustes. En general, creemos en utilizar las herramientas que mejor se apliquen a cada proyecto concreto… dependiendo de las necesidades y las costumbres de los clientes, adaptamos nuestro proceso de desarrollo.