Primeros pasos con las estimaciones

Las primeras veces que tenemos que estimar historias se nos hace muy cuesta arriba. ¿Cómo empiezo? ¿Y si me equivoco? ¿Hemos de estimar tiempo, complejidad o ambas? ¿Cómo demonios sé lo que voy a tardar en hacer algo? En este post hablaré de estimación en días ideales vs. puntos de historia y del concepto de velocidad, de las estrategias que podemos seguir al hacer estimaciones y alguna cosa que he aprendido al aplicar todo esto en proyectos reales.

Seguir leyendo

Anuncios
Publicado en Gestión de proyectos | Etiquetado , , | Deja un comentario

Motivación vía planificación en Scrum

Como desarrolladores de software, nuestro trabajo tiene un componente creativo sustancial y, como en cualquier trabajo creativo, la motivación con que lo encaremos determinará en gran medida nuestra productividad. En el post de hoy hablaré de cómo Scrum influye en la motivación de los equipos de desarrollo, analizando cómo incide en aquellos aspectos que más los motivan 🙂

Seguir leyendo

Publicado en Gestión de proyectos | Etiquetado , , , | Deja un comentario

Testing: Dobles de acción y estado vs. comportamiento

Agregar tests a nuestros proyectos es muy rápido. Tan sólo hemos de añadir un proyecto de tipo Test a nuestra solución y Visual Studio nos deja ante un método Test1 listo para rellenar de Asserts 😛
Pero para escribir buenos tests hay que tener algunos aspectos en cuenta, que influirán en su planteamiento y en el código que crearemos para satisfacerlos. En este post utilizaré un test sencillo como punto de partida y sobre él presentaré algunos de estos asuntos y las diferentes alternativas a nuestro alcance para solucionarlos.

Seguir leyendo

Publicado en Dev | Etiquetado , , , , | Deja un comentario

Qué es yield y por qué hay que usarlo

Seguro que alguna vez has utilizado en C# la palabra clave yield. Se usa para indicar al compilador que estamos dentro de un bloque de iteración y nos permite acceder a los elementos de una lista (IEnumerable) de forma progresiva, a medida que los vamos necesitando. Vamos a ver qué ventajas nos reporta y en qué se traduce cuando compilamos.

Seguir leyendo

Publicado en Dev | Etiquetado , , , , , | 2 comentarios

Redescubriendo SQL: APPLY

Mientras curioseaba en las sentencias SQL que genera EF descubrí que utilizaba un operador un tanto olvidado: APPLY. A simple vista, su uso y aplicaciones pueden recordar a los de la cláusula JOIN y, como vamos a ver, en ocasiones pueden ser intercambiables en busca de un mejor rendimiento.
Seguir leyendo

Publicado en Dev | Etiquetado | 1 Comentario

Ejecutar acciones al finalizar la transacción: TransactionCompleted vs. EnlistVolatile

Hace unas semanas me encontré con la necesidad de realizar una acción al final de una transacción, pero sólo si dicha transacción había sido completada.
Imaginemos que queremos enviar un mail de aviso, sólo en caso de que la transacción se complete correctamente. Si se hace rollback de la transacción, el mail no se ha de enviar. Veamos cómo hacerlo.

Seguir leyendo

Publicado en Dev | Etiquetado , | Deja un comentario

Scrum y las ingratas tareas de soporte

Una de las características principales de Scrum es el concepto de sprint. De todas las historias pendientes (Product backlog) el equipo escoge hasta dónde va a poder desarrollar en el siguiente sprint (normalmente 2 o 3 semanas) y se compromete a tener todo eso listo para enseñarlo en una demo al final de ese tiempo. Trabajando así, el equipo sabe exactamente qué se espera de él y se auto-organizará, sin interferencias externas ni cambios de planes, para conseguir su objetivo. Lamentablemente, hay algunas tareas que no se pueden planificar, ni siquiera con tan poca antelación. ¿Qué podemos hacer al respecto?

Seguir leyendo

Publicado en Gestión de proyectos | Etiquetado , , , , , | Deja un comentario