Log in
Knowledge base
  Inicio > Empresa > X Programming
Programación extrema

¿Por qué una empresa como DEISTER SOFTWARE es líder en tecnología y en desarrollo de software para el entorno empresarial?

La solución se encuentra en la propia organización de la compañía y en un modelo avanzado de diseño, desarrollo e implantación de las aplicaciones denominado: Programación extrema.

¿Qué es la programación extrema?

El modelo de programación extrema es una metodología en el desarrollo de software basada en los principios de simplicidad, comunicación, feedback y valor añadido. Su funcionamiento trata de que todo el equipo de desarrollo se una alrededor de tareas sencillas y con suficiente feedback para permitir al equipo de desarrollo conocer en que estadio de desarrollo se encuentra.

Las directivas en las que se basa el modelo de programación extrema son:

  • Equipo de desarrollo compacto: En el modelo XP cada programador forma parte integrante del "equipo de desarrollo".
  • Planificación, entregas rápidas y verificación de los usuarios: Se utilizan mecanismos simples de planificación para decidir que es lo siguiente a desarrollar. Centrados en que el resultado a obtener beneficie al cliente, el equipo produce nuevas aplicaciones en versiones constantes, integradas y verificadas por el propio cliente y el equipo de desarrollo.
  • Diseño simple y mejora continua: Los programadores trabajan de forma conjunta con un diseño simple y con la obsesión de verificar todo el código que se produce.
  • Integración, propiedad colectiva y codificación estándar: El equipo de desarrollo mantiene las aplicaciones en funcionamiento constantemente. Las funcionalidades se codifican y se integran inmediatamente en la aplicación, verificando que cumplen todos los tests de calidad.

Mejora constante de los diseños

La programación extrema se centra en ofrecer valor añadido en cada iteración. Para conseguir este objetivo a lo largo de todo el proceso, el software debe haber sido diseñado correctamente. La alternativa es ralentizar el proceso de desarrollo hasta paralizarlo. Por ello, el modelo de programación extrema (XP) utiliza un proceso de mejora continua del diseño de las aplicaciones denominado "Refactoring".

El proceso de "refactoring" se centra en la eliminación de duplicidades (un signo de un diseño deficiente), y en aumentar la "cohesión" del código, al tiempo que se reducen las dependencias. La cohesión del código y la baja dependencia son dos factores reconocidos como señas de identidad del software bien hecho. El resultado es que los equipos de programación extrema de DEISTER SOFTWARE comienzan con un diseño bueno y simple y siempre mantienen estos parámetros para su software: diseño bueno y simple. Esto permite mantener una alta velocidad de desarrollo y en general reduce el tiempo en que puede liberarse cada proyecto.

El "refactoring" está fuertemente soportado por un proceso de verificación para asegurar que nada deja de funcionar a la vez que evoluciona el diseño de las aplicaciones. Por ello, las verificaciones tanto de los usuarios como de los programadores se convierten en un factor decisivo en este modelo de desarrollo.

Desarrollo colectivo

En los proyectos de desarrollo de DEISTER SOFTWARE, cada programador puede mejorar cualquier bloque de código en cualquier momento. Esto significa que todos los programas obtienen las mejoras generadas por muchos programadores, lo cual incrementa la calidad del software y reduce sus defectos. Este modelo de programación también permite obtener otro beneficio importante: cuando el código es propiedad de un determinado programador, las mejoras a realizar se suelen implementar de forma poco eficiente ya que cada programador vela solamente por la parte de código de la que es propietario. Este modelo es poco eficiente y genera código difícil de mantener y que normalmente está repleto de duplicidades.

El desarrollo colectivo puede ser un problema si los programadores modifican código que no entienden. Las practicas de programación extrema resuelven estos problemas mediante dos técnicas principales: las verificaciones del programador permiten atrapar los errores y la interacción con otros programadores expertos en el módulo asegura que se hace lo adecuado, además de repartir el conocimiento sobre el área a todos los integrantes del equipo.

Estandarización

El equipo de desarrollo de DEISTER SOFTWARE sigue unas reglas de codificación comunes, de forma que todo el código del sistema parece como si hubiera sido escrito por la misma persona. Las especificaciones del sistema de codificación no son importantes, lo realmente importante es que todo el código fuente parece familiar facilitando el desarrollo colectivo.

Visión global

El equipo de desarrollo de DEISTER SOFTWARE mantiene una visión común de como los programas deben funcionar, es lo que denominamos "visión global". De esta forma se utilizan sistemas comunes para definir las nomenclaturas y asegurar que cualquiera puede entender como funciona el sistema y donde se debe mirar para encontrar el código correspondiente a una determinada funcionalidad.