¿Qué hay de nuevo, viejo? (again)
17 septiembre, 2013
Despliegue de Office Web Apps
30 septiembre, 2013

En este nuevo post del Blog de Kabel, Efrén nos hablará sobre distintas metodologías que se aplican en proyectos de desarrollo de Software.

A la hora de enfocar el desarrollo software una de las primeras y principales cuestiones a resolver es la metodología o marco de trabajo a utilizar para la gestión y desarrollo del mismo.

En estas líneas se va a tratar de plantear una reflexión para toda aquella persona que tiene que enfrentarse a este problema, sobre todo por primera vez, no tratando de fijar una ley definitiva y fundamental que resolverá todo nuestra problemática referente a este tema, sino planteando una reflexión desde el punto de vista de lo prescriptiva (“más reglas a seguir”) o  adaptativa (“menos reglas a seguir”) que algunas de las herramientas de proceso más comúnmente utilizadas en las últimas décadas son. La herramienta fundamental para alcanzar nuestro objetivo será: “el sentido común”.

Comenzaremos por tanto hablando de aquellas herramientas más prescriptivas. Es el turno de hablar de RUP.

RUP  es muy restrictivo. Esta herramienta o marco fue desarrollado por la empresa “Rational Software”, actualmente propiedad de IBM. Para hacerse una idea de su ‘restrictividad’, se mencionan algunos datos que caracterizan al mismo: tiene más de 30 perfiles, más de 20 actividades, y más de 70 artefactos. En realidad no se espera que sean utilizados todos y cada uno de ellos, si no que en función de las necesidades sea seleccionado el subconjunto más adecuado para el proyecto en cuestión. Esto en la práctica supone una gran cantidad de “cosas que aprender”, que llevan a preguntarse por la necesidad de artefactos, actividades o perfiles en determinados momentos del desarrollo, para realizar una correcta aplicación de la metodología. Esta es una de las razones por las que las implementaciones RUP suelen ser bastante ‘pesadas’.

XP (eXtreme Programming) es menos restrictivo que RUP. Se incluyen la mayoría de las prácticas de Scrum (del cual hablaremos en las próximas líneas) más un conjunto de buenas prácticas específicas de Ingeniería, tales como desarrollo dirigido por pruebas, refactorización del código y la programación en parejas.

Una vez descritos con ‘pinceladas generalistas’ tanto RUP como XP, centrándonos en el argumento de la ‘restrictividad’ de los mismos, se comentarán dos marcos de trabajos, encuadrados dentro de lo que se conoce como: “Metodologías Ágiles”.

Se comienza hablando en primer lugar de: Scrum. Éste es el utilizado por nuestra empresa, Kabel, para la mayoría de los desarrollos planteados, ya que es el marco de trabajo que mejor se adapta a los proyectos que se gestionan y desarrollan a día de hoy en la misma. Es menos restrictivo que XP, ya que no establece ninguna práctica específica de Ingeniería. Sin embargo, Scrum es más restrictivo que Kanban porque respecto a éste último, prescribe cosas como iteraciones y equipos interdisciplinarios, que en Kanban no son especificados.

Una de las diferencias más palpables, sin sumergirse en el terreno técnico entre Scrum y RUP, es que en RUP ‘se tiene demasiado’, y se supone que se quitará aquello que no se necesite. En Scrum ‘se tiene demasiado poco’, y se supone que se añadirá el material que falta.

Kanban deja casi todo abierto. Las únicas normas son: Visualiza tu Flujo de trabajo y Limita tu WIP (Work In Progress, Trabajo en curso). Esto queda cerca de lo que coloquialmente podríamos denominar: ‘haz lo que sea’, pero aún así sigue siendo sorprendentemente poderoso.

Una vez mencionado lo anterior, mi principal consejo sería el siguiente: “No debemos limitarnos a una única herramienta, y menos guiarnos por la ‘moda’ del momento. Se deben mezclar y combinar las diferentes herramientas o marcos, tratando de alcanzar nuestro principal objetivo: el desarrollo de un software de calidad:

  • Correcto: ausente de errores.
  • Consistente: coherente entre las operaciones que realiza el usuario.
  • Completo: realiza todas las operaciones que el usuario puede requerir”.

Existen muchos casos en los que equipos de desarrollo Scrum incluyen en el desarrollo la mayoría de “buenas prácticas de XP” o incluso algunos equipos Scrum escriben algunos de sus elementos de la pila como Casos de Uso (una práctica de RUP) o limitan el tamaño de las colas (una práctica de Kanban).

En definitiva: “Usa lo que sea que funcione para ti”.

Compártelo: Share on FacebookTweet about this on TwitterShare on LinkedInPin on Pinterest

Comments are closed.

NEWSLETTER