¿Existe una metodología llamada Programación Extrema?

Si visitamos la página de Extreme Programming vemos que hacer XP es combinar las siguientes prácticas:

  • Planning: user stories, release planning, small releases, project velocity, iterations, iteration planning, move people around, stand-up meetings
  • Designing: simplificity, system metaphor, CRCcards, spike solutions, no funcionality added early and refactor.
  • Testing: unit testing, acceptance test, etc.
  • Coding: integración continua y TDD.

Cualquiera de las metodologías ágiles puede cumplir la parte de planning, designing y testing. Es más, por seguir esos principios generales podrás decir que estás siguiendo una metodología ágil, pero nadie podrá adivinar cual exactamente. Como se explica en el artículo más completo que yo he leído sobre todas los métodos ágiles que hay, programación extrema sería una metodología más centrada en la solución técnica que en la gestión de proyectos. Por eso es tan fácil combinarla con metodologías más enfocadas a la gestión de proyectos como SCRUM.

Respecto a la parte de coding, tenemos dos técnicas: Test Driven Development (TDD) e Integración continua.  Recordemos que hacer TDD es escribir las pruebas unitarias ANTES de escribir las clases que prueban. O sea que si utilizamos un servidor de integración continua y hacemos pruebas unitarias DESPUES de escribir las clases, no estaremos haciendo Programación Extrema.

El propio Ken Beck, en su libro Extreme Programming Explained, afirma que no hay en su metodología ninguna práctica revolucionaria, que sólo es la combinación de una serie de prácticas y su seguimiento de “manera extrema” (muy estricta).

Me queda la sensación de que “Programación extrema” fue una manera de llamar originariamente que a día de hoy está obsoleta y que se ha dividido en :

  1. las “prácticas ágiles básicas” (iterativo, incremental, fortalecer la comunicación directa, pruebas unitarias, funcionales, etc.)
  2. integración contínua
  3. TDD

Si sigues los puntos 1 y 2, y haces pruebas unitarias después de escribir la clase, puedes estar siguiendo casi cualquier metodología ágil. Y si haces el punto 3, estarás haciendo Test Driven Development, que queda mucho más claro que decir “Programación extrema”.

¿Qué opináis vosotros? ¿Tiene cabida el término Programación Extrema?

Etiquetas:
, ,

3 Comentarios

  • 1. Jose Luis  |  junio 3rd, 2009 at 8:08 pm

    Creo que te olvidas de una de las técnicas que distinguen a la XP del resto de metodologías ágiles y es la programación por parejas.

    Sobre el término “Programación Extrema” se ha hablado mucho desde sus orígenes, y una cosa está clara: ha sido un gran acierto de márketing. Muchos directores de IT solicitaban XP sin tener ni idea de lo que ello significaba, pero la verdad es que era muy “cool” decir que hacías programación extrema (yo creo que debía funcionar hasta para ligar en las discotecas). Ahora en serio (o no) yo creo que algo realmente extremo es hacer programación por parejas con determinados programadores …

  • 2. Roberto Oliva  |  junio 9th, 2009 at 3:01 pm

    Más que programación extrema yo trataria de aplicar programación ágil a mis desarrollos. XP es un tipo de programación ágil (hay otros como Scrum, etc)
    A mi entender las tres patas del desarrollo ágil son:
    - TDD
    - Integración contínua
    - Pair programming
    Creo que todos los proyectos deberían basarse en estos tres principios ya que han probado mejorar la calidad del producto, facilidad de desarrollo y mantenibilidad, etc.
    Llevo varios años aplicando TDD a mis proyectos (las otras dos patas son mas dependientes del tipo de proyecto, por eso no siempre lo he aplicado) y no solo me ha ayudado a mejorar la calidad del producto, sino que a la larga me ha reducido el tiempo de desarrollo.

    Un saludo
    Roberto

  • 3. Jorge Ferrando  |  julio 3rd, 2009 at 11:06 am

    Hola Luis. Hoy averiguando sobre framewoks php he encontrado tu página y he de decir que ha despertado más aún mi curiosidad por ZendFramework y por PHP (para mi el mejor lenguaje para web de calle).

    Estoy en mi ultimo año de carrera de Ingeniero Superior y acabo de empezar como diseñador de interfaces web para dispositivos de control de rondas y posicionamiento gprs para una empresa llamada Vigilant.

    En esta empresa son todo ingenieros electronicos y no saben programacion web. Solo programan sobre micros y realizan aplicaciones de escritorio en Delphi.

    Pues bien, me he encontrado con una web muy parcheada y con ficheros que mezclan CSS,HTML,JavasCript y PHP. Es decir por cada pagina que ves en la web hay un fichero de tropecientas mil lineas, Mi misión: arreglarlo.

    Si ves la web: http://www.vigilant.es veras que tiene catalogo de productos, noticias, boletines… pero en la parte privada tiene funciones mas especificas como seguimiento en tiempo real de dispositivos GPRS.

    ¿Deberia implementar yo toda la web o usar un CMS? Mi duda viene por mostrar el GoogleMaps con la posicion del dispositivo GPS, no se como integrar eso dentro de Joomla o WordPress.

    Saludos y perdona por tanto rollo.

Comenta el articulo:

Requerido

Requerido,