domingo, 29 de junio de 2008

Aplicando Agile en un ambiente Waterfall


En esta excelente presentación, Michele Sliger, experimentada consultora en la aplicación de métodos ágiles en ambientes difíciles (léase acostumbrados a procesos orientados a fases divididas por competencias o producción de entregables documentales) cuenta sus experiencias y recomendaciones para comenzar a construir lo que ella llama "un puente" entre Agile y Waterfall.

Toca temas como: la resistencia que uno encuentra de parte de la gerencia, el negocio y el equipo (y cómo enfrentarla), los aspectos de cultura organizacional y asociados a los valores que uno tiene que tomar en cuenta, cómo manejar la relación no-ágil/ágil entre clientes y empresas proveedoras de software, cómo enfrentar las auditorías, reportes de estado, contabilidad de costos y performance reviews orientadas a los individuos en lugar del equipo, entre otros.

Finalmente, ofrece los siguientes 10 tips:
  1. Find an Executive Champion (ayuda bastante a remover impedimientos organizacionales)

  2. Socialize, Don't Evangelize (en lugar de predicar, uno debe buscar tener conversaciones donde se exponen ideas y experiencias)

  3. Use the Power of the Backlog (para organizar la producción de documentos requeridos, no sólo funcionalidades del software)

  4. Don't wait until everything's perfect (es decir, "lanzarse al agua" y empezar a aplicar el enfoque ágil)

  5. Use the "Barely Sufficient" Guideline (tener claro qué es lo que requiere la audiencia, en cuanto a documentación sobre todo)

  6. Invite Non-Agile Representatives to all Agile Planning Meetings (para comprender los entregables que el equipo necesita de otros equipos no-ágiles)

  7. Establish a Rythm of Inspection and Adaptation (para mejorar poco a poco; muy relacionado al punto 4)

  8. Send Agility Up the Chain (comunicar los logros a lo largo de la organización)

  9. Pay Attention to Behaviors (para no volver a los hábitos y valores anteriores)

  10. Include Everyone in the Project Retrospective (para mejorar no sólo al interior del equipo sino en toda la organización)

Dentro de mi experiencia, me he enfrentado con muchos de los obstáculos que se mencionan en la presentación, y he llegado a varias de las mismas conclusiones, por lo que estoy seguro de que aquéllos interesandos en aplicar Agile en ambientes tradicionales y no tienen claro por dónde empezar, pueden encontrar aquí un buen punto de partida.

viernes, 27 de junio de 2008

Curso Certified ScrumMaster fue todo un éxito


Esta semana se llevó a cabo, por primera vez en Lima, un curso oficial Certified ScrumMaster. El instructor fue Tobias Mayer y realmente fue una experiencia única y bastante enriquecedora. Partiendo de las dinámicas de grupo que aplicó Tobias para que todos experimentáramos los valores y principios de Scrum, pasando por las historias que contó de su trabajo aplicando Scrum en Yahoo! y Business Week, sumado al aporte de cada uno de nosotros y culminando en una suculenta cena en Antica, fueron dos días bastante productivos, en los que compartimos muchas ideas, opiniones e inquiedudes con Tobias y con todos los asistentes.

Gracias a todas la personas que hicieron esto posible: Deusdit Correa y la gente de Voxiva, el Capítulo PMI de Lima, el Colegio de Ingenieros, Tobias y todos los asistentes al curso.

Por lo experimentado en esos dos días, estoy seguro que se vienen muchas cosas interesantes aquí en nuestro medio en lo concerniente a la aplicación de métodos y prácticas ágiles de desarollo. Estén atentos!

viernes, 9 de mayo de 2008

Introducción a OSGi


Con el lanzamiento de SpringSource Application Platform y el creciente interés de los fabricantes de servidores de aplicaciones JEE en este framework (junto con la popularidad ya ganada de Eclipse como plataforma basada en OSGi) el interés por conocer y aprender los fundamentos detrás de esta tecnología es cada vez mayor.

Pero ¿qué es OSGi exactamente? Bueno, para decirlo en muy pocas palabras:

OSGi is a [component] framework for Java in which units of resources called bundles can be installed. Bundles can export services or run processes, and have their dependencies managed, such that a bundle can be expected to have its requirements managed by the container. Each bundle can also have its own internal classpath, so that it can serve as an independent unit, should that be desireable. All of this is standardized such that any valid OSGi bundle can theoretically be installed in any valid OSGi container.

Para este fin, recomiendo estos dos breves pero útiles artículos sobre el tema:

El primer artículo (del cual extraje la definición) introduce, mediante ejemplos concretos, los principales conceptos de este framework, con código cuya ejecución es demostrada en los contenedores Equinox y Apache Felix, mientras que el segundo explica los conceptos de OSGi dentro del contexto de Eclipse y su utilidad del lado del servidor.