List<Stuff>

Una colección de ideas, instanciada por Jose Luis Soria
Nuevas actividades de workflow en Team Foundation Build 11 Beta

Actividades para las construcciones automatizadas… ¡nunca son suficientes! Team Foundation Build 11 Beta viene con 69 actividades de workflow, lo que representa no menos de 28 nuevas con respecto a la versión 2010. De ellas, 14 están pensadas para usarlas en la personalización de nuestras construcciones automatizadas, prácticamente documentadas por completo, y listas para ser utilizadas.

Todas estas actividades están muy bien explicadas en la  documentación disponible en MSDN, pero voy a hacer un pequeño resumen, más que nada para ayudarme a recordarlas Winking smile.

GetCommonLocalPath y GetCommonServerPath

Dada una colección de rutas locales o de servidor, estas actividades devuelven la ruta común de mayor longitud para todas ellas.

IsNotNull<T> y IsNull<T>

Comprueban si una expresión Visual Basic es no nula o nula, respectivamente.

QueryShelvesets

Hace una consulta sobre el servidor de control de versiones, y devuelve una lista de conjuntos de cambios aplazados (shelvesets) que cumplen el criterio dado. El criterio puede definirse mediante el nombre del conjunto de cambios aplazado y el propietario.

RunTests

Esta es quizá una de las actividades más interesantes de las nuevas. Nos permite ejecutar pruebas usando el nuevo Visual Studio Test Runner, que a su vez nos da soporte para el uso de frameworks de pruebas unitarias distintos a (pero incluyendo) MSTest, como NUnit o xUnit. Esta actividad es utilizada en la misma plantilla DefaultTemplate.11.1.xaml para ejecutar las pruebasm si especificamos Visual Studio Test Runner, en el cuadro de diálogo Test Source,  en la pestaña Process de la ventana de definición de la construcción automatizada.

Aquí podemos ver el lugar donde se puede seleccionar el Test runner, que por defecto es Visual Studio Test Runner:

image_thumb6

Y aquí es donde la actividad RunTests es utilizada en la plantilla de construcción automatizada DefaultTemplate.11.1.xaml:

image_thumb1

TfGet, TfResolve, TfShelve, TfUnshelve, TfUndo, y TfWorkfold

Estas actividades son “wrappers” a los correspondientes comandos de tf.exe, que nos proporcionan más formas útiles de interactuar con el servidor de control de versiones desde una construcción automatizada. 

WriteBuildTestError

Escribe un mensaje de error de test en el log de la construcción automatizada, el cual también aparece en la vista de resultados de la construcción automatizada:

image_thumb3

WriteCustomSummaryInformation

Escribe un mensaje en la vista “Build summary” (el resumen de la ejecución de la construcción automatizada). Este mensaje puede incluir hipervínculos, y es posible especificar la sección dentro del “build summary” donde aparecerá el mensaje. El resultado tiene este aspecto:

image_thumb2

New workflow activities in Team Foundation Build 11 Beta

Build activities… you just can’t get enough! Team Foundation Build 11 Beta comes with 69 workflow activities, which represents no less than 28 new ones compared to the 2010 version. From these, 14 of them are intended for use in build customizations, almost fully documented, and ready to be used.

All these activities are nicely explained in the available documentation at MSDN, but I’m going to make a brief summary, mostly for helping myself to remember them Winking smile.

GetCommonLocalPath and GetCommonServerPath

Given a collection or either local or server paths, these activities will return the lowest-level common parent folder of all of them.

IsNotNull<T> and IsNull<T>

Test if a Visual Basic expression is either not null or null.

QueryShelvesets

Queries the version control server and returns a list of shelvesets which met the given criteria. The criteria can be defined using the shelveset name and the owner.

RunTests

This is maybe one of the most interesting activities among the new ones. It allows us to run tests using the new Visual Studio Test Runner, which in turn lets us to use unit testing frameworks other than (but including) MSTest, such as NUnit or xUnit. This activity is used by the DefaultTemplate.11.1.xaml itself to run the tests if we specify the Visual Studio Test Runner, under the Test Source dialog, in the Process tab of the build definition window.

Here we can see the place where we can choose the Test runner, which is Visual Studio Test Runner by default:

image

And here is the place where the RunTests activity is used inside the DefaultTemplate.11.1.xaml build process template:

image

TfGet, TfResolve, TfShelve, TfUnshelve, TfUndo, and TfWorkfold

These activities are wrappers to the corresponding tf.exe commands, giving us more useful ways to interact with the version control server from the build process. 

WriteBuildTestError

Writes a test error message in the build log, which appears also in the build results window:

image

WriteCustomSummaryInformation

Writes a message into the build summary. This message can include hyperlinks, and you can specify the section inside the build summary where the message will appear. The result looks like this:

image

Agile database development – presentation at SDC2012

Here are the slides for my presentation about Agile database development (with Visual Studio) at SDC2012. Thank you to all the attendants!

Material de la charla ALM para Azure en Destino la Nube 2012

El pasado 7 de marzo estuve hablando sobre ALM para proyectos Azure en el evento “Destino la Nube" 2012” de Microsoft.

Aquí tenéis la presentación que utilicé, y el vídeo con la grabación de la sesión.

Sesiones de ALM: Continuous Delivery, Automatización, NuGet+TFS, VS11, TFS Service, Scrum…

Si no tengo el récord, debo andar cerca… en menos de un mes he participado en tres eventos, en los cuales he sido ponente en un total de seis sesiones. Creo que debería plantearme cobrar por volumen (o por lo menos cobrar Smile).

Aquí os dejo el material de todas las sesiones; incluso están grabadas en video por si os interesa echarles un vistazo.

Grabación: http://channel9.msdn.com/Blogs/channel9spain/MICROSOFT-ALM-SESSIONS-2012-NOVEDADES-VSTUDIO-11-ENTREGA-CONTINUA

 

Grabaciones:

https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ES&EventID=1032504086&CountryCode=ES

http://www.zoguo.com/blog/videos/second-nug-como-hacer-el-paso-a-produccion-automatizacion-de-despliegues/

 

