domingo, 29 de marzo de 2015

Metodos ágiles de programación

Introducción

Cuando se ésta por desarrollar un software conviene conocer adecuadamente las características del proyecto y los distintos tipos de metodologías existentes para el desarrollo. Es importante elegir la metodología más apropiada en base a las características, para garantizar un mejor resultado final.

Métodos Ágiles de Programación

El método tradicional de desarrollo es el más adecuado para proyectos grandes, en los cuales se hace un análisis profundo de requerimientos antes de comenzar a desarrollar el software. Pero cuando se trata de proyectos más pequeños, se pierde tiempo en un análisis exhaustivo, por lo cual se desarrollaron los métodos ágiles, los cuales, entre otras cosas, siguen los siguientes puntos:
  • Se permite el cambio en los requerimientos en cualquier momento del desarrollo.
  • El equipo de desarrollo y el cliente deben trabajar en conjunto.
  • Entrega continua de resultados.

Programación extrema

Propuesta por Kent Beck en 1999,  es el más destacado de los procesos ágiles de desarrollo de software. Se rige por los siguientes valores:

Simplicidad

Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Para mantener la simplicidad es necesaria la refactorización del código, ésta es la manera de mantener el código simple a medida que crece.
También se aplica la simplicidad en la documentación, de esta manera el código debe comentarse en su justa medida, intentando eso sí que el código esté autodocumentado.

Comunicación

El código comunica mejor cuanto más simple sea. Si el código es complejo hay que esforzarse para hacerlo inteligible. 
Las pruebas unitarias son otra forma de comunicación ya que describen el diseño de las clases y los métodos al mostrar ejemplos concretos de como utilizar su funcionalidad.

Realimentación

Al estar el cliente integrado en el proyecto, su opinión sobre el estado del proyecto se conoce en tiempo real.
Al realizarse ciclos muy cortos tras los cuales se muestran resultados, se minimiza el tener que rehacer partes que no cumplen con los requisitos y ayuda a los programadores a centrarse en lo que es más importante.

Coraje o valentía

Muchas de las prácticas implican valentía. Una de ellas es siempre diseñar y programar para hoy y no para mañana. La valentía le permite a los desarrolladores que se sientan cómodos con reconstruir su código cuando sea necesario. 

Respeto

El respeto se manifiesta de varias formas. Entre compañeros de trabajo, hacia el cliente y hacia el trabajo a realizar.

SCRUM

  • Está especialmente indicada para proyectos con un rápido cambio de requisitos
  • El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días
  • Reuniones a lo largo proyecto

Crystal Clear

Mas que una metodología, son una familia de estas, fueron descritas por Alistair Cockburn, e ideal para equipos de 6 a 8 personas, se centra en las personas, no en los procesos, y la seguridad es una de sus mayores preocupaciones

Cuestionario


Mapa conceptual


Conclusión

Si bien los métodos ágiles nos permiten desarrollar de una manera más rápida y son ajustables al cambio, es importante recordar que solo son adecuados en proyectos pequeños. Si en algún momento deseamos comenzar un proyecto grande, es importante el análisis a profundidad de los requerimientos.