miércoles, 16 de diciembre de 2009

Discos, transparencia y cuellos de botella

FOTO1 TIENDA DISCOS DEL PASO

Hace unas semanas fui a comprar unos CD’s a Plaza San Miguel (sí, soy uno de esos especímenes raros que todavía compra discos originales). Hacía tiempo que no iba por allá, así que estaba un poco desorientado, pues varias tiendas se habían mudado de sitio. Dando unas cuantas vueltas por el lugar, encontré Sonodiscos, una tienda que a simple vista se nota que no es parte de una cadena, sino que, más bien, aparenta tener tradición y ser parte de un negocio familiar.

El punto es que, cuando empecé a revisar los discos que tenían a la vista, me vi bastante desorientado. La razón es simple: ninguno de los discos tenía el precio adherido al empaque! Lo que exhibían era un código algo críptico y para nada indicativo.

El producto de esto es que, para un humilde melómano como el que escribe, se me hacía imposible evaluar el costo-beneficio de las posibles compras que deseaba realizar, pues cada vez que necesitaba saber un precio debía consultar con alguno de los empleados del lugar.

La situación llegó a un punto tal, que me comencé a sentir bastante incómodo por la falta de información, o más bien por la falta de rapidez en conseguirla y por el cuello de botella que se generaba con el personal de la tienda al intentar conseguirla.

Ahora, ¿cuál es mi punto con esta historia? Pues básicamente dos: el primero es que, muchas veces en los proyectos de software, pecamos de falta de transparencia. Usualmente, la razón de esto es el miedo. Miedo porque, si somos transparentes, el resto de personas nos juzgará o, peor aún, nos castigará por nuestros errores. Me atrevo a soltar la hipótesis de que, en el caso de Sonodiscos, el dueño podría tener miedo de la competencia y de que ésta acuda a su tienda a espiar los precios.

El segundo punto es que, al ocultar información, creamos cuellos de botella artificiales, innecesarios y que entorpecen la colaboración y la consecución de objetivos. En mi caso, tenía poco tiempo para visitar la tienda y mi objetivo era comprar la mayor cantidad de discos de artistas que no conociera mucho en el menor tiempo posible y bajo un presupuesto predefinido.

Lamentablemente, no conseguí mi objetivo a cabalidad. Lo siento Sonodiscos, pero la próxima vez iré directamente a Phantom. Aunque los precios a veces son ligeramente más caros, me ofrecen una mejor relación costo-beneficio para alcanzar mis objetivos.

martes, 13 de octubre de 2009

Entrevista con Diana Larsen

El evento Agiles 2009 que se llevó a cabo en Florianópolis, Brasil llegó a su fin la semana pasada. Fue una vivencia gratísima compartir conocimiento y experiencias con tanta gente interesada en la Agilidad, principalmente de Brasil y Argentina, así como también conocer a personas como Diana Larsen, autora del libro “Agile Retrospectives: Making good teams great!” y presidente del directorio de la Agile Alliance.

En esta entrevista, Diana nos habla sobre qué son las retrospectivas, de dónde vienen y cómo se estructuran.

Además toca algunos temas sociológicos, relacionados a las retrospectivas pero un poco más amplios y, finalmente, discute un poco sobre el futuro de la Agile Alliance y de Agile en general.






Powered by Podbean.com

miércoles, 9 de septiembre de 2009

En los negocios, ¿el tiempo es lo más importante?

No veo mucha televisión. Es más, ni siquiera tengo cable (!!??). Pero sucede que hace poco estuve mal de salud y tuve que pasar unos días en casa frente a la caja boba. Es así que descubrí este comercial de Interbank que me dejó un tanto intranquilo:



La dinámica de la publicidad gira entorno a la siguiente idea-fuerza: "En los negocios el tiempo es lo más importante." Si bien es obvio que el comercial está realizado en tono de burla o comedia, deja traslucir la que varios empresarios o ejecutivos piensan que es la mejor manera de gestionar a su personal, área o empresa.

Es decir, concentrarse en mantener a los empleados ocupados el 100% del tiempo, asumiendo que los objetivos planteados por los niveles superiores de la jerarquía son los correctos (sin una adecuada validación) y tratando de alcanzarlos lo más rápido posible, evitando crear espacios para el diálogo, la contrapropuesta y la generación de intercambios de opiniones que aporten valor. O visto de otro modo, desaprovechar la capacidad que cada persona tiene para crear, generar soluciones e ideas; en resumen, para innovar.