Grabación: http://www.globbtv.com/12/microsite/2012/12-horas-visual-studio-gestion-de-codigo-y-librerias-compartidas

 

Grabación: http://channel9.msdn.com/Blogs/channel9spain/MICROSOFT-ALM-SESSIONS-2012-NOVEDADES-VSTUDIO-11-ENTREGA-CONTINUA

 

Grabación: http://www.globbtv.com/2026/videos/12-horas-visual-studio-tfs-mas-ligero-en-la-nube

 

Grabación: http://channel9.msdn.com/Blogs/channel9spain/MICROSOFT-ALM-SESSIONS-2012-IMPLEMENTANDO-SCRUM-CON-TFS

CAS 2011 retrospective

This is my own retrospective about Agile Spain 2011 conference, which I attended last week.

Start doing

I couldn’t agree more with @eamodeorubio when he says that we should give the event a broader scope. I’m trying to help by writing this post only in English Smile. For example, we got near zero value from @jbrains during the round table because of the language. Start doing sessions in English and inviting international speakers! I gave a session at Agile Portugal conference a few months ago, and I was amazed to see how almost all the communication was carried out in English. Don’t get me wrong – I’m not against Spanish in any way, but we’re losing lots of opportunities for learning, networking and knowing new people by restricting almost all the conference to one language.

More of

More of these awesome sessions! Unfortunately I missed a lot of the program, but I enjoyed specially the keynotes, the Kanban sessions by Mr. Maeda, and to see how @jgomezz is helping to grow up a great team at his organization.

Keep doing

Please keep with that awesome work from the organization people! I've been doing that sort of organization work lately for www.scrumweek.com, and now I can understand how difficult is to take into account all these little details that arise when you have to deal with lots of attendants, speakers, sponsors, etc. My warmest congratulations for them. Thank you to the sponsors as well, for making it possible the event to take place.

Less of

As @pepellou already said, I’d get rid of some philosophical concerns and futile discussions during sessions, retrospectives and the event in general. We’re doing software, let’s focus in that!

Stop doing

I know it’s hard to maintain attention on a Friday afternoon, but for all of these not attending the retrospective, I’d ask them to think twice when they call themselves agilists. It was sad to realize that less that a quarter of the conference attendants stayed there until the retrospective. The only positive outcome of so much people missing, was that there were more mojitos for the ones who stayed, thanks to Autentia. Maybe scheduling the round table later would have help to avoid these fugitives.

And speaking in a broader sense, I’d try to stop some arguments that are commonly carried out between code-centric and process-centric people. Both of them are needed in almost any development project, so I’d stop arguing and start collaborating!

About my session

I spoke about new approaches to several Scrum practices, using the Scrum Guide as direction. Here are the slides:

 

And here is the video which appears on slide 17, which is being fairly popular:

 

And the winner is…

I promised to give away a seat for free, for my upcoming Professional Scrum Foundations course at Scrumweek Barcelona 2011, to one of the attendants to my session.

I’ve been impressed about how Yolanda Dura and her team are struggling to succeed with Scrum and Agile, so the prize goes for her. I hope they’ll take a lot of advantage from it.

Talleres sobre ALM en CEIN (Pamplona)

En un par de días voy a estar impartiendo dos talleres en CEIN (Pamplona):

Si estás por la zona esos días y te interesan los temas, es posible que aún queden plazas libres.

Primer curso Professional Scrum Foundations en España, y mucho más, en la ScrumWeek Barcelona 2011


Del 7 al 11 de noviembre va a tener lugar en Barcelona la segunda edición de la Scrumweek, un evento en el que, con la colaboración de Proyectalis, Plain Concepts y la comunidad, os ofrecemos un montón de cursos, sesiones y actividades que pueden ser de gran valor para profundizar en aspectos concretos del mundo ágil.

Para los que estéis buscando empezar con Scrum con el mejor pie, o reforzar conocimientos, estamos organizando el primer curso oficial Professional Scrum Foundations de scrum.org en España, que además de tener un enfoque y un contenido magníficos, permite obtener la certificación oficial de scrum.org. Antes de que me asalten los trolls de las certificaciones, deciros que el curso en sí mismo merece mucho la pena, como lo pueden atestiguar los cientos de personas que ya lo han recibido a nivel mundial. Si aprovechas el curso, que seguro que lo haces, habrás amortizado de sobra la inversión, aunque luego decidas no presentarte al examen para obtener la certificación (aunque ya que está incluido por probar que no quede ¿no?).

También tendremos una nueva edición del curso Professional Scrum Developer .NET en el cual exprimiremos Scrum en la práctica desde el punto de vista del rol de miembro del equipo, y poniendo énfasis en todas las buenas prácticas que pueden ayudar a trabajar mejor en un equipo ágil: integración continua, TDD, arquitectura, testing, etc. Todo facilitado por una buena ración de nuestras herramientas favoritas, Visual Studio ALM y Team Foundation Server. Y además, también con la opción de obtener una certificación, en este caso reconocida tanto por scrum.org como por Microsoft.

Los dos cursos serán impartidos por Rodrigo Corral (con lo que tenéis la calidad asegurada Winking smile), y por mí mismo.

Tendremos además la gran oportunidad de asistir al curso Management 3.0 de Jurgen Appelo, y al de Coaching de Equipos Ágiles de Ángel Medinilla. Sin duda otras dos grandísimas razones para no perderse el evento.

Y por si fuera poco, habrá además una serie de sesiones y actividades gratuitas hechas por y para la comunidad, incluyendo un Coding Dojo, algo tan novedoso en España como un Testing Dojo, y un Open Space para que todo el mundo pueda proponer y hablar de lo que más le interese.

Tenéis toda la información en la página de ScrumWeek Barcelona 2011.

¡Esperamos veros por allí!

Scrum has been updated: a summary of the changes

Logo-Scrum.org_[5]

Adapt or die, is an omnipresent reality in the software development world, and of course Scrum is not an exception. After more than 20 years of history, the most popular agile framework gets an update which doesn’t alter any fundamental principle, but which is good to make some clarifications needed since long time ago. And also, as my fellow/trainer at Scrum.org Giovanni Bassi states, to stress the character of Scrum as a framework more than as a methodology.

