Balas de plata, carros delante de los caballos y vende humos

No dejo de asombrarme de las realidades tan distintas que enfrentan las organizaciones en términos de software delivery y la “ceguera” de algunos consultores, coaches y líderes.

Dos por tres escucho frases del estilo “hay que implementar X” o “hacer Y está mal” o “tienen que usar Z”,expresadas en forma absoluta como si fueran balas de plata o como si el contexto no fuera relevante. Muchas veces quienes se pronuncian de esta forma son personas que están trabajando en escenarios de innovación , transformación o renovación tecnológica en el contexto de sistemas de información en los cuales muy posiblemente sus frases o recetas sean apropiadas. Pero la realidad es mucho más amplia, hay contextos que no son sistemas de información y hay contextos que no son de transformación. Yo mismo me suelo involucrar en proyectos de mantenimiento de aplicaciones legacy. Esta cuestión que estoy planteando aplica tanto a cuestiones de proceso como a cuestiones de tecnología.

En términos de proceso he visto consultores impulsando iniciativas del tipo #noEstimates o #noProjects y criticando el uso de burndown charts y el uso de velocity/capacity para planificar. En mi opinion estos consultores ven sus recetas como balas de plata cuando todos sabemos que tal cosa no existe.

En términos de tecnología veo consultores proponiendo cuestiones como Continuous Delivery cuando tienen aplicaciones con alto grado de acoplamiento, baja cohesión, modelos de dominio anémicos y sin pruebas automatizadas. Del mismo modo veo consultores de calidad implementando Sonar cuando los equipos de desarrollo ni siquiera leen los warnings que tira el compilador de Java o el propio IDE. En mi opinión estos consultores ponen el carro por delante del caballo, lo cual en lugar de ayudar genera complejidades adicionales.

En un punto me pregunto si estos consultores no terminan siendo “vende humo”.

Reuniones Open Space: ¿y si le damos una vuelta de rosca?

Desde 2009, cuando descubrí el formato Open Space, hasta hoy creo que este formato ha tenido muchísimo uso y difusión. Pero lamentablemente mis experiencias en Open Spaces en los últimos años no han sido muy positivas y finalmente me cansé. Me cansé de asistir a eventos/encuentros sin saber a ciencia cierta qué temas concretos se tratarán, me casé de ver sesiones extremadamente improvisadas que no salen bien, me cansé de ver siempre a los mismo oradores exponiendo.

El martes pasado estuve participando de un Meetup en formato Open Space y una vez más experimente la misma historia: fui sin saber qué temas concretos se tratarían, me encontré con los mismo oradores y con sesiones improvisadas.

Insisto, es una cuestión de gustos. A mi personalmente me gusta más tener una agenda predefinida.

Creo que un punto intermedio podría ser tener una agenda mixta, algunas sesiones previamente definidas y luego un espacio para sesiones espontáneas que surjan durante el encuentro.

Something is changing…

Over the last two years some interesting things have happened in the .net community, among these things I would like to highlight the followings:

  • Greater interest in Domain Driven Design in contrast to the traditional MSDN Data driven way. This has stimulated the adoption of certain design techniques like DI and AOP among other.
  • As a consequence of the previous point there has been a wider adoption and diffusion of open source tools (beyond the P&P application blocks). Tools like NHibernate, Castle and Spring.Net have proven to be high quality products providing efficient solutions for typical problems in enterprise development. Event Microsoft (in a certain way) has recognized these facts, I think ASP.NET MVC is an example of this.
  • Massive adoption of agile development practices like continous integration, unit testing, pair programming and iterative development among others.

I think that evidence of these facts are the creation of the ALT.NET community and the publication of the excellent book “Foundations of Programming” by Karl Seguin.
I see this as great progress for the maturity of the community and the quality of its developments.