Cómo entender la Complejidad Ciclomática

En este cuarto artículo, vamos a tratar un poco de complejidad ciclomática. A pesar del nombre extravagante, la complejidad ciclomática (también conocida como complejidad condicional) es una simple métrica para determinar, como su nombre lo sugiere, la complejidad de un programa estructurado (cíclico).

Leer más...

Cómo cambiarían los Test Unitarios en el futuro.

Hablemos un poco como en una mesa redonda sobre "El futuro de la prueba de unidad". La mayor parte de la conversación se centró en el mocking. Se trata de un consenso general que los frameworks de mock se están utilizando en forma muy mayoritaria.

La teoría es la siguiente. A menudo, implementar todas las interfaces necesarias es muy tedioso y consume mucho tiempo. Entonces, para tornar las cosas más fáciles, la gente está apelando a los frameworks de mocking. Eso sólo oculta el problema de raíz, que es un API muy compleja.

Leer más...

Ocultando la realidad

dedos cruzadosLa gerencia comenzó a implementar Scrum para mejorar la habilidad de presentar nuevas características a los clientes. En el primer Sprint del primer proyecto, los equipos de Scrum entregaron más funcionalidad de la comprometida. Todos, desde la gerencia hasta los clientes, estaban más que contentos con el cambio.

En el segundo Sprint, las cosas cambiarian...

Leer más...

Cómo es de productiva la programación de a pares

La programación en parejas es, como mínimo, tan productivo como trabajar solo.

Cuando estés trabajando de a pares se trabaja todo el día. Debido a que trabajando solo, podes ver tus e-mail, leer el diario, etc. Y estas cosas no ocurren con la programación de a pares. Después de un día de programación de a pares te sentís cansado. Debido a que  realmente pensaste y trabajaste todo el día, pero estás feliz, porque sabes que el trabajo está hecho.

Leer más...

Comprometerse a lo imposible

avionVivo en Boston y bastante seguido me toca trabajar en Nueva York. En tan solo 45 minutos, Delta Airlines tiene un vuelo que me lleva del Aeropuerto Logan de Boston al Aeropuerto LaGuardia de Nueva York. De hecho, es tan conveniente que a veces hago más de una reunión en el día gracias a estos vuelos. Pero no siempre todo sale bien...

Leer más...

La prueba ágil de Nokia

pruebaNokia, uno de los fabricantes de teléfonos celulares más importantes del mundo, utiliza Scrum. Durante el aprendizaje, desarrollaron una prueba para verificar si un equipo realmente está usando Scrum, o sólo aparenta ser Agil. O si está haciendo una "Cascada Agil" (usar términos y palabras ágiles, pero hacer Cascada en el día-a-día).

La prueba de Nokia consiste de dos partes. ¡Veamos si sus equipos ágiles pueden aprobar!

Leer más...

Integración Contínua

"La integración continua es una práctica de desarrollo de software donde los miembros de un equipo de integrar su trabajo con frecuencia, generalmente cada persona integra al menos una vez al día - pudiendo haber múltiples integraciones por día. Cada integración es verificada por un build automatizado (incluyendo los test) para detectar errores de integración tan pronto como sea posible. Muchos equipos piensan que este enfoque conduce a una reducción significativa en los problemas de integración y permite a un equipo desarrollar software cohesivo más rápidamente. " Martin Fowler

Leer más...

Como colocar al cliente dentro del equipo

Vamos a hablar de la participación activa del Dueño del Producto (cliente) en las metodologías ágiles y creo que una buena forma es hacer una analogía ya que uno recuerda mejor este tipo de historias para contar un concepto y que quede más profundo en nuestras mentes.

Supongamos que estoys en el aeropuerto de Eseiza a la espera de que usted traiga algunos documentos que tengo que llevar en el viaje. Usted está en la zona de la Avenida Santa Fe y Callao y necesita llegar tan pronto como sea posible al aeropuerto. Decide entonces tomar un taxi, llama al taxista más cercano y le pregunta: "Señor, hasta el aeropuerto de Eseiza cuánto tiempo tardamos - cual es su estimación?" El taxista probablemente mira en el reloj, como máximo consulta en la radio acerca de cómo está el tráfico por allí, y de acuerdo a su experiencia, le daría un estimado de: "Mirá, en este horario creo que dentro de los 30 minutos estaríamos por allá". Usted cree que la estimación es satisfactoria y toma el taxi.

Leer más...

Pensamiento Lean para el software

Para los desarrolladores y líderes que están llegando a las metodologías ágiles a través de Scrum o XP, todo este asunto alrededor de Lean puede ser un poco misterioso. Aquí está una introducción a Pensamiento Lean y la forma en que se aplica al desarrollo de software, el editor de InfoQ Ágil China, Jacky Li. Ning Lu, de ThoughtWorks china, cuya conversación se resume aquí, hizo hincapié en el mayor obstáculo para Lean en ágil, como: el perjuicio que se formó durante la producción a gran escala.

Leer más...

Iteramos para adquirir experiencia

tinteroA primer vista, la mayoría de las metodologías ágiles define de manera simple que las historias se desarrollen ordenadas por el valor de negocio que otorgan. Sin embargo, en muchos casos es más prudente mezclar el valor de negocio con pasos deliberados para "adquisición de conocimientos".

Veamos cómo podemos lograr un equilibrio entre entregar la funcionalidad requerida en el momento adecuado.

Leer más...

Los cambios que produce Scrum

sentado mirando notebookTodos estamos convencidos que Scrum puede ayudar a una organización a alcanzar sus objetivos. Sin embargo, antes de proceder con la adopción de Scrum en una empresa primeriza, es bueno considerar los cambios por los que ya pasaron otras otras organizaciones.

Estos cambios suelen ser más amplios de lo esperado inicialmente porque, en Scrum, las malas prácticas de todos los días se exponen como impedimentos. Pueden ocurrir los cambios y desafios que enumeramos a continuación.

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