The update is reflected in the new version of the Scrum Guide, published by Scrum.org last July 15th 2011. The revision has been done by the creators of Scrum, Ken Schwaber and Jeff Sutherland, with the participation of David Starr, Jim Coplien and other contributors. The Scrum Guide itself has been deeply renovated, with the goal of making it clearer and concise, and to have it gather the Scrum rules in an univocal way. For this reason, they have been excluded from the guide all the tips, strategies, practices and techniques which, even though being useful, aren’t prescribed by Scrum, and thus are optional.

The most important modifications to Scrum, which the authors themselves have gathered in a document, are the following ones:

  • The team of people who are in charge of doing the work of creating each increment, is now called Development Team. All the members are Developers, no matter the concrete work they’re doing (coding, testing, design, architecture…). This modification, although seems a simple naming change, has several advantages. First, it reduces the confusion that could exist until now, since the Development Team was called simply Team. I Scrum we deal with another team which is called the Scrum Team (composed of the Development Team, the Scrum Master and the Product Owner), so the distinction between them is clearer. Furthermore, it stresses the cross-functional character of the team as a group of developers, beyond the simple sum of people with concrete roles.
  • Until now, we said that the Development Team, during the Sprint Planning Meeting, makes a commitment about the work to be completed. The term commitment has been substituted by forecast, so during the Sprint Planning Meeting, the Development Team makes a forecast about the work to be completed during the Sprint. Once again, it may seem a simple naming change, but in my opinion, it has a good purpose: when doing a commitment, we’re ignoring the uncertainty which is present in any Sprint, pretending that we’ll complete the committed work even though changes or difficulties get in the way. Forecast is a more adequate word in order to state that we’ll try to complete the work, but that the result at the end of the Sprint can be different. Does this mean that Developers are now less responsible for their work, or that they can relax during it? That’s not the case: Development Team keeps on committing, of course. But commitment to a concrete list of items is something that usually doesn’t get well with uncertainty and with what happens in reality, while there’s more value in committing to things like working with professionalism, making things the better you can or even fulfilling the Sprint Goal – which gives us guidance about the scope of each Sprint.
  • Burndown charts (Relase Burndown, Product Burndown, Sprint Burndown), are no longer mandatory in Scrum. We’re supposed to keep on measuring remaining work each day of the Sprint, and the trend towards the end. But the specific tool to use, is up to ourselves. Of course, burndown charts are still an excellent option, though we can use any other progress tracking tool: other kinds of graphs, simple numeric values, percentages, subjective measurements or whatever better fits our needs.
  • Scrum no longer addresses the concept of Release Planning. It’s something that undoubtedly can be valuable in many organizations and development efforts, and in these cases we’ll obtain benefit from keeping on doing it. But if the circumstances of our organization or development don’t require it, or if we don’t need to keep a medium/long term vision about what we want to achieve, we can simply get to work without worrying about the planning further than the next Sprint horizon. This nuance promotes the framework character of Scrum, and makes it easier to apply it to many development efforts where the short term vision is much more important than having a very clear understanding about where are we going to.
  • It is no longer mandatory to maintain a bunch of Sprint Backlog Items for each Sprint. Until now, the Sprint Backlog was the list of tasks and concrete pieces of work, resulting of decomposing and analyzing the (commited) forecasted Product Backlog Items for each Sprint. From now on, the Sprint Backlog is simply the forecasted Product Backlog Items, plus a plan to complete them. The concrete definition of what a plan consists on, is left up to the Development Team; of course, we can keep on using a tasks list to reflect the plan, but we have the possibility to choose another options. Many times it’s difficult to decompose into tasks a particular PBI, or it’s not worth the effort, or other mechanisms are preferred in order to express how are we going to do the work. The new version of Scrum gives us the chance of using tasks, or substitute them by any other mechanism, be it a high-level description, a further elaborated technical design (have in mind the exhaustive documentation issue…), or any other option that better fits our needs. Once again, this update stresses the framework nature of Scrum over being a methodology.
  • The Product Backlog has to be ordered, instead of having to be prioritized. It is, once again, a naming change which maybe will be not so important for many people, and in the other hand will bring difficulties to others, but as the former ones, it has a purpose. In fact, prioritization is nothing but a particular kind of ordering based in relative importance or ROI, but usually these parameters are not the only ones to have in mind when finding out the optimum order in which things should be delivered. I’ll try to clarify furthermore this point in some future post or reference, as well.

Besides from the enumerated changes above, which are the ones stressed by the authors themselves, the new version of Scrum brings some additional changes which I think worth mentioning:

  • The minimum recommended number of people for a Development Team is now 3, instead of 5 as it used to be. Nevertheless, the Guide puts clear that the limits are only a guideline, and that the optimum size of the Development Team is the minimum needed to complete the work, and the maximum required to keep agile.
  • There are other minor naming changes; for example, it’s again being used Scrum Master instead of ScrumMaster, or the term Timebox is replaced by Event when referring to the several meetings in a generic way.
  • The role and responsibilities of the Product Owner are much more clear and defined than in former versions of the Guide.

I believe that the Scrum update is a very nice piece of news, because it demonstrates the concern of the authors about keeping it up to date and make it more flexible, in order to deal with the changing needs of developments.

Below you can see myself and other fellow trainers from Scrum.org with Ken Schwaber and David Starr, during the last meeting at Boston where we discussed about these and many other interesting subjects Winking smile.

scrumdotorgmeeting

Scrum se actualiza: resumen de las novedades

Logo-Scrum.org_

Renovarse o morir es una realidad omnipresente en el mundo de desarrollo de software, y por supuesto es aplicable a Scrum. Tras más de 20 años de historia, el marco de trabajo ágil más popular recibe una actualización que no altera ningún principio fundamental, pero que sirve para hacer algunas aclaraciones que venían siendo necesarias desde hace tiempo. Y también, tal y como destaca mi compañero/trainer en Scrum.org, Giovanni Bassi, para acentuar más el carácter de marco de trabajo de Scrum frente al de metodología.

