Cómo TDD y la Programación de a Pares aumentan la productividad

tendencia positivaNo sé. A veces siento que algunas personas venden mal todas las excelentes ventajas del Desarrollo Guiado por Pruebas (TDD) y la Programación de a Pares (PP). Es que muchos agilistas exponen este argumento: al hacer TDD y PP se incrementa la calidad, así que aunque la productividad disminuya, tenemos la conciencia tranquila de que fuimos buenos ciudadanos del mundo del software.

¡Mentira!. No sólo no es verdad que se pueda cambiar la calidad interna por más características, sino que es justamente lo contrario: mientrás más productivdad se busca, más alta debe ser la calidad interna.

Leer más...

No empieces lo que no podés terminar

Muchos equipos ágiles se enfrentan a un dilema cuando toman una nueva historia al final de un Sprint. Todavía existe tiempo restante, pero no lo suficiente para terminar esta nueva historia. Un interesante debate en el grupo Scrum Development intenta encontrar algunas soluciones a esta cuestión.

Según Alan Shalloway, que empezó el debate,

Leer más...

Cómo armar una oficina para hacer Programación de a Pares

blueprintCada vez que entramos a una oficina vemos gente trabajando. Todos trabajamos de distintas maneras. A veces trabajamos individualmente, a veces nos juntamos con un par para terminar una tarjeta que elegimos de la pared (tarjeta = post-it con una tarea en el tablero de Scrum). Estas dos formas de trabajar son bien distintas, y podemos tenerlas en cuenta al momento de diseñar la ubicación de los puestos de trabajo en la oficina.

¿Cómo organizar los escritorios de una oficina para hacer la mejor Programación de a Pares posible?

Leer más...

Los patrones verdes de TDD

semáforoLa práctica de Desarrollo Guiado por Pruebas (TDD) nos hace encarar la programación con un nuevo enfoque, pensando y escribiendo primero las pruebas y luego la implementación. Pero además de escribir primero la prueba, podemos avanzar aún más: hacer que las pruebas pasen exitosamente lo antes posible, incluso aunque esto signifique escribir código "de mentira" para hacer pasar a la prueba en cuestión.

Leer más...

Gobierno con metodologías ágiles

Tradicionalmente (el término) Gobierno del proyecto era utilizado para describir el conjunto de normas y procedimientos para garantizar el éxito de un proyecto. Intenta tratar al proyecto de trabajo como un proceso de trabajo. Sin embargo, la importancia dada a la utilización del costo y tiempo superan en mucho a las cuestiones más importantes tales como, beneficios del proyecto, control de riesgos, la participación de los recursos humanos, calidad, alcance y control de objetivos. A primera vista, los conceptos de gobierno y las Metodologías Ágiles parecen incompatibles, pero muchos "Agilistas" concuerdan que el gobierno puede hacer más bien que mal en los proyectos ágiles.

Leer más...

Reunión diaria: un mecanismo de cobranza

Muchas de las personas tienen una visión romántica sobre Scrum. Muchos de ellos entran en conmoción al escuchar decir que el dueño de producto es una persona que sólo piensa en el dinero.

Las personas tienden a pensar que todo en Scrum es romántico, no tiene nada de presión, la colaboración es hermosa, el dueño del producto es paciente, las cosas fluyen naturalmente, el ScrumMaster es un líder tierno y querido, es simplemente pegar post-it en un cuadro, entregar iteraciones, entrar en débito técnico, comer pochoclo en la planificación y vivir felices para siempre. 

Leer más...

El impacto de TDD en tu diseño

Quien ha utilizado el desarrollo orientado por las pruebas (TDD) sabe como está directamente relacionado con el diseño del código. Un diseño testeable (comprobable) normalmente es un diseño desacoplado y reutilizable. TDD es mucho más sobre diseño que sobre pruebas.

TDD es una práctica que envuelve el desarrollo en su conjunto. Especialmente el diseño. Algunos dicen que su última letra, la letra D, debería significar diseño y no desarrollo. Es decir, diseño orientado por las pruebas.

Leer más...

¿Tester dedicado para equipos ágiles?

La necesidad de testers dedicados en un equipo ágil es una cuestión bastante debatida. En muchos equipos ágiles, estos desempeñan un papel central en cuanto los otros desarrolladores también hacen test, pero no en forma dedicada. En un reciente debate en el grupo scrumdevelopment abordaron esta cuestión nuevamente.

Brian comenzó este debate diciendo que un tester ve la aplicación desde un ángulo diferente. La mayoría de los miembros del grupo concuerdan que la presencia de un tester dedicado trae beneficios significativos.

Leer más...

Impedimentos en positivo

fast forwardEn un artículo de Agile Tools el autor hace una reflexión al menos intrigante: buscar impedimentos es una tarea muy negativa. Uno se enfoca en ver las áreas problemáticas, realizando en efecto una persecución negativa. Es probable que uno no se imagine que "buscar impedimentos" sea en si una tarea negativa (ya que, el objetivo, es encontrar la solución y mejorar), pero evidentemente los impedimentos tienen embebido cierto grado de negatividad.

¿Qué pasaría si cambiaramos el enfoque? ¿Qué pasaría si, durante el Scrum diario, trataramos de ver lo que nos hace avanzar, en vez de lo que nos limita? 

Leer más...

Medición y seguimiento ágil

Además de otras actividades, dirijo a algunos equipos de desarrollo. Por eso, la gobernabilidad es un tema que me es muy querido. Es decir, ¿cómo saber si mis equipos están mejorando?. Y ya que creemos en el modelo ágil, como saber si mis equipos están siendo ágiles.

Una crítica habitual - y pertinente de alguna manera - que se hace a XP y Scrum es la falta de un sistema de gobierno. Es decir, como definir un mecanismo para dirigir a los equipos a trabajar con desarrollo ágil. Hablo sólo de XP y Scrum, porque yo no sé si las otras metodologías ágiles tienen mecanismos de gobierno.

Leer más...

Kanban vs. Scrum

KanbanEn nuestro equipo de desarrollo llevamos algo más de un año trabajando con Scrum.  Y ahora, para los pedidos de cambio, arreglos de bugs, mantenimiento de aplicaciones productivas y todo aquello que no llega a una iteración de Scrum, estamos abordando el uso de Kanban.

Nos viene bien una comparación de ambas herramientas metodológicas. Nos basamos en una guia práctica Kanban vs. Scrum, de Henrik Kniberg.

Leer más...

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw