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...

Particionado de tablas para aumentar el rendimiento

base de datosCon la aparición de la versión 5.1 de MySQL, se incluyó en éste el particionado de tablas (algo que en PostgreSQL ya existía hace tiempo) por lo que me he animado a escribir sobre el tema.

El particionado de tablas es una técnica que se usa para reducir la cantidad de lecturas físicas a la base de datos cuando ejecutamos consultas, existen dos principales modalidades de particionado: horizontal y vertical. ¡Vamos a los detalles!

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...

Amazon y MapReduce via Hadoop

Hay tutoriales disponibles ya hace algún tiempo detallando la forma de ejecutar el popular Apache Hadoop MapReduce framework en Amazon EC2. Hoy Amazon comienza a adherir al padrón ofreciendo soporte oficial a través de Amazon Elastic MapReduce. Desde la página del producto:

Amazon Elastic MapReduce automáticamente incrusta una implementación de MapReduce framework en las instancias de Amazon EC2, sub-dividiendo los datos de un flujo de trabajo en pequeñas partes, de forma que ellos puedan ser procesados (la función "map") en paralelo y, eventualmente, recombinando los datos en una solución final (la función "reduce"). Amazon S3 sirve como fuente para los datos que se están analizando, así también como el destino para el resultado final.

Leer más...

Generando clases as3 con Gas3

NuevoPara el intercambio de objetos entre servicios Java en un servidor y aplicaciones Flex, se requiere que las clases de intercambio de datos estén escritas tanto en el lenguaje Java como en Action Script (as3).

Gas3 es un generador de código que genera clases as3 (para Flex) a partir de clases Java, automatizando la tarea de duplicación de clases entre ambos lenguajes. En este artículo vamos a ver un pequeño ejemplo de uso de Gas3.

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...

Integrando Flex con Spring

FlexEn el artículo anterior vimos una introducción a Flex 3, con un pequeño ejemplo para dar los primeros pasos.

En esta segunda nota de introducción veremos que las aplicaciones Flex pueden comunicarse con servicios y aplicaciones en servidores para el acceso a datos. Más que esto, pueden implementar toda su lógica de negocio en objetos deplegados en un servidor de aplicaciones. Analizaremos cuáles son los mecanismos y lenguajes soportados y un ejemplo paso a paso de una implementación con Java en el servidor usando Spring como framework de aplicación.

Leer más...

¿C++ y Java casi muertos?

FonolaMe gustaría hablar de los legados que nos han dejado C++ y Java. Se menciona muchas veces errores en el diseño de ambos, aunque si hacemos una retrospectiva en forma positiva podemos concluir que los dos lenguajes tuvieron un papel importante en la evolución de los lenguajes de programación y nos han dejado un legado importante y positivo.

Entonces, ¿no será muy temprano para hablar de sus legados? ¿O quizás pensamos que estos lenguajes están ya en su período de decadencia?

Leer más...

Diseño por Contrato con OVal y Spring

contratoOVal es un framework de validación para Java, que permite realizar comprobaciones a cualquier tipo de objetos y crear soluciones usando un enfoque de Diseño por Contrato. En este artículo vamos a ver brevemente qué es el Diseño por Contrato, y cómo utilizar OVal junto a Spring Framework para crear una infraestructura que facilite un Diseño por Contratos.

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