La actualización está recogida en la nueva versión de la Guía de Scrum, publicada por Scrum.org el pasado 15 de julio de 2011. La revisión ha sido realizada por los creadores de Scrum, Ken Schwaber y Jeff Sutherland, con aportaciones de David Starr, Jim Coplien y otros colaboradores. La guía de Scrum en sí misma ha sido profundamente renovada, con el objetivo de hacerla más clara y concisa, y de que recoja las reglas de Scrum de forma unívoca. Por esta razón se han dejado fuera de la guía todos los consejos, estrategias, prácticas y técnicas que, aun siendo útiles, no están prescritas por Scrum y por lo tanto son opcionales.

Las modificaciones más importantes a Scrum, que los propios autores han recogido en un documento, son las siguientes:

  • El equipo de personas encargados de realizar el trabajo de crear cada incremento, pasa a ser llamado Equipo de Desarrollo (Development Team). Todos sus integrantes son Desarrolladores, independientemente del trabajo concreto que desempeñen (programación, pruebas, diseño, arquitectura...). Esta modificación, aunque pueda parecer un simple cambio de nombre, tiene diversas ventajas. En primer lugar, reduce la confusión que podía existir hasta ahora, ya que al Equipo de Desarrollo se le venía llamando simplemente Equipo. En Scrum tenemos otro equipo que recibe el nombre de Equipo Scrum (formado por el Equipo de Desarrollo, el Scrum Master y el Product Owner), por lo que la distinción entre ambos queda más clara. Además, pone énfasis en el carácter multidisciplinar del equipo, como grupo de desarrolladores, más allá de la suma de gente con roles concretos.
  • Hasta ahora, decíamos que el Equipo de Desarrollo, durante la reunión de Planificación del Sprint, hace un compromiso en cuanto al trabajo que va a ser completado. El término compromiso ha sido sustituido por previsión, por lo que durante la reunión de Planificación del Sprint, el Equipo de Desarrollo hace una previsión del trabajo que va a ser completado durante el Sprint. Una vez más puede parecer un simple cambio de nombre, pero tiene también su motivación: al hacer un compromiso, estamos ignorando la incertidumbre que está presente en todo Sprint, pretendiendo que completaremos el trabajo comprometido aunque aparezcan cambios o dificultades por el camino. Predicción es un término más adecuado para expresar que intentaremos llegar a completar dicho trabajo, pero que el resultado al final del Sprint puede ser distinto. ¿Quiere esto decir que los Desarrolladores tienen ahora menos responsabilidad, o pueden relajarse en su trabajo? Nada más lejos de la realidad: el Equipo de Desarrollo por supuesto se sigue comprometiendo. Pero el compromiso con una lista de elementos concretos es algo que suele llevarse mal con la incertidumbre y con lo que ocurre en la realidad, mientras que sí hay valor en comprometerse a conceptos como trabajar con profesionalidad, hacer las cosas lo mejor posible e incluso a cumplir el Objetivo del Sprint (Sprint Goal), que proporciona siempre una guía acerca del alcance de cada Sprint.
  • Las gráficas de progreso (Relase Burndown, Product Burndown, Sprint Burndown), dejan de ser obligatorias en Scrum. Seguimos teniendo que medir el trabajo restante cada día del Sprint y la tendencia hacia la consecución del mismo. Pero la herramienta concreta que utilicemos es decisión nuestra. Por supuesto que las gráficas de progreso siguen siendo una alternativa excelente, aunque podemos utilizar cualquier otra herramienta de seguimiento de progreso: otros tipos de gráficas, simples valores numéricos, porcentajes, valoraciones subjetivas o cualquier otra que nos convenga.
  • Scrum no sigue contemplando el concepto de planificación de entregas o versiones (Release Planning). Es algo que indudablemente puede aportar valor en multitud de organizaciones y desarrollos, y en ese caso nos veremos beneficiados de seguir haciéndolo. Pero si las circunstancias de nuestra organización o desarrollo no lo requieren, o simplemente no necesitamos tener una visión a medio/largo plazo de lo que queremos conseguir, podemos simplemente comenzar a trabajar sin tener que preocuparnos de la planificación más allá del horizonte del siguiente Sprint. Este matiz promueve el carácter de marco de trabajo de Scrum, y hace que sea más fácil aplicarlo a multitud de desarrollos en los que la visión a corto plazo es mucho más importante que tener muy claro hacia dónde queremos dirigirnos.
  • Desaparece la obligación de tener una serie de elementos de la Pila de Sprint (Sprint Backlog Items) para cada Sprint. Hasta ahora el Sprint Backlog era la lista de tareas y trabajos concretos resultado de descomponer y analizar de los elementos de la Pila de Producto (comprometidos) previstos para cada Sprint. A partir de ahora, el Sprint Backlog pasa a ser simplemente el conjunto de elementos de la Pila de Producto previstos, junto a un plan para completarlos. La definición de lo que es un plan queda a criterio del Equipo de Desarrollo; por supuesto que podemos seguir utilizando una lista de tareas para reflejar dicho plan, pero se nos abre la posibilidad de usar otras opciones. En muchas ocasiones es complicado hacer un desglose en tareas de un PBI concreto, o no nos aporta mucho valor hacerlo, o son preferibles otros mecanismos para expresar cómo vamos a llevar a cabo el trabajo. En la nueva versión de Scrum tenemos la opción de utilizar tareas o sustituirlas por cualquier otro mecanismo, desde una descripción a alto nivel, un diseño técnico más elaborado (ojo eso sí con la documentación exhaustiva…), o cualquier otra opción con la que nos sintamos cómodos. Una vez más, con esta modificación se resalta el carácter de marco de trabajo frente al de metodología.
  • La Pila de Producto (Product Backlog) debe estar ordenada, en lugar de estar priorizada. Es una vez más un cambio de nomenclatura que seguramente será poco significativo para muchos, y en cambio traerá grandes dificultades a otros, pero como los demás que hemos visto, tiene su motivación. En realidad, la priorización no es más que un tipo concreto de ordenación basada en la importancia relativa o el ROI, pero por lo general estos parámetros no son los únicos a tener en cuenta a la hora de determinar el orden óptimo en el que vamos a entregar las cosas. Intentaré asimismo clarificar más este punto en algún artículo o referencia futura.

