Ir al contenido principal

eXtreme Programming - Programacion extrema


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

Entradas populares de este blog

Pasion - Mision - Vocacion - Profesion

Donde la Pasion, Mision, Vocacion y Profesion se unen es el proposito de lo hacemos. Pasion: Entusiasmo que se pone en algo que se hace o se defiende. [Diccionario Manual de la Lengua Española Vox. © 2007 Larousse Editorial, S.L.] Vision: La Visión es la capacidad de ver más allá, en tiempo y espacio, y por encima de los demás, significa visualizar, ver con los ojos de la imaginación, en términos del resultado final que se pretende alcanzar. La Visión es el sueño alcanzable a largo plazo, el futuro aspirado. [http://www.gestiopolis.com/concepto-de-vision/] Vocacion: La vocación es aquella atracción por lo que deseamos hacer, nuestra inspiración, nuestros sueños y anhelos. La vocación es la forma en que nuestros valores y la formación como personas salen a la luz y son expresadas a través de la profesión elegida. La vocación también es considerada como un proceso que se desarrolla durante toda la vida, ya que se construye de forma permanente. Implica descubrir quién soy, cómo s...

Pensamiento Simplista o Sistemico

Pensamiento Simplista o Sistemico El tema de pensamiento sistemico implica mucho mas que una vision global de varios escenarios. En nuestro dia a dia el pensamiento simplista es el mas facil de encontrar, encontramos como respuesta un SI o NO ante preguntas que requieren una evaluacion y analisis mucho mas profundo. Estamos acostumbrados a ser sorprendidos por un error o incidencia e inmediatamente salir a solucionarlo, es decir, a combatir inmediatamente el incidente, y no el problema. Sin darnos cuenta que existe una relacion de incidentes asociados a un mismo problema. O lo que es peor, que resolviendo un incidente estamos dejando intacta la posibilidad de que ocurra nuevamente. Una incidencia (la punta del iceberg) siempre tiene un problema asociado con una causa raiz que lo origina (la parte sumergida del iceberg). Las causas de los problemas siempre estan ocultas debajo de la superficie, para encontrarlas y sacarlas a la superficie existen una serie de metodolog...

OUTSOURCING O INSOURCING

OUTSOURCING O INSOURCING Insourcing: Es delegar todo el trabajo a los empleados de una organización. Su proposito es mantener el control de las operaciones y procesos de la compañía. Algunos dicen que es la forma de aprovechar el talento desde adentro. Outsourcing: Es la asignacion de una porcion del negocio o actividades especificas para que sean realizadas por terceros. Esto le permite a la empresa enfocarse en sus procesos centrales de su negocio. DESVENTAJAS O BENEFICIOS En mi experiencia el adquirir los servicios de insourcing u outsourcing va a depender basicamente de el proceso en estudio, si es un proceso medular o en la linea del negocio directa no se recomienda que se haga a traves de outsourcing. Ese proceso debe mantener internamente con personal capacitado, constantemente formado para su desarrollo. Los siguientes factores influyen en la decision:     El insourcing le permite mayor rapidez para ejecutar las tareas. Ya que las persona...