Experiencias

Leyes

Las Leyes de Mariana para implementar Scrum

¿quién es Mariana? Fiel al mejor estilo periodístico que no da a conocer sus fuentes, muchas veces por razones de ética profesional y muchas otras para fastidiar de manera divertida a la audiencia, no revelaré su verdadera identidad . Llamémosla simplemente “Mariana”. Procedo a desarrollar la ancécdota.

“Mariana” es una alumna que asistió a uno de los cursos que dicté este año. Al finalizar el curso, junté todas mis pertenencias, entre ellas el material que usualmente utilizo como cartas, fichas, post-its, rollos de cinta, marcadores, etc. Más tarde cuando llegué a mi casa, al a acomodar las cosas para guardarlas encontré este papel:

Leyes infalibles para Implementar Scrum
1. Hacerlo de forma Iterativa, Incremental
2. No querer abarcar todo desde el principio
3. Controlar las expectativas de los primeros Sprints|
4. No abrumarse frente a los impedimentos que van a surgir (hasta ahora ocultos)
5. Tener coraje, experimentar y dejar experimentar – Errar no es malo, lo malo es no aprender del error.

Bueno, la verdad es que yo tampoco supe quién fue el autor o la autora de esta nota porque no estaba firmada. Solo adivino que fue una mujer porque dobló el papel sospechosamente muy prolijo y por eso adopté llamarla “Mariana”. Hoy lamento que no haya compartido estas ideas con sus compañeros durante el curso, hubiera sido algo muy productivo,  pero al menos lo bueno es que entendió de qué se trata llevar Scrum a la práctica.

photografía: http://www.flickr.com/photos/limaoscarjuliet/225249268/

Bossa Nova

Música ágil para mis oidos

Anoche en las oficinas de Microsoft tuvo lugar un atípico Ágiles@BsAs.

Ya de entrada sabíamos que venía desafiante la jornada, que estaba relacionada con sacarnos de la zona de confort para experimentar las diferentes sensaciones y resultados bajo un paradigma de comando y control contrastado con uno de colaboración y auto-organización.

Comenzamos apenas pasadas las 19hs armando equipos de “especialistas”. Había diferentes estilos de percusionistas (3 tipos diferentes) y cantantes. Nos dividieron en 4 grupos: Percusioninstas 1, Percusioninstas 2, Percusioninstas 3 y Cantantes, por especialidad digamos. Nos enseñaron las diferentes partes de una misma canción y nos evaluaban en función de los conocimientos que adquiríamos al respecto.

Lo interesante era que las consultas no estaban bien vistas por la empresa. (al relativamente común)

Luego llegó la hora de tocar en público. Nos integraron a un especialista de cada grupo en un único grupo musical… y a tocar. Fue un verdadero desastre. Horrible.

Inmediatamente después, lo intentamos de una forma más ágil.

Nos dividimos en equipos, ya no había áreas de especialización sino grupos musicales. Cada cual podía tomar el rol que mejor le salga (a mi me pusieron a cantar,.. así que imagínense lo malos que eramos. jaja).

Entregamos en tres iteraciones incrementales. El resultado estuvo genial. la canción se reconocía, había buen humor y terminamos haciendo aplaudir y bailar al auditorio. Muy divertido.

La retrospectiva?

El primer modelo lo asociamos al modelo organizacional tradicional, jerárquico y dividido en áreas de especialización. Los resultados fueron bastante pobres, hubo poca colaboración, las métricas individuales que se utilizaron eran irrelevantes con respecto al resultado final. No me gustaría pasarme la vida trabajando así. Claramente.

Luego pasamos a un modelo mucho más colaborativo y de trabajo en equipo. Eliminamos las especializaciones y comenzamos a medir el resultado final, en forma incremental. Fuimos agregando complejidad y ayudándonos entre nosotros. Adoptando los roles en los que más cómodos nos sentíamos y auto-organizándonos. El resultado fue algo así como lo siguiente…

Bueno, no tanto, pero abismalmente superior al alcanzado en primera instancia.

Excelente el trabajo de Pablo y Rick creando, organizando y facilitando la actividad. Esperemos verlos en Ágiles 2010. :)

OSX Leopard

Instalando Rails 3 en OSX Leopard

Finalmente pude instalar Rails 3 en Leopard (OSX 10.5.5). Aparentemente era algo sencillo de hacer, pero el upgrade de Ruby y de RubyGems en Leopard no funciona del todo bien. Por lo tanto, luego de 12 horas, puedo decir que tengo Rails 3 funcionando, pero me hizo trabajar bastante.