Aparte de los cambios enumerados, que son los destacados por los propios autores, la nueva versión de Scrum nos trae algún cambio adicional que creo digno de mención:

  • El mínimo recomendado de personas para formar un Equipo de Desarrollo pasa a ser de 3 personas, en lugar de 5 como ocurría hasta ahora. Aunque la guía deja claro que los límites son orientativos, y que el tamaño óptimo del Equipo de Desarrollo es el máximo aceptable para permanecer ágil, y el mínimo suficiente para poder completar el trabajo.
  • Hay otros cambios menores de nomenclatura; por ejemplo se vuelve a usar Scrum Master en lugar de ScrumMaster, o se sustituye la expresión de Bloque de Tiempo (Timebox) por el de Evento para referirse de forma genérica a las distintas reuniones que se mantienen.
  • La figura del Product Owner y sus responsabilidades quedan mucho más clarificadas y definidas que en anteriores versiones de la guía.

Creo que la actualización de Scrum es una noticia muy buena, ya que demuestra la preocupación de los autores por mantenerlo al día y flexibilizarlo para dar respuesta a las necesidades cambiantes de los desarrollos.

Debajo podéis verme junto a otros compañeros trainers de Scrum.org, junto a Ken Schwaber y David Starr, durante la última reunión en Boston donde tratamos éstos y otros muchos temas interesantes Winking smile.

scrumdotorgmeeting

Are you using Planning Poker for estimating tasks? Maybe you should reconsider it

If you are using Planning Poker for estimating tasks in the Sprint Backlog, maybe you’d better reconsider it. It’s a tool that can be very useful when estimating user stories or Product Backlog items. But the characteristics of the tasks in the Sprint Backlog are very different from those of the Product Backlog items, and most times Planning Poker, or any other estimation tool based in orders of magnitude, is not adequate for supporting those estimations.

image_thumb[1]

The main reasons of Planning Poker not being a good tool for estimating tasks are:

  • Task estimates are usually given in hours, and because of the very nature of the tasks, they should be in the range of a few hours, from less than one hour to a maximum of 16 hours. That is, tasks estimates not necessarily grow by orders of magnitude, as user stories estimates tend to do, but instead of that, they stand within a small magnitude. Planning Poker only provides a few cards for the range of small estimates, and we also have cards to provide large estimations, which shouldn't even occur if the tasks had been decomposed properly.
  • As a result of this, when working with Planning Poker we'll miss some values ​​that are not present (on purpose) in a Planning Poker deck, since for estimating tasks we need a ​​more accurate range of values than for estimating user stories. For example we will not be able to give an estimate of 4 or 6 hours for a task, which a priori should be perfectly possible. I've even found teams that were taking more than one card at a time to reach the desired amount for the estimate, which demonstrates the limited usefulness of the tool for this purpose.

Therefore, it would be appropriate to leave Planning Poker, and other methods based on orders of magnitude as T-Shirt Sizing, to estimate user stories. To estimate tasks, we can simply use Wideband Delphi, or even simpler tools such as analogy, decomposition or expert opinion.

