| Valores y Principios |
|
|
|
| Miércoles, 19 de Marzo de 2008 07:40 | |
|
La Programación Extrema busca una forma de trabajo sostenible a largo plazo. Es decir, una forma de trabajo en la que los programadores no se quemen y en la que los proyectos no se vuelvan inmanejables por su complejidad. ¿Suele pasar esto? Lo cierto es que sí. A medida que los sistemas sobreviven en el tiempo, su mantenimiento los hace cada vez más complejos: se ponen parches para corregir errores, se deja de lado su documentación, se añade funcionalidad con arquitecturas de diseño diferentes... Y al final sólo unos pocos programadores, a veces solo uno, son capaces de meter mano al código. Eso hace que se quemen, todos los días trabajando en el mismo código antiguo, mal estructurado, con tiempo sólo para poner parches, sin poder hacer un trabajo de calidad... ¿Quién no se quemaría? Para evitar estos problemas del largo plazo, la Programación Extrema enuncia cinco Valores. ValoresEstos Valores se reflejan en la elección de las técnicas y la forma de aplicarlas. Son:
ComunicaciónMuchos de los problemas en un proyecto están causados por fallos de comunicación. Alguien no le dice a otro algo que éste necesita saber o alguien no es capaz de hacer la pregunta correcta para conseguir la información que necesita. La comunicación no se puede normalizar. No puedes imponer un procedimiento en el que el jefe de proyecto deba comunicarse con sus programadores 20 minutos al día. La Programación Extrema busca técnicas que fomentan una comunicación informal, pero intensa sincera y constante. Así, la técnica de Programación en Parejas fomenta la comunicación entre programadores, el Juego de Planificación pone en contacto a usuarios y programadores y la técnica de Cliente In Situ lleva la comunicación hasta el extremo de trabajar codo con codo diariamente. SencillezNo hay duda, puedes programar cualquiera parte del código, ya sea una pantalla de datos o una simple función de ordenación en un tiempo infinito. Siempre habrá algo más que añadir, que perfeccionar, que parametrizar... La Programación Extrema evita estos excesos de código con una regla sencilla: ¿Qué es lo más sencillo que puede funcionar? Se busca que los programadores se centren únicamente en lo requerido para completar el ciclo, y no en lo que puede necesitarse en un futuro. Nunca se programan cosas para mañana, porque siempre es posible que un cambio en los requerimientos o en la tecnología las haga innecesarias. Una de las técnicas más utilizadas para fomentar la sencillez es YAGNI (You Ain't Gonna Need It - No lo vas a necesitar). FeedbackEl feedback (o realimentación) nos indica si un trabajo está bien hecho. La Programación Extrema busca técnicas para tener feedback rápido y frecuente, para saber si algo está bien o mal hecho nada más terminarlo. Por ejemplo, la técnica de DDT (Desarrollo Dirigido por Tests) permite a los programadores saber si han hecho bien el código nada más terminarlo. El Juego de Planificación permite saber inmediatamente a los usuarios si las historias que han definido son claras. Y la entrega frecuente de pequeñas versiones permite a los usuarios y programadores conocer el avance del proyecto. El feedback rápido y frecuente ayuda a mantener el proyecto en el rumbo correcto. ValentíaSi queremos un código sencillo tendremos que tirar código. Constantemente tendremos que tirar las partes que se quedan complejas y rehacerlas, las partes menos claras deberán ser sustituidas y lo que no funcione fácilmente, reprogramado. En ocasiones, alguien tendrá una idea para simplificar el código. Pero puede que para aplicarla haya que rehacer el 80% del código... O puede que hayas estado todo el día programando y te hayas atascado con lo que el código que hayas hecho será una bazofia... Sabes lo que tienes que hacer; tienes que tirarlo y rehacerlo. Tirar el 80% del código en un proyecto que está al 80% de ejecución y que marcha mal de tiempo parece una locura. Pero si es una forma de simplificar el sistema ¡debes hacerlo! La Programación Extrema no sólo fomenta estas actitudes extremas, sino que aporta técnicas como la Refactorización para hacer que sean posibles. RespetoEl quinto valor de la Programación Extrema se añadió posteriormente para corregir algunas lagunas. No es posible trabajar bien con quien no respetas ni te respeta. Un programador debe respetar los tests de los otros programadores, puede corregirlos, puede mejorarlos, pero no debe ni ignorarlos ni machacarlos. Lo mismo ocurre con el código. La Programación Extrema propone la técnica de Compartición de Código, pero eso no significa que puedas destrozar el código de un compañero, puedes y debes simplificarlo, mejorarlo, pero respeta su forma de expresión, sus ideas. Lo mismo ocurre entre programadores y usuarios. Para que el proyecto vaya bien deben respetarse las opiniones de unos y otros. Los programadores no pueden ignorar ni degradar las opiniones de los usuarios respecto a su negocio. Ni estos pueden ignorar ni degradar las opiniones o estimaciones técnicas de los programadores. Todos los principios se apoyan entre sí. No se consigue la sencillez sin valentía, no pueden tomarse acciones valientes que son necesarias sin un buen feedback que nos garantice que vamos por el camino correcto y no podemos tener buen feedback si no hay buena comunicación. Y nada de esto es posible si no hay respeto entre todos los participantes. PrincipiosLos valores son demasiado genéricos para utilizarlos de guía en la elección de técnicas. Para concretarlos un poco más, la Programación Extrema define los Principios. Hay 5 principios básicos: Realimentación RápidaElegiremos las técnicas que más reduzcan el tiempo entre una acción y su medida. Al reducir este tiempo, se mejora el aprendizaje. Asumir la SencillezTrataremos todos los problemas como si tuvieran una solución ridículamente sencilla. Es cuestión de buscarla. Cambio IncrementalNada de grandes cambios, no funcionan. Las grandes mejoras se consiguen con pequeños cambios consecutivos. Aceptar el CambioElegiremos la estrategia que mantenga vivas más opciones durante más tiempo. No hay que cerrarse puertas innecesariamente. Trabajar con CalidadTodo el mundo tiene derecho a hacer un trabajo de calidad. Todos haremos un trabajo excelente, y para eso necesitamos tiempo y recursos. Nada de chapuzas rápidas, parches y soluciones para salir al paso. Estos son los principios fundamentales, pero hay otros... Más PrincipiosEstos principios ayudan a tomar decisiones en casos específicos:
|
|
| Actualizado ( Miércoles, 02 de Abril de 2008 13:05 ) |
Apoyo a la Cultura Libre: Si eres legal ¡¡COMPARTE!!