Se viene Agile Open Buenos Aires 2010

En evento se llevará a cabo el sábado 13 de marzo en las instalaciones de la UNTref en el Centro Cultural Borges (Viamonte esquina San Martín piso 3).

En esta ocasión el tema convocante es «Calidad en el desarrollo de software».
Los interesados pueden obtener algo más de información (pero no mucha, pues al ser open space no hace falta :-)) en http://www.agiles.org/agile-open-buenos-aires-2010—calidad.

Nos vemos el 13!

Saludos!
Nicolás

Agile Open Bahía Blanca 09

Salimos desde la terminal de Retiro junto con JuanG el viernes por la noche. Arribamos a Bahía hacia las 8 de la mañana del sábado. En la terminal de Bahía nos encontramos con Esteban y Julian que venían desde Tandil y luego en compañía de Jerónimo (uno de los organizadores locales) nos dirigimos hacía la biblioteca central de la Universidad nacional del Sur.

El evento arrancó a las 9.30 y tuve el honor de facilitar la apertura. Fue una muy linda experiencia.

Hubo alrededor de 90 participantes y si bien durante el día hubo algunas deserciones como suele suceder, en el cierre hubo más de 70 personas. Hubo alrededor de 30 sesiones propuestas, algunas de las cuales fueron unificadas al momento de armar la grilla, quedando finalmente alrededor de 20 sesiones efectivas.

Durante la mañana participé de una sesión sobre los distintos roles dentro de los equipos ágiles y de ello estuve en una sesión interactiva facilitada por JuanG en la que trabajando con globos repasamos la importancia entender claramente criterios de aceptación de los productos que generamos. Ya por la tarde estuve en una sesión que titulada con algo similar a “Documentación en contexto ágil” resultó un poco controvertida cuando uno de los participantes comentó que en sus proyectos tenía analistas trabajando un sprint adelantado escribiendo user stories detalladas. A continuación estuve en un sesión en la que hablamos sobre los pasos y opciones para la adopción de agile en organizaciones que trabajaban en forma “cascadosa”.

En el último slot del día dicté un workshop sobre user stories del cual participaron alrededor de 25 personas. De aquí puede descargarse el slide deck con los puntos más importantes que repasamos durante la introducción teórica del workshop.

Luego del cierre (a cargo de JuanG) Victor “Ferruchi” nos llevo en un mini city tour que termino con una picada en un bar muy pintoresco a escasos metros del teatro munipal de la ciudad. Hacia la 9 nos transladamos a la casa de Ariel Trellini nos los huddleanos preparaban un asado. Finalmente pusimos fin a nuestra jornada degustando una copa de vino y un sandwinch de asado entre juegos de dardos y charlas geeks. A las 10.30 subimos al micro que nos trajo de vuelta hacia Baires.

Realmente quedé muy contento con el evento y debo admitir que superó mis expectativas: mucha gente, excelente organización y muy buen contenido en las sesiones.

http://www.box.net/shared/gtdn1ttsvo

After Agile Open La Plata

Last Saturday I took part on this event. There were about 70 participants. During the morning there were some introductory sessions and something interesting happened: there were a session called «implementing agile», there were about 20 people but none of them know about agile, so one of them went to the session next door (where I was) and ask for somebody to talk about the topic, there I went. At the same time JuanG was giving an introductory session about Lean.

There also some classic sessions like: agile & cmmi, distributed agile and intro scrum.

After the lunch we make the classic «Scrum Bird Game» where I was the facilitator. It was much more organized than the one we did at Tandil, I think that because in this occasion there were much less people (4 teams, 5 members each) . During the last iteration of the game I had an idea for future games: change the birds between teams, this could be compared to common situation in software development projects: work on a product developed by someone else.

Finally I attend to a session about estimation were I had the pleasure to share experiences with «the huddleans» : Guille and DiegoF.

I like the event very much, it was over my expectations. My congratulations to Martin, Horacio, Liliana and the other members of the local organization staff, great work!!!

More about Agile Open Tandil (estimation session)

Two folks asked me to write a bit more about the afternoon sessions, especially about the estimation one and here I go, I will resume what we talk in that session.

The format of the session was open, there were more that 20 people and each talk about the way he uses to estimate.

In may opinion the natural process is to first estimate the size, then the effort, and finally considering a certain team you can deduce duration and cost, but not everybody uses this process (or unless not explicitly), some stated to estimate duration at once.

In few words, the following methods were mentioned:

  • Parametric methods (or magic formula-based methods that is the way I like to call them), basically this methods propose to analize your requirements and count points to determinate the size. Then you use that points in a formula that adds some variables to adjust the estimation based on particular information of the project (programming language, experience in similar projects, etc). In this category are Cocomo methods.
  • Expert opinion and manager manipulation methods (this original name is mine): maybe this is one of the most commonly used methods. Several people in the session told to used it and I know that some colleagues in my company use it all the time. It is very simple, a manager (boss, project leader, project manager or whatever you call it) ask an expert (some time not so expert) to estimate certain items. Then the manager adds some buffer and that’s it. Not very formal, not very precise but fast and easy.
  • Several-experts-based methods: I know this is a very ambiguous name, but that is the idea, I want to use this name to refer several different methods that include Delphi methods and planning poker (I think that planning poker is a Delphi variant). In these methods you have a team of experts (when I say experts I am just referring to people that is capable of give a realistic estimation because of his experience). Something very interesting of these methods is that under certain conditions these methods get a probabilistic support: if there are 4 or more experts and each expert opinion is independent, then we can apply the central limit theorem and get an confidence interval.