Apart from this, it might even be questionable whether it is better to estimate tasks in groups or individually. Ken Schwaber himself recommends the latter (http://kenschwaber.wordpress.com/2010/10/, Example 2), although this would be a good subject for another discussion.

And finally, remember that sometimes it's even better to not estimate the tasks. Estimates are not value that we can deliver to the customer, but rather they can represent waste, and if we can properly do planning without doing the effort of estimating, we will earn this time to advance in the delivery of value. Some teams simply break down the work into tasks of a similar size, so that planning can be based on counting the tasks that we're going to be able to finish.

I’m leaving you with the slides from my session on agile estimation at the last TechEd Middle East, it's mainly about estimation for user stories, but the concepts can be useful in a wider sense.

¿Usas Planning Poker para estimar tareas? Quizá deberías pensarlo mejor

¿Estás usando Planning Poker para estimar tareas en el Sprint Backlog? Quizás deberías replanteártelo. Es una herramienta que puede ser muy útil a la hora de estimar historias de usuario o elementos del Product Backlog. Pero las características de las tareas en el Sprint Backlog son bien distintas de las de los elementos del Product Backlog, y por lo general Planning Poker, o cualquier otra herramienta de estimación que se base en órdenes de magnitud, no es adecuada para dar soporte a estas estimaciones.

image

Las principales razones por las que Planning Poker no es una buena herramienta para estimar tareas son:

  • Las estimaciones de tareas se dan por lo general en horas, y por la propia naturaleza de las tareas, deberían estar en el rango de unas pocas horas, desde menos de una hora a un máximo de unas 16 horas. Es decir, las estimaciones de las tareas no crecen necesariamente en órdenes de magnitud, tal y como lo suelen hacer las estimaciones de las historias de usuario, sino que se mantienen en una magnitud pequeña. En Planning Poker tenemos sólo unas cuantas cartas para el rango de estimaciones pequeño, y además tenemos cartas para dar estimaciones grandes, que no deberían ni siquiera aparecer si las tareas han sido descompuestas adecuadamente.
  • Como consecuencia de lo anterior, al estimar tareas con Planning Poker vamos a echar en falta algunos valores que no están presentes (a propósito) en una baraja de Planning Poker, ya que para estimar tareas necesitaremos un rango de valores más preciso que para estimar historias de usuario. Por ejemplo no vamos a poder dar una estimación de 4 o de 6 horas para una tarea, lo cual a priori debería ser perfectamente posible. Me he encontrado con equipos que estaban incluso sacando más de una carta cada vez para poder llegar a la suma deseada para la estimación, lo cual demuestra la poca utilidad de la herramienta para este fin.

Por lo tanto, lo adecuado sería dejar Planning Poker, y otros métodos basados en órdenes de magnitud como T-Shirt Sizing, para estimar historias de usuario. Para estimar tareas podemos usar simplemente Wideband Delphi, o herramientas incluso más simples como analogía, desagregación u opinión del experto.

Aparte de esto, incluso podría ser discutible si es mejor estimar tareas en grupo o hacerlo individualmente. El mismo Ken Schwaber nos recomienda lo segundo (http://kenschwaber.wordpress.com/2010/10/ , Ejemplo 2), aunque esto daría para mucho debate.

Y por último, recuerda que a veces lo mejor es ni siquiera estimar las tareas. Las estimaciones no son valor que podamos entregar al cliente, sino más bien desperdicio, y si podemos permitirnos planificar adecuadamente sin tener que hacer el esfuerzo de estimación, estaremos ganando ese tiempo para avanzar en la entrega de valor. Algunos equipos simplemente descomponen el trabajo en tareas de un tamaño similar, con lo que la planificación se puede basar en contar las tareas que vamos a ser capaces de sacar adelante.

Os dejo con las slides de mi sesión sobre estimación ágil en el último TechEd de Oriente Medio; habla más bien de estimación para historias de usuario, pero los conceptos son útiles en sentido general.

Defining “Done” at XP2011

Although it can seem obvious, sometimes it’s difficult to state when we’ve finished working on a feature or characteristic during a project. It usually happens by omission; that is, we leave apart undone things when time is short or because we don’t consider that they are important. The problem is that these things usually return soon after, as bugs, technical debt or simply pending work, and most times it represents a bigger inconvenience and effort than if we had solved them in the right moment.

Defining explicitly what means that anything is “Done” (and trying to stick to that definition), is essential in order to avoid these situations. This is what I tried to stress during my Lightning Talk last Thursday, 12th at XP2011 conference; I believe that the slides show the idea quite well:

Posted: 16/5/2011 14:13 por Jose Luis Soria | con no comments
Archivado en: ,,
Definiendo “Hecho” en XP2011

Aunque pueda parecer evidente, en ocasiones es difícil determinar cuándo hemos terminado de trabajar en una funcionalidad o característica durante un proyecto. Suele ocurrir especialmente por omisión; es decir, nos dejamos cosas sin hacer cuando se echa el tiempo encima, o porque no las consideramos importantes. El problema es que todo esto suele retornar al cabo del tiempo en forma de defectos, deuda técnica o simplemente trabajo pendiente, y en muchas ocasiones supone un inconveniente y un esfuerzo mucho mayor que si lo hubiésemos solucionado en su momento.

Definir explícitamente qué significa que algo esté “Hecho” (e intentar cumplir esa definición), es fundamental para evitar estas situaciones. Es lo que intenté resaltar en mi Lightning Talk del pasado jueves 12 en la conferencia XP2011; creo que la presentación refleja bastante bien el concepto:

Posted: 16/5/2011 14:13 por Jose Luis Soria | con no comments
Archivado en: ,,
The Spanish version of the Scrum Guide is now available

The Scrum Guide, written by the Scrum creators Ken Schwaber and Jeff Sutherland, represents the official Scrum Body of Knowledge, and is an essential resource if you want to begin learning about the framework, or to clarify any occasional doubt.

It has been translated to no less than 20 languages, and, although it was already available in Spanish, it has just been released a new version which represents a significant improvement on the translation, and which has been brought up to date according to the last English original.

It has been a pleasure for me to take part in the translation effort, and I hope that the outcome will be valuable for many people… so I encourage you to visit scrum.org and have a look to the Scrum Guide in Spanish.

 

Scrum.org-small2[5]

Ya está disponible la Guía de Scrum en Español

La Guía de Scrum, escrita por los creadores de Scrum, Ken Schwaber y Jeff Sutherland, constituye la Base de Conocimiento oficial de Scrum, y es un recurso imprescindible para comenzar a aprender sobre el marco de trabajo, o como herramienta de consulta puntual que ayude a despejar dudas.

Ha sido traducida a más de 20 idiomas, y aunque ya estaba disponible en Español, acaba de ser liberada una versión que supone una mejora sustancial en la traducción, y que ha sido puesta al día a partir del último original en Inglés.

Ha sido un placer para mí poder colaborar en dicha traducción, y espero que sea de utilidad para mucha gente… así que te animo a que entres en scrum.org y eches un vistazo a la Guía de Scrum en Español.

 

Scrum.org-small2

Recursos sobre integración de Project Server y TFS 2010, incluso para proyectos ágiles ;-)

Las características de integración entre Project Server y TFS, liberadas con el SP1 de TFS, permiten compartir información de forma sencilla y transparente entre los equipos de desarrollo y los gestores de proyecto, de modo que cada uno de ellos además va a poder seguir trabajando en la herramienta que le resulte más natural y productiva.

Es bastante típico, sobre todo al ver que algunos elementos de trabajo en TFS permiten introducir información de horas, preguntarse si TFS puede utilizarse para que los desarrolladores reporten el avance en el proyecto desde el propio TFS. Utilizando sólo TFS esto no es fácil de conseguir, ya que, aunque en la mayoría de las plantillas de proceso tenemos la posibilidad de actualizar las horas trabajadas en una tarea, no es posible indicar información adicional necesaria, tal como las fechas concretas en las que se han realizado dichas horas.

Por si te lo estás preguntando al leer todo esto, y crees que he tenido una crisis y me he pasado del agilismo al command & control, quiero recalcar que es perfectamente posible ser ágil, y a la vez beneficiarse de usar Project Server. De hecho el equipo estará incluso menos interrumpido y podrá dedicarse mejor a lo suyo, que es la entrega de valor. Es una percepción errónea muy común, pensar que las personas y herramientas dedicadas a la gestión de proyectos a alto nivel en una organización, deben desaparecer si se introducen prácticas ágiles en ella.

Por muy ágiles que seamos en cualquier proyecto en concreto, siempre habrá trabajo de coordinación entre proyectos, de lanzamiento de los mismos, de gestión a nivel organizativo, de mantenimiento del portfolio de proyectos…, y en definitiva de optimizar y sincronizar los esfuerzos que los distintos equipos vayan llevando a cabo. Esto no impide que cada equipo pueda trabajar con Scrum o beneficiarse de las prácticas ágiles; los problemas vienen cuando los gestores de proyecto intentan controlar demasiados detalles, e imponen decisiones relacionadas con el trabajo de desarrollo, que deberían ser tomadas por el equipo.

Por otra parte, un desarrollador ágil estaría cometiendo asimismo un error si no favoreciese la visibilidad de la información necesaria para el seguimiento de proyecto a nivel organización. El control empírico de procesos, que es el corazón de Scrum y de otros modelos ágiles, tiene en la visibilidad su primer requisito. Y si la visibilidad es vital para la buena marcha de un proyecto, más aún lo es un nivel por encima, a la hora de trabajar en los distintos proyectos en conjunto.

Todo esto queda ilustrado de forma muy sencilla en el escenario descrito en los siguientes enlaces, que constituye uno de los modos de funcionamiento de la integración de TFS con Project Server:

Para aprender más acerca de la integración de Project Server y TFS 2010, son útiles los siguientes enlaces:

Además de todo esto, incluyo los enlaces y las diapositivas relacionadas con la sesión que tuvo lugar en marzo en Madrid, y en la cual hablé acerca de la gestión de proyectos en general, Project Server y TFS, y cómo integrar ambas herramientas. Ojo porque se trata de la versión extendida, de 4 horas, de la sesión que posteriormente dio Ibon en evento “Destino la Nube” Smile.

Grabación íntegra y resumen del evento: http://www.globbtv.com/microsite.aspx?id=12&cmd=0&cat=111

Diapositivas:

Some resources about Project Server and TFS 2010 integration, even for agile projects ;-)