Veo varios problemas con esta forma de gestión. En primer lugar opino que lo más importante en los negocios no es el tiempo (a secas), sino generar valor en los clientes. Es decir ofrecerles productos o servicios de calidad que satisfagan sus necesidades. En segundo lugar está la suboptimización. El hecho de tener al personal ocupado todo el tiempo pierde de vista el objetivo real de lo que estamos haciendo y cómo podemos mejorarlo, alienta la separación entre las áreas funcionales de la empresa, la formación de colas de información (con las correspondientes demoras) y una presión excesiva sobre las tareas a realizar, lo que promueve una cultura de "tomar atajos" y acarrea una pérdida de calidad en las actividades que hacemos.

Una vez claro lo anterior, recién podemos empezar a discutir el factor tiempo. Obviamente, si nuestra competencia ofrece un producto o servicio con mejor calidad que la nuestra en la mitad del tiempo, estamos en problemas. Pero esto debe enfocarse como un problema sistémico, a modo de atacar las causas raíz que permitan generar soluciones y que eliminen los desperdicios dentro de nuestros procesos, teniendo en claro todo el flujo de valor, desde que una necesidad es detectada hasta que ésta es satisfecha.

jueves, 20 de agosto de 2009

CSP, ¿y ahora qué?

Hace unos días recibí la buena noticia de que había obtenido la certificación CSP (Certified Scrum Practitioner) de parte de la Scrum Alliance. Mi primera reacción fue de alegría y satisfacción, obviamente. No considero que sea una certificación fácil de obtener pues, a diferencia de muchas otras, lo que se evalúa es un cuestionario de unas 20 preguntas acerca de la experiencia que uno tiene aplicando (o al menos intentando aplicar) Scrum en un contexto específico. A diferencia de la certificación CSM, que sólo requiere llevar el curso (aunque próximamente será exigible un examen on-line de alternativa múltiple) y que tiene aproximadamente 56,000 personas certificadas en todo el mundo, la CSP sólo tiene alrededor de 600.

Una vez pasada la emoción, me empecé a preguntar qué es lo que vino antes y también qué viene después. Un paso lógico sería buscar obtener la CSC o CST, que no son nada fáciles (ni baratas, valgan verdades). Sin embargo, más que eso, en este momento me gustaría reflexionar un poco sobre la real utilidad de las certificaciones.

Hubo un tiempo en que buscaba obtener certificaciones de manera un tanto obsesiva, por varias razones: siendo valoradas en el mercado, usualmente llevan a un mejor sueldo y posición, demuestran el conocimiento que puedes tener en una determinada materia y por supuesto, ¡lo hacen sentir muy bien a uno cuando las recibe! No niego que me sirvieron de mucho, profesionalmente hablando. Pero la verdad es que de, de todo el conocimiento que adquirí estudiando para esos exámenes, una buena parte simplemente ha desaparecido de mi memoria, o para decirlo más elegantemente, no fue correctamente indexado y, por lo tanto, es inubicable.

La realidad es que para que el conocimiento sea realmente útil es indispensable acompañarlo de la experiencia. Es ésta la que permite validar lo aprendido, combinarlo en nuevas formas e incluso descartar aquellas cosas que no son tan válidas en la práctica. Ahora, todo esto suena muy obvio, ¿no? Sin embargo, muchas empresas no lo ven de esa manera. Se concentran únicamente en el certificado y no toman en cuenta la experiencia, confiando en que por poseer el cartoncito (o PDF) la persona será capaz de asumir los retos propios del trabajo. Esto sería similar a que se contrate a un gerente recién egresado de un MBA, ¡pero con ninguna experiencia gerencial!

Ahora, no estoy en contra de las certificaciones. Simplemente pienso que no es un indicador 100% fiable (quizás ni 50%) de lo que una persona puede hacer en el campo laboral y por lo tanto, considero que no debería jamás ser un requisito indispensable o exigible para un puesto relacionado al desarrollo de software. Las veces que he entrevistado gente (que han sido varias) he tenido mucho cuidado en este punto, llegando incluso a rechazar postulantes con muy bonitos certificados pero sin la experiencia necesaria o sin una personalidad que viera que encajaba adecuadamente con nuestra cultura empresarial.

jueves, 6 de agosto de 2009