In my case I always try to use methods in the third group, in particular to estimate the complete product backlog at the start of a project I prefer to use Wideband delphi and then when estimating tasks at the begining of an iteration I prefer planning poker. During the session I mention a spreadsheet I use for Wideband-Delphi and after the session some people asked me to share the spreadsheet, so I published it here.

When I started writing this post I get the idea of preparing an estimation workshop, I think it could be an interesting activity, well I will analyze it.

That ‘s all, see you.

After Agile Open Tandil

Well, finally I get some time to write about it. The meeting took place at the Unicen building in the center of the city.

We started about 8 in the morning setting up the place. During the morning we had only one session:»Scrum bird game», 4 product owners (jgabadini, dfondevila, mbelnicoff and me), and about 60 participants divided into 8 teams. I took us about 2 hours. Some retrospective items after the game:

  • Several teams try to build the birds assuming things about the requirements without asking the product owners
  • After the chaos of first iteration most teams improved their organization and that allow them to improved their performance.
  • It was not a good experience to have one product owner for two teams at the same time. The product should be always available.
  • The products should be full tested by the product owner, I let the team to test the flexibility of the bird :(.

After the lunch break there were three slots of 4 sessions each. I took part of the following:

  • How to work less: the idea was to debate about how collaboration with the customers can make us work less as a result of delegating some task on the customers/users. I gave the example of UAT written and executed by the user.
  • Estimation methods: it was an open session were each talk about the way that use to estimate.
  • Tools for agile development: after talking about different tools, we agreed that in every project is necessary to have certain tools: a source code repository (svn, cvs, whatever), a tracking tool to manage issues, risks defects, etc, and a wiki to use as a knowledge base.

I am very satisfied with the results and I hope to see some folks from Tandil next month in the La Plata.

That is all, see you.

Agile open Tandil first results

We have just finished the retrospective and these are the main items we got:

  • Organize some agile activities in Bahia Blanca
  • Organize monthly meetings in for the agile community in Tandil
  • Organize some workshops about agile implementation
  • Document a real case on agile implementation by the Tandil ‘s community
  • Promote integration activities between the different agile communities in Argentina.

Agile Open BsAs 2009 – Sessions part 3

This is the last part:

Session 4: What should I do with my junior developers?

One of the principles of the agile methods is the self-organized teams, but this is not an easy question when you have junior people in your teams. How much seniority is required to have a self-organized team? How can a person be able to estimate a task that he never performed? How to prevent this inexperienced people to get stuck when working with new things?  These were some of the questions that were discussed. In the next few lines I will share the two main ideas I get clear from the session.

1. Don’t let them get stuck

When  juniors start a task they may get stucked and there are two bad situations when this occur:

  1. they start asking all the time, interrupting the work of the rest of the team or
  2. they try to solve the impediments by themselves and waste too much time

One useful technique to prevent this situations is to use pair programming, making pairs senior-junior but also junior-junior, this last combination gives me great results in my teams. And to complement this it could interesting to make frequent «pings», I mean every three or four hours just see how they are doing with their tasks.

2. Allow them to choose their tasks

This could sound strange, how can they choose their task when maybe they don’t know how to perform them?. Well the key is how you create the sprint backlog. First of all try to split the work in small tasks, second when the tasks are asigned let the experienced developers to choose first. This way the experienced developers will choose the difficult tasks, and when the juniors have to choose the will have only simple tasks. Another benefit of this approach is that juniors will be able to estimate these simple tasks. Despite of this, it could happen that a junior choose a complex task that you know he don’t have the knowledge to perform it, in that situation make him some questions about how he think he will complete the task in order to make him realize that that task is not the best for him.

That’s all, more after the next Agile Open.

Agile Open BsAs 2009 – Sessions part 2

Here are some others sessions I was:

Session 2: How can I evangelize my team?

This session was proposed by me. During the time I have been practising agile I have found some people that do not «believe» in some practices and because of that they do not perform the practices that most team members agreed to follow. Example: in a team of 8 members there is one that do not like sticky-notes, he prefer to track his work using Excel spreadsheets. Of course the team leader could oblige him to use the sticky-notes, but everybody knows that that is not the best alternative. So what should we do in these cases?

There were about 30 people in this session and it was very useful for me. I get some interesting ideas to try with my teams, here are some of these ideas:

  • Try to change the roles along the iterations so everybody can experience the different task and responsabilities
  • If somebody does not perform some of his tasks, you (as a leader/scrummaster) take care of the task. This way you show the importance of the task.
  • I was used to implement a punish policy, for example, when somebody brakes a Build he must pay crosands for the whole team. A better alternative to punish can be prizes, for example if the build remains successful during the whole team, the company rewards the team with crosands.

Session 3: Popurri of Tools

This session was proposed by Juan Gabardini It was very interesting. I recommend you to read Juan post about it.

To be continue…