Invitado especial

En la clase de hoy de Algoritmos y Programación 3, estará como invitado especial Mariano Martinez Peck, un joven ingeniero con quien tuve el gusto de trabajar tiempo atrás. Actualmente Mariano se encuentra haciendo un doctorado en Francia y aprovechando su visita al pais estará compartiendo con los alumnos de la materia su experiencia en el doctorado y también hablará un poco sobre Pharo y metaprogramación.

Como siempre, las clases son abiertas con lo cual los interesados pueden darse una vuelta por el aula 201 de la sede Paseo Colón de la Facultad de Ingeniería a partir de las 19.00 hs.

Nos vemos.

Culturas organizacionales

El pasado martes asistí a encuentro mesual de la comunidad ágil de Buenos Aires. El encuentro trató sobre Culturas Organizacionales y estuvo facilitado por Alan Cyment. Más allá del contenido del encuentro (que fue realmente interesante) me resultó muy entretenida la dinámica del encuentro. El encuentro comenzó con el juego del vampiro de Estraburgo y luego de una breve reflexión hicimos la dinámica de la tribus para exponer nuestras propias opiniones sobre “la definición de cultura organizacional”. Después de esto Alan hizo una introducción a la teoría de culturas organizacionales de William Schneider la cual estuvo seguida por una actividad que nos permitió llevar a teoría recien vista a nuestros casos particulares. Luego de esta breve actividad compartimos opiniones haciendo un fishbowl. Finalmente cerramos el encuentro con la votación del tema del próximo encuentro, el cual tratará sobre Recursos Humanos.

Para los interesados en saber algo más sobre el contenido de encuentro, puede ver este post de Rick Colusso.

Agile Open BAires 2010: Recusos Humanos

En el contexto del Agile Open Buenos del pasado marzo participé de una sesión sobre recursos humanos propuesta por Ingrid.

En primer lugar debo decir que me gustó mucho la dinámica utilizada: básicamente Ingrid propuso que comenzáramos haciendo un brainstorming de cualidades/habilidades deseables de la gente para trabajar en un ambiente ágil. Mientras haciamos el brainstorming ella iba tomando nota en el pizarrón. Una vez finalizado el brainstorming, repasamos cada una de las cualidades mencionadas e ibamos recomendando lecturas, técnicas y recursos varios, que cada uno había utilizado para trabajar sobre el punto en cuestión.

Entre las cualidades mencionadas estuvieron: creatividad, coraje, proactividad, compromiso, responsabilidad, espíritu de mejora, inquietud, sinceridad, confianza, compañerismo.

Good software design

Some time ago I read the book “The Art of Agile Development” by James Shore & Shane Warden and I found a statement that really caught my attention:

A good software design minimizes the time required to create, modify, and maintain the software while achieving acceptable runtime performance.

It seems pretty obvious but despite of that it shocked me. This definition leads to some interesting implications:

  • Design quality is people-sensitive: a design that assumes some language specific knowledge maybe incomprehensible for a programmer not familiar with that language. So, a good design should take this into account.
  • Design quality is change-specific: software is designed to be easily changed in some specific ways and naturally it will be harder to change it in a different way. One size does not fit all. So a good design should anticipates what changes will be required.
  • Modification and maintenance time is are more important than creation time: in most cases the life of a software is much more longer than the time you spend in the creating the software. Because of this you write code once, but it will be read/modified many times. So, a good design priories minimizing maintenance time  over minimizing creation time.

Based on the previous three points we could say that the design quality is unpredictable, because you don’t know who is going to maintain the software, you don’t know what changes will be required and you don’t know how much maintenance time will be required. Of course you can have some ideas about these three concerns and the more idea you have, the better your design could be.

I really like this vision. The debate is open.