Conferencia Internacional sobre Testing y Calidad del Software


Me llegó hace poco una invitación a esta conferencia, a llevarse a cabo en Bilbao, España a fines del mes de octubre. El programa se ve muy interesante. Desde mi punto de vista, una de las presentaciones que más destaca es la de Mary Poppendieck, una de las más importantes impulsoras del enfoque Lean en el mundo del software (Lean Software Development). 

Tuve la gran suerte de conocer a Mary durante el curso que dictó en Buenos Aires el año pasado, el cual fue una gratísima experiencia para mí. El conocimiento y la experiencia que destila con cada afirmación u opinión que vierte es realmente impresionante y digno de destacar.

Lamentablemte no podré asistir a esta conferencia, pero si alguno de ustedes trabaja con software embebido y está por allá durante esas fechas, creo que es un evento al que no puede dejar de asistir.

martes, 19 de mayo de 2009

Primer Curso Certified ScrumMaster en español en Lima


Durante los días 31 de agosto y 1 de setiembre de 2009 se dictará por primera vez en Lima el Curso de Certificación de Scrum (CSM) en idioma español, oficialmente reconocido por la Scrum Alliance.

Esta es una excelente oportunidad de llevar este curso, pagando la tercera parte de lo que cuesta en Estados Unidos o Europa. Será dictado por Alan Cyment, el único Certified Scrum Trainer nativo hispanoparlante en el mundo.

Toda la información sobre el curso, así como el formulario de inscripción, la pueden encontrar en la página de la empresa organizadora, Open Edge Technologies, de la cual formo parte.

Espero verlos allí!

miércoles, 22 de abril de 2009

Fundamentos de la Agilidad: Gente y Colaboración

Comparto con ustedes la presentación que brindé en el Lima Agile Day 2009, que por cierto fue un evento muy exitoso, y todo un orgullo para mí co-organizar y ser parte del mismo.

Mi objetivo durante la presentación fue tratar de responder las siguientes preguntas:
  • ¿Por qué es importante la gente en el desarrollo de software?
  • ¿Cómo cultivar un ecosistema ágil?
  • ¿Cómo reconocer en qué fase de madurez se encuentra un equipo de desarrollo?
Realmente es un tema amplio, por lo que el tiempo me quedó bastante corto. Espero poder profundizar algunos conceptos en las reuniones de Agile Perú, en este blog y en futuras charlas que organicemos.

jueves, 5 de febrero de 2009

Lima Agile Day 2009

[ACTUALIZACIÓN: La fecha confirmada del evento es el Sábado 18 de Abril de 2009]

La comunidad Agile Perú los invita al Lima Agile Day 2009. Este evento está dirigido a todos aquellos interesados en conocer y entender cómo aplicar las llamadas Metodologías Ágiles de Desarrollo de Software (tales como Scrum y Extreme Programming) de boca de algunos de sus más fervientes practicantes en nuestro país.

Acompáñanos a intercambiar conceptos, experiencias y buenas prácticas relacionadas a esta nueva manera de desarrollar software que tanta conmoción está causando en el mundo entero por los beneficios obtenidos mediante su aplicación: mejoras drásticas en tiempos de entrega, calidad, trabajo en equipo y satisfacción de los usuarios.

Fecha: Sábado 18 de Abril de 2009
Hora: 8:30 am a 1:00 pm
Lugar: Auditorio Cibertec, Av Salaverry 2255, San Isidro

INGRESO LIBRE (capacidad 150 personas) previo registro:

Agenda:

  • 8:30 - Registro
  • 9:00 - Presentación del Evento
  • 9:20 - Scrum, una nueva forma de desarrollar software (Deusdit Correa)
  • 10:05 - Fundamentos de la Agilidad: Gente y Colaboración (Gustavo Quiroz)
  • 11:00 - Cómo enfrentar la resistencia al uso de Metodologias Agiles (Raúl Uribe y Gustavo Véliz)
  • 11:45 - ¿Por dónde comenzar? - Primeros pasos aplicando técnicas ágiles (Abner Ballardo)
  • 12:25 - Retrospectiva y Cierre del Evento

Esperamos contar con tu participación!


viernes, 23 de enero de 2009

Como hacemos Scrum: Requerimientos