Project Server and TFS integration feature pack, released with TFS SP1, enables information sharing in a simple and transparent way between development teams and project managers, while everyone being able to continue working with the tool that suits better his needs.

It is very common, specially after realizing that some work items in TFS can receive information about worked hours, to ask oneself if TFS can be used by developers to inform about the progress made on the project. This is not easy to achieve by only using TFS; although most process templates allow us to update worked hours on a task, it is not possible to provide some necessary information, like the actual dates when these hours were worked.

In case you were wondering, while reading, if I’ve suffered a crisis and I’ve stepped from agile to command & control, I’d like to emphasize that it’s perfectly OK to be agile, and at the same time benefit from using Project Server. In fact, the team is going to be less interrupted and thus they’re going to be able to work more on delivering value, which is what they are supposed to do. It is a common misconception to think that people working on high level project management within an organization should move away if agile practices are adopted into it.

No matter how agile we are in any particular project, there always will be some work of coordination between projects, kick-off, enterprise-level management, portfolio maintenance…, and at the end, of optimizing and synchronizing the efforts which each team is performing. This doesn’t impede each team from working with Scrum or from benefiting of agile practices; in fact, trouble usually comes when project managers try to take control of too much details, and impose decisions related to development work, which should be left up to the team.

On the other hand, any agile developer would be mistaken if he didn’t facilitate visibility of the information, necessary for project tracking at the organization level. Visibility is the first requirement for empirical process control, which is the heart of Scrum and other agile models. And, if visibility is a key for assuring any project’s good health, it is even more important one level higher, when working on different projects as a whole.

These concepts are well described in the scenario presented in the following links, which is one of the ways the TFS and Project Server integration works:

If you want to learn more about Project Server and TFS 2010 integration, these links will be useful:

Besides that, I'm including the links and slides from the session that took place last March in Madrid, where I spoke about project management in general, Project Server and TFS, and integrating them. Warning: it's the extended version, 4-hour long, of the session given later by Ibon at the event “Destino la Nube” Smile (everything in Spanish).

Entire recording and summary of the session: http://www.globbtv.com/microsite.aspx?id=12&cmd=0&cat=111

Slides:

Diez buenas razones para asistir a un curso Professional Scrum Developer

 

ProfessionalScrumDeveloper_500px

 

Coincidiendo con la ScrumWeek Madrid 2011, se va a realizar el primer curso Professional Scrum Developer .NET en España, organizado por Plain Concepts (impartido por Rodrigo y un servidor), y con el apoyo de Microsoft.

Me gustaría resumiros por qué os puede interesar un curso PSD, y qué os puede aportar de valor a los que estáis trabajando como desarrolladores en proyectos Scrum o tenéis pensado empezar a hacerlo.

En cuanto a los cursos en general:

1. PSD es un curso orientado específicamente a desarrolladores. La mayoría de los cursos Scrum que se ofrecen, suelen ser generalistas y presentan todos los roles sin profundizar en ninguno en concreto, o se centran más en el ScrumMaster. PSD está diseñado para desarrolladores en un equipo Scrum, que al fin y al cabo constituyen la gran mayoría de los comprometidos en un proyecto.

2. Un equipo Scrum es multi-funcional; debe ser capaz de afrontar cualquier tarea que sea necesaria para convertir el compromiso adquirido en un incremento de valor en cada Sprint. En un curso PSD se tratan prácticas y herramientas que facilitan esta multi-funcionalidad, no sólo relacionadas con la programación, sino también desde el punto de vista de la arquitectura, las pruebas, la gestión de defectos y otros muchos aspectos a los que un equipo, y por lo tanto sus miembros, se enfrentan durante un proyecto.

3. Un curso PSD es fundamentalmente práctico. Por lo general, la mejor forma de asentar los conceptos que se aprenden es aplicarlos en la práctica, y en un curso PSD vas a hacer precisamente esto, trabajando en equipo, utilizando desde el principio las prácticas y herramientas presentadas, y empleándolas en construir incrementos de valor tal y como se haría en un proyecto real.

4. Durante un curso PSD se realiza una inmersión total en Scrum. No sólo se presentan los elementos que constituyen Scrum, además se trabaja durante varios días en el marco de un proyecto, realizando Sprints y el resto de prácticas de Scrum como reuniones de planificación de Sprint, retrospectivas y demos. Se obtiene una experiencia Scrum completa.

5. Un curso PSD se basa en la definición correcta de Scrum, tal y como fue concebido por Ken Schwaber y Jeff Sutherland, y está recogido en la Scrum Guide. Se podría discutir bastante acerca de si es posible o beneficioso modificar Scrum, pero al menos al terminar un curso PSD, tendrás la base correcta sobre la que comenzar a trabajar y a perseguir mejoras.

6. Durante el curso se tratan específicamente disfuncionalidades, y dificultades típicas que suelen suponer un problema a la hora de aplicar Scrum en proyectos reales. Por lo tanto cuando aparezcan los problemas, tendrás un criterio que te guíe en la búsqueda de soluciones.

7. Uno de los mayores atractivos del curso es la interacción con los demás asistentes. No sólo te vas a divertir, sino que vas a aprender un montón de la experiencia de compartir varios días trabajando en equipo con personas que tienen diferentes puntos de vista y modos de enfrentarse a los problemas.

En cuanto a los cursos PSD.NET en particular:

8. PSD.NET tiene el respaldo oficial de Microsoft. Ha sido desarrollado por Scrum.org y Microsoft en conjunto, y es EL CURSO con mayúsculas para Visual Studio 2010. No hay más cursos sobre Visual Studio 2010 y ALM en los que Microsoft haya participado en el desarrollo; éste es el del grupo de producto de Visual Studio.

9. Es el único curso respaldado por Microsoft en el que se trata Team Foundation Server a fondo, desde la perspectiva del desarrollador. Sólo existe un curso oficial en MSLearning para TFS, pero está centrado en administración.

Y por último, pero no menos importante:

10. Asistir al curso te la la posibilidad de obtener la certificación PSD.NET, una certificación reconocida internacionalmente por la industria que demuestra el conocimiento adquirido acerca de cómo desarrollar software con Scrum en la plataforma .NET. Pasar la evaluación es duro, pero con la ayuda del curso irás bastante bien preparado.

 

Después de escribir el título del post, se me han ocurrido un par de razones más que aplican al curso concreto de la ScrumWeek Winking smile:

11. Al ser el primer curso en España, queremos que se pueda beneficiar del mismo el máximo numero de personas posible. Por esta razón tiene un precio muy ajustado que supone un 50% de descuento sobre el precio oficial recomendado.

12. Por si el Inglés es un impedimento para ti, el curso va a ser en Español. Eso sí, los materiales, y el examen de certificación (si te animas a hacerlo), por ahora sólo están disponibles en Inglés.

 

Ánimo que todavía queda alguna plaza disponible. ¡Nos vemos en la ScrumWeek!

Ten good reasons to attend a Professional Scrum Developer course

 

ProfessionalScrumDeveloper_500px_thu

 

During ScrumWeek Madrid 2011, it’s going to take place the first Professional Scrum Developer .NET course in Spain, arranged by Plain Concepts (given by Rodrigo and myself), and with the support from Microsoft.

I’d like to summarize why a PSD course can be interesting for you, and why it can be valuable for any of you working as developers in Scrum projects or planning to do so.

About courses in general:

1. PSD is specific for developers. Most Scrum courses available tend to be generic, and present all the Scrum roles without going in depth into any of them, or taking care only of the ScrumMaster. PSD is designed with developers in mind, within a Scrum Team, who at the end make up the majority of the ones committing to a project.

2. A Scrum Team is cross-functional; it must be able of facing any task needed to turn the agreed commitment into a valuable increment each Sprint. During a PSD course you’ll deal with practices and tools that enable this cross-functionality, not only related to coding, but also from architecture, testing, bug management and many other aspects which a team, and thus, its members, face during a project.

3. A PSD course is mainly practical. Usually, the best way to lay down learned concepts is to apply them in practice, and during a PSD course you’re going to do exactly that, working as a team, using the presented tools and practices from the beginning, and employing them in building value increments the same way you’d do during a real project.

4. During a PSD course you’ll experiment a total immersion in Scrum. Not only the elements which make up Scrum are presented, but also work is done along several days within a project, doing Sprints and the rest of the Scrum practices like Sprint Planning meetings, Sprint Reviews and Retrospectives. You’ll obtain a complete Scrum experience.

5. A PSD course is based on the right Scrum definition, as it was conceived by Ken Schwaber and Jeff Sutherland, and is gathered into the Scrum Guide. You can discuss a lot about if it’s possible or beneficial to modify Scrum, but at least, once you’ve finished a PSD course, you’ll have the right base on which you’ll be able to begin working and pursuing improvements.

6. During the course we’ll specifically deal with typical dysfunctions and difficulties which usually represent a problem while applying Scrum for real projects. Therefore, when problems arise, you’ll have support that will guide you in the search for solutions.

7. One of the greatest advantages of the course is the interaction with the attendants. Not only you’re going to have fun, but also you’ll learn a lot from the experience of sharing several days, working as a team with people who have different points of view and ways of facing the problems.

About PSD.NET courses in particular:

8. PSD.NET is endorsed by Microsoft. It has been jointly developed by Scrum.org and Microsoft, and is THE COURSE for Visual Studio 2010. There’re not any other courses about Visual Studio 2010 and ALM where Microsoft has participated in developing; this is the one from the Visual Studio product group.

9. This is the only Microsoft supported course where Team Foundation Server is presented in depth, from a developer’s perspective. There’s only one official course from MSLearning for TFS, but it is centered around administration.

And at last, but not least:

10. Attending the course will give you the chance of obtaining the PSD.NET certification, a worldwide industry-recognized certification, that assures the knowledge about developing software with Scrum in .NET platform. It’s not easy to pass the assessment, but the course will prepare you pretty well to take it.

 

After writing the title for the post, I thought about two more reasons regarding specifically to the course being held during ScrumWeek Winking smile:

11. Since it’s the first course in Spain, we’d like to give to the maximum number of people the opportunity to take it. Because of this, it has a very tight price which means a 50% discount over the official recommended price.

12. If English is an issue for you, the course is going to be given in Spanish. But have in mind that materials and assessment (if you finally go for it) are in English at the moment.

 

There are still some remaining seats! See you at the ScrumWeek.

Más artículos Página siguiente >