Para que sirva de referencia, como bitácora o para que otro no transpire como lo hice yo hoy, lo dejo aquí registrado.

Antes de comenzar, la versión de OSX sobre la que lo hice es la 10.5.5 (Leopard):


El primer paso -antes de comenzar- es intalar MacPorts y esta versión específica de Xcode.

Inmediatamente después debemos eliminar del sistema (casi) todo Ruby y RubyGems:

sudo rm -r /System/Library/Frameworks/Ruby.framework/
sudo rm -r /Library/Ruby
sudo rm /usr/bin/ruby
sudo rm /usr/bin/gem

Luego instalamos RubyGems a través de MacPorts:

sudo port install rb-rubygems

Ya tienes RubyGems 1.3.5 en tu sistema, pero debemos actualizarlo a la versión 1.3.7. “sudo gem update –system” no hará el trabajao, por lo que debemos hacerlo de una manera alternativa:

sudo gem install rubygems-update
sudo update_rubygems

Terminados esos pasos, ya podemos proceder con la instalación de Rails3:

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
sudo gem install rails --pre

… y de esta manera, ya debería estar Rails 3 instalado en tu leopar 10.5.5:

Agregando columnas auto increment

Estoy trabajando en una demo/tutorial sobre desarrollo evolutivo de bases de datos y sus herramientas.

Ya que ayer instalamos un mysql en un cliente para operaciones de software configuration management, se me ocurrió utilizar mysql para el tutorial/demo en cuestión.

Me encontré con algo curioso al intentar agregar una columna auto-incremental a una tabla existente.

Dada esta tabla:

create table program (required_solo_hs int not null,
required_inst_hs int not null,
required_hs int not null

Intenté agregar una columna id:

alter table program add column id int not null auto_increment

Obteniendo el siguiente error;

Script line: 1    Incorrect table definition;there can be only one auto column and it must be defined as a key

La solución es simplemente indicar que dicha columna además de auto increment es primary key:

alter table program add column id int not null auto_increment key;

Una vez más.. posiblemente a alguien le resulte útil.

Windows Vista 64bits & MySQL: ERROR 1045 (28000): Access denied for user ‘root’@'localhost’

Hoy en Kleer, pasamos por la experiencia de instalar MySQL 5.1 por primera vez en Vista 64bits. Lejos de ser una instalación amena, como las que estamos acostumbrados, esta nos hizo transpirar la gota gorda.

Luego de bajar el instalador de 64bits, instalarlo y configurarlo, el asistente de configuración no paraba de dar el error:

ERROR 1045 (28000): Access denied for user 'root'@'localhost'

Probamos infinidad de soluciones, pero ninguna funcionó. Salvo la siguiente:

  1. Parar el servicio “MySQL” desde “Control Panel->Administrative Tools->Services”
  2. Ir a “C:\Windows\System32″
  3. Buscar el file cmd.exe, hacer click derecho con SHIFT presionado y seleccionar “Run as administrator”
  4. Ejecutar el siguiente comando:
    mysqld --skip-grant-tables
  5. Dejar esa ventana corriendo
  6. Abrir otra ventana de terminal, esta vez NO como administrator: “Start->Run->cmd” ENTER
  7. Ejecutar el siguiente comando:
    mysql -u root mysql
  8. Walá! Estamos adentro. Ejecutar la siguiente sentencia, cambiando MyPass por un password real que quieras setear:
    UPDATE user SET Password=PASSWORD('MyPass') where USER='root';
    FLUSH PRIVILEGES;
  9. Salir:
    exit
  10. Cerrar la ventana
  11. Cerrar la ventana que estaba corriendo como administrator
  12. Abrir el task manager y matar todos los procesos “mysqld” (debería haber uno solo, de otro usuario “Administrator”)
  13. Levantar el servicio desde “Control Panel->Administrative Tools->Services”
  14. Conectarse nuevamente, esta vez como lo veníamos haciendo:
    mysql -u root -p

Con este último paso, ya deberían estar conectados sin problemas. Espero esta solución pueda servirle a alguien y se ahorren un buen tiempo.

Agile Open Buenos Aires 2010 - Calidad

Agile Open Buenos Aires 2010 – Calidad

Excelente experiencia la del AO Buenos Aires del 13 de Marzo. Puedo decir que he conocido mucha gente y muy buenas experiencias ajenas. Dejo aquí el link a las fotos del evento: http://bit.ly/coCnnA

Saludos!