Algunos piensan que ser ágil quiere decir que no se tienen requerimientos escritos, que toda la comunicación entre usuarios/clientes y desarrolladores es verbal y que si no están usando User Stories, no se puede hablar de desarrollo ágil. Bueno, tengo que discrepar de estas tres creencias.

Hablaré en el contexto de un proyecto que desarrollamos, el cual consistía en construir una aplicación para una entidad del sector financiero. Esta entidad, como muchas otras similares, tiene procesos un tanto rígidos (por no decir burocráticos ni pesados) que guían sus proyectos de desarrollo.

Cuando iniciamos el proyecto, nos fue entregado un documento de casi 150 páginas en donde se describían en detalle requerimientos, mediante especificaciones de casos de uso y pantallazos de un prototipo previamente construido. ¿Qué hacer en estos casos?

El principio básico en todo esto es algo que les sonará familiar a muchos: LA COMUNICACIÓN. Es decir, debe existir un entendimiento común entre aquéllos que desean resolver un problema (usuarios) y aquellos que pueden resolver el problema (desarrolladores).

Para lograr ese entendimiento debe existir un canal amigable entre ambos frentes. En nuestro caso, lo que hicimos fue acordar reuniones dos veces por semana entre nuestro equipo y los analistas del cliente para conversar acerca del documento de requerimientos. Teníamos como objetivos:
  1. Compredener de qué diablos trataba la lógica de negocio a un nivel suficiente para que uno de nosotros actuara como Proxy del Product Owner en nuestras reuniones de planeamiento.
  2. Poder definir un Product Backlog en base a este documento.
  3. Priorizar el Product Backlog con los representantes del cliente.
El Analista Funcional del cliente se convirtió, casi sin darse en cuenta, en nuestro Product Owner y acompañó a nuestro equipo a lo largo de todo el proyecto, estando siempre dispuesto a absolver dudas y repriorizar ítems, cuando fuera necesario.

Aquí un punto clave es descomponer los casos de uso para poder llegar a un nivel de granularidad suficiente que permita planificar los ítems del Product Backlog dentro de cada iteración o sprint. La técnica que usamos fue considerar a cada escenario como un requerimiento o ítem distinto. Por ejemplo, si hablamos de un mantenimiento de países, los ítems (o stories) serían:
  • Consultar países por nombre
  • Consultar países por código internacional
  • Crear país
  • Modificar país
  • Inactivar País
  • Reactivar País
Otro punto importante son las demos o reviews del producto que se realizan al finalizar cada iteración. En nuestro caso, además de los analistas del cliente y de nuestro equipo, participaban los usuarios finales de la entidad financiera. Como es normal, al interactuar o apreciar el incremento de funcionalidad que se está presentando, a un usuario se le van a ocurrir muchas ideas de cómo mejorar o cambiar el producto. Es básico el poder manejar su expectativa y guiarlo sobre cuáles se van a poder incorporar y cuáles no (por razones de tiempo, costo y/o complejidad).

Lo que hicimos nosotros fue recoger todas las sugerencias e ideas, para posteriormente (o a veces durante la reunión misma) conversarlas con nuestro Product Owner. Aquellas que el equipo consideraba sencillas las incorporamos sin ningún problema. Pero aquéllas que se estimaba iban a tomar más tiempo, quedaron en el tintero para futuras versiones del producto.

Cómo hacemos Scrum


Cuando la gente comienza a aplicar métodos ágiles en un proyecto u organización, las preguntas más comunes son: ¿por dónde empiezo? y ¿cómo realizo esto o aquello? Entiéndase "esto o aquello" como algo que saben que se tiene que hacer pero no tienen mucha idea de dónde encaja dentro un entorno ágil: documentación, estimación, planificación, etc.

Es por eso que en esta serie de posts voy a contar un poco acerca de cómo usamos Scrum/Agile en los proyectos que desarrollamos en la empresa donde trabajo y de cómo aplicamos principios emparentados con agile o lean en la organización de nuestra área.

Trataré de tocar temas como: planeamiento, estimación, capacitación, gestión del talento, retrospectivas, documentación, requerimientos, testing, espacio de trabajo, etc.

Disclaimer: Las opiniones vertidas en esta serie de posts no representan la posición oficial de la empresa ni de los clientes involucrados (según el caso).

jueves, 8 de enero de 2009

LinkedIn usa Spring y Tomcat

Hoy encontre esta excepción mientras navegaba por LinkedIn:



Al menos están usando Spring!