viernes, 26 de marzo de 2010

El porque de los chimpancés entrenados

Hace un poco más de 15 años, los que escribimos este blog estábamos en la facultad, haciendo nuestras primeras materias de ingenieria de software, después de varios años de materias más técnicas. Fue allí donde por primera vez nos vimos expuestos a la minimizacion de la importancia de la programación, expresada en la siguiente frase:"Si el diseño y el relevamiento de requerimientos es lo suficientemente bueno la programación podría ser hecha por chimpancés entrenados", que figuraba textual en uno de los libros de la materia (Gracias Ed!).

Como no podiamos estar mas en desacuerdo la elegimos como título para nuestro blog.

Esta creencia era y es bastante extendida en el sector y se expresa en metáforas como la de que el desarrollo de software es como hacer "Arquitectura" de un edificio donde una persona especializada se ocupa de realizar un diseño y un grupo de albañiles-programadores se ocupan de la tarea subalterna de transformar es diseño en código.

Además, como la tarea de programación se ve como algo de poco nivel y sencillo, se la ha intentado automatizar varias veces. En la época en que nosotros empezábamos nuestra vida profesional, la herramienta, la bala de plata, que iba a hacer obsoletos a los programadores y a permitir que los funcionales escribieran (perdón, debimos decir: diseñaran) directamente los programas eran los llamados "lenguajes de cuarta generación" o 4GL como Clipper, Clarion o Fox. De todas maneras no fue esta la primera vez que se intentó esto: en los comienzos de Cobol la idea de marketing fue muy parecida. Y hace muy poco tiempo se intentó lo mismo con la idea de UML ejecutable (entre muchos otros ejemplos).

Todo esto chocaba contra la realidad que percibíamos dia a dia, sobre todo porque en nuestra actividad profesional veíamos que la habilidad de los programadores era crucial para el éxito de los proyectos. Hemos visto mas de un proyecto de desarrollo con pésima gestión ser salvado por un equipo de "Heroes-Programadores", que inmolando sus vidas lograban llevar el proyecto al mejor resultado posible. Por el contrario cuando un equipo de desarrollo no era bueno, no importaba ni la mejor gestión ni la metodología usada, sencillamente el proyecto se hundía por el peso de su Deuda Técnica (ya hablaremos de este tema en otros posts).

Por eso, cuando por los años 2002/2003 descubrimos las metodologías ágiles y en especial Extreme Programming sentimos que era algo que se correspondía bastante más a lo que pensábamos y a la realidad en que estábamos inmersos. Nos encontramos con una metodología donde muchas de las prácticas tenían que ver directamente con el código y que además incluía el nombre "Programming" en el titulo.

Pensamos y sostenemos que la programación es fundamental para el desarrollo de software y que si en un proyecto no tenes buenos desarrolladores , que usen buenas prácticas y produzcan codigo de calidad, vas a fracasar independientemente de tu metodología, tus herramientas o la calidad de tu management.

Y esa es la idea de este blog, un blog para los "chimpancés entrenados".

6 comentarios:

  1. Dios te oiga Juan Pablo!!! y todos los Managers que existen en este mundo que solo viven para preguntarte: Cuanto vas a tardar? Hiciste la estimación? Cuando pensas que vas a terminar de estimar? y Que fecha de compromiso ponemos para terminar tu tarea?. Basta!!!! Muy buen el post, los felicito a ambos

    ResponderEliminar
  2. Muy buen post. Coincido plenamente en que está instalada la sensación de que programar es un commodity y que da lo mismo quien lo haga. De hecho escribí un post en mi blog esta semana relacionado con esto (http://ernestokiszkurno.blogspot.com/2010/04/testear-software-no-es-pegarle-al.html).

    Los felicito por encarar este proyecto de tener un blog y me encanta el título que le han puesto.

    Ernesto,

    ResponderEliminar
  3. No podría estar más de acuerdo con todo lo expresado en esta entrada.

    El diseño es el código, los programadores son los arquitectos y lo más parecido que tenemos a los albañiles es el compilador.

    Es lo malo de organizar una nueva profesión/practica tomando metáforas de otras y equivocándose, es cuestión de tiempo que la industria vaya aceptando la equivocación y rectifique, el proceso es lento, pero imparable.

    Suerte con el blog!

    ResponderEliminar
  4. Lo mas triste es que despues de 20 años de chocarse contra el muro , los PMs/lideres siguen pensando asi .El programador es un obrero pero este obrero necesita una altisima calificacion para hacer un buen trabajo.
    Yo no se cuantos PMS, lideres de projectos y demas tendra el proyecto DEBIAN, pero los porgramadores detras creo que estan lejos de ser monos entrenados y el resultado final se nota ... y mucho.
    Heraldo

    ResponderEliminar
  5. Muchas gracias por los comentarios!

    Lo de las malas metáforas es muy peligroso y está muy instalado, es dificil de volver atrás. Otro ejemplo son las Software Factories, donde los programadores ocupan el lugar de los obreros no calificados en el paradigma de Scientific Management (http://en.wikipedia.org/wiki/Scientific_management).

    Es verdad que todo el movimiento Open Source es un ejemplo de lo que se puede lograr con buenos programadores motivados.

    ResponderEliminar
  6. Todos sabemos que la bala de plata no existe.
    Por lo tanto no defendamos nuestra bala de plata como "la verdad". Siempre la capacidad de poder resolver bien en tiempo y forma las situaciones que se nos presenten; va estar por encima de cualquier paradigma. Y creo que lo importante es estar siempre dispuesto a cuestionarse a uno mismo.
    Hay personas que se adaptan al mundo,
    y hay personas que quieren que el mundo se adapte a ellos.
    Por lo tanto el progreso surge de estos últimos.

    ResponderEliminar