Jorge Gamba bio photo

Jorge Gamba

Consultor en Arquitectura y Desarrollo de Software. Colaborador de la comunidad http://ALT.NET Hispano. Agile, Extreme Programming, BDD.

Email Twitter Facebook Google+ LinkedIn Github

El pasado sábado 30 de Junio de 2012 tuve el honor de hablar un poco acerca de Behavior-Driven Development (BDD) en la arena de Campus Party Colombia. Quiero agradecer a los organizadores del evento para Colombia, Futura Networks (propietarios de los derechos del material que comparto en esta publicación) y en especial al coordinador para el área de desarrollo de software @luisuribe, por haber considerado valioso mi aporte a la comunidad y brindarme esta oportunidad para compartir mi conocimiento.

BDD es el eje central de la mayoría de mis presentaciones, es un tema que realmente me apasiona debido a su gran utilidad y alcance en casi todo el proceso de desarrollo de software. Sin embargo, siempre trato de darle un enfoque distinto cada vez, en esta ocasión me centré en cómo BDD maneja los problemas de comunicación, para la especificación correcta de requerimientos, que existen entre clientes y equipos de desarrollo en un proyecto. Fue una presentación técnica que incluso incluyó escritura de código en un ambiente de desarrollo. Este es el vídeo, de la charla publicado por los organizadores de Campus Party, les recomiendo verlo en HD (720p):

Para una mejor descripción del contenido de la charla, les copio el texto que en su momento escribí para la propuesta:

Muchos, si no la mayoría, de los problemas o fracasos en proyectos de desarrollo de software se debe a que clientes y equipos de implementación de aplicaciones sencillamente no se entienden porque ven el mundo de manera muy distinta, hay una brecha entre ambas partes, dificultando materializar los requerimientos en software que realmente aporta valor para el negocio.

La metodología ágil BDD (Behavior-Driven Development) tiene precisamente el objetivo de lograr que ambas partes, cliente y equipo de desarrollo, en un proyecto se comuniquen de manera efectiva, ayudando a los primeros a especificar de manera sencilla y clara sus requerimientos, y a los segundos a entregar software que realmente cumple esas expectativas.

Tomando muchas de las buenas prácticas de desarrollo ágil de software y Lean, BDD fomenta y facilita la colaboración entre los miembros de diferentes roles, así como la integración de todas las etapas del proceso de desarrollo de software de tal manera que, aun escribiendo código fuente, nunca se pierda la referencia y conexión con las especificaciones del cliente, asegurando que el producto que se entrega coincide con ellas, es de calidad y, como un beneficio adicional, queda soportado por pruebas automatizadas.

Esta sesión mostrará, tanto a gente de negocios (gerentes de proyectos y analistas de negocios), como a gente técnica (especialistas en QA, arquitectos y desarrolladores de software), como aplicar BDD para obtener todos sus beneficios a la vez que hacen más felices a sus clientes con un proceso más eficiente y mejor producto.

Como siempre, hubo cosas que pude haber dicho mejor, faltaron o hasta sobraron. Generalmente soy muy crítico y duro conmigo mismo luego de una presentación, pero sobre esta debo decir que realmente me gustó mucho y tal vez sea la mejor que he dado hasta el momento. Les agradezco que compartan este material con otras personas a quienes pueda beneficiar el contenido, más abajo encontrarán una barra con diferentes opciones para transmitir esta publicación por diferentes medios en internet. También pueden dar un “like” al vídeo en youtube y / o dejar un comentario.

También les dejo la presentación que usé durante mi charla: