En el post sobre la conferencia anterior de la RTE escribí:

También nombró otro libro que se puede bajar de internet, pero ahora no nos pudimos acordar del nombre, se trataba de programación ágil. Cuando publiquen las presentaciones, lo comento.

Me refería a una de las referencias que se mencionaron en la charla de Refactoring sobre programación ágil. Acá está la info:

Essential Skills for Agile Development

Essential Skills for Agile Development

Tong Ka Iok, Kent
www.agileskills.org
Libro : Essential Skills for Agile Development.

El concepto de Desarrollo ágil de Software según Wikipedia en inglés:

Desarrollo ágil de Software es un framework conceptual para emprender proyectos de ingeniería de software que abraza y promociona el cambio evolutivo a lo largo de todo el ciclo de vida del proyecto.

Hay varios métodos de desarrollo ágil, la mayoría intentan minimizar el riesgo desarrollando software en períodos de tiempo cortos, llamados iteraciones, las cuales duran típicamente de 1 a 4 semanas. Cada iteración es como un proyecto de software miniatura en sí mismo, e incluye todas las tareas necesarios para lanzar el mini-incremento de nueva funcionalidad: planificación, análisis de requerimientos, diseño, código, testing, y la documentación.

Mientras una iteración no puede agregar suficiente funcionalidad para garantizar el lanzamiento del producto, un proyecto de software ágil tiene la intención de ser capaz de lanzar software nuevo al finalizar cada iteración. En muchos casos, el software es lanzado al final de cada iteración. Ésto es particularmente cierto cuando el software es basado en web y puede ser lanzado fácilmente. A pesar de todo, al final de cada iteración, el equipo re-evalúa las prioridades del proyecto.

Los métodos ágiles se enfatizan en comunicación en tiempo real, preferiblemente cara-a-cara, sobre documentación escrita. La mayoría de los equipos ágiles se encuentran en un lugar e incluyen a todas las personas necesarias para finalizar el software. Como mínimo, ésto incluye programadores y sus "clientes" (los clientes son quienes definen el producto; pueden ser gerentes de producto, analistas de negocio, o clientes en sí). El lugar también puede incluir testers, diseñadores de interacción, escritores técnicos y gerentes.

Los métodos ágiles también enfatizan en software funcional como la medida primaria de progreso. Combinado con la comunicación preferida cara-a-cara, los métodos ágiles producen muy poca documentación escrita en relación a otros métodos. Ésto ha resultado en críticas a los métodos ágiles, como métodos indisciplinados.

Manifesto para el Desarrollo ágil: http://agilemanifesto.org/

En el libro pueden encontrar mucho código, MUCHO código de ejemplo y ejercicios. Es un libro bien práctico, pero hay que saber Java para entenderlo. Otros requerimientos del libro: conocimientos de SQL, HTML y también ayuda algo de Swing (justo!) y Servlet.

Trae un montón de ejercicios y técnicas, para ir programando y aprendiendo en el camino. Se puede bajar gratis desde el sitio: http://www.agileskills.org/download.html.en

Está en formato PDF y pesa 2.2 MB. El primer link aparentemente no funciona, pero el mirror sí.
También se pueden bajar capítulos para ir leyendo de a poco (está escrito para ser leído secuencialmente), pero el PDF está protegido contra impresión... (nada de cosas raras eh!).

Son nada más y nada menos que 427 páginas, así que hay para rato. Por lo poco que vi hasta ahora, ya desde el primer capítulo se ve de qué viene la mano. Te da un código para que leas, te propone un cambio para el código para que implementes algo nuevo, y te muestra el código cambiado, y el método utilizado de forma "chancha". Te corrige lo que está mal (refactorea), te explica porqué y qué podés hacer para remediarlo, y algunas referencias para saber más del tema. Después trae 11 ejercicios prácticos para aplicar lo que te acaba de enseñar, algunas pistas, y las soluciones. ¿Qué más didáctico puede ser?
Éste libro pasa derecho a la biblioteca...

A simple vista veo que trata el tema refactoring, tests unitarios, herencia, y seguramente la mayoría de técnicas "correctas" para programar orientado a objetos.

Sobre el autor
Tong Ka Iok (kent arroba cpttm punto org punto mo), también conocido como Kent, tiene una maestría en Ciencias de la Computación de la New South Wales University de Sidney, Australia. Fue el ganador de la competencia "Macao Programming Competition (Open Category)" en 1992. Ha estado involucrado profesionalmente con el desarrollo de software, entrenamiento y gerencia de proyecto desde 1993. Desde 2002 ha estado promocionando activamente el Desarrollo ágil en Macao.

4 comentarios en este post

Feed de comentarios
  1. Cómo empecé con Scrum | Aplicando Scrum | 8 junio. 2009 - 21:58

    […] Mi primer contacto con la programación ágil fue en una conferencia de lo que en algún momento fue la “Red Tecnológica del Este”, un grupo de usuarios que se juntaba una vez por mes en conferencias técnicas sobre programación. En una charla sobre refactoring, mencionaron el libro Essential Skills for Agile Development de Tong Ka Iok. Teniendo el título del libro, lo descargué (gratis desde su sitio web), e investigué un poco aprendiendo lo que era el desarrollo ágil, el manifiesto ágil, y de qué venía la cosa en general. Comenté sobre el libro en Picando Código: Técnicas esenciales para el Desarrollo Ágil de Software […]

Dejar un comentario

Toasty!