|
¿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.
|