Comentando eXtreme Programming (Programacion extrema)
Es una metodologia Agil
formulada por Kent Beck (firmante del manifiesto agil 2001), se
focaliza en la adaptabilidad del codigo. Un elemento distintivo es
que esta metodologia considera que los cambios son un ingrediente
natural y esperado (a diferencia de las metodologias tradicionales),
para los seguidores de esta metodologia los cambios en pleno proyecto
son deseables, son un reto a su corazon.
La capacidad de adaptarse
hoy en dia es un componente indispensable para llevar a cabo
desarrollo del software. Lo que el cliente pide hoy esta en evolucion
continua, y esta de lado del desarrollador escribir un codigo
sabiendo que a corto plazo debe cambiar, se va a adecuar a una nueva
funcionalidad, etc.
Son valores de un codigo
escrito bajo esta metodologia los siguientes:
- Comunicacion: transmitirle al desarrollador su esencia, debe transmitir lo que desea lograr, los nombres de variables, metodos y clases deben ser elegidos cuidadosamente para que transmitan su proposito directamente al desarrollador.
- Simplicidad: Para alcanzar este valor es necesaria la Refactorizacion del codigo. Esta tecnica es muy interesante ya que altera la estructura interna del codigo haciendolo mas facil de leer, comprensible y limpio sin cambiar su proposito. Por ejemplo, esta tecnica revisa cada variable y modifica su nombre por uno mejor, separa y descompone una funcion compleja en multiples funciones.
- Valentia: Los desarrolladores que apoyan esta metodologia saben que si deben volver a escribir el codigo lo hacen de nuevo con el proposito de implementar cambios a futuro facilmente.
- Respeto: el respeto por los miembros del equipo es fundamental, no se puede escribir codigo que reverse pruebas unitarias ya superadas.
- Retroalimentacion: Como estamos en metodologia agil, los ciclos son cortos, el cliente participa a diario y da sus comentarios constantemente sin esperar por un corte o fin de version.
Hay caracteristicas
distintivas esenciales en esta metodologia que colaboran para mejorar
el producto:
- Promueve el trabajo en parejas: Esta es una buena practica porque permite entre ambos discutir y acordar el codigo mientras se escribe, intercambiarse diariamente mientras uno escribe el otro comenta y va revisando.
- Desarrollo incremental: Ciclos pequeños, entregas constantes, evolucion del producto que se va incrementando. Y esto es fundamental porque el cliente va percibiendo su evolucion constantemente.
- Simplificacion: cuando algo es simple puede mejorarse exponencialmente de forma directa. Descomponer una tarea compleja en multiples tareas simples.
Como experiencia puedo comentar que en la refactorizacion del codigo un elemento esencial es la reutilizacion. Escribir codigo bien simple y claro que pueda ser reutilizado es una ventaja enorme en proyectos agiles, porque implementar nuevas funcionalidades se va a convertir en seleccionar metodos, funciones y organizarlas para obtener el nuevo proposito. Es como cuando te dan 3 recetas y sabes cuales son los ingredientes empacados que debes seleccionar para prepararlas. Si conoces los ingredientes empacados y sabes en que pasillo del mercado estan, solo los tomas, los usas y presentas tus platos.
Comentarios
Publicar un comentario
Ayudanos a generar Conocimiento