Etiquetas

Entre 1992 y 2001 participé en unos proyectos europeos gordos de R&D relacionados con gráficos, realidad virtual, arquitectura y trabajo colaborativo (RACE Monalisa, CODI, Esprit M3D, eEurope MNM). En todos esos proyectos desarrollamos más de un par de millones de líneas de código (C++ fundamentalmente), y salvo excepciones todas están muertas de risa en algunos discos duros por «problemas de IPR» (Intellectual Property Rigths, creo que eso me influyó mucho para darme cuenta de los problemas de la «propiedad intelectual» en el software). Había socios de todos los tamaños, desde pequeñas empresas, universidades, BBC, Daimler Benz, Siemens, Thompson Multimedia –antes Thomson CSF–, etc. que hicieron más problemático lograr acuerdos, ni siquiera con la spinoff creada (aunque se sacaron productos como ELSET –Electronic Set, para estudios de televisión– que fue llevado a solas por una empresa de Hannover).

En casi todos esos proyectos colaboré estrechamente con Miguel Salles Dias, en su momento presidente de Adetti, hoy directivo de Microsoft (demás está decir que casi no lo ví desde que entró en Microsoft 😦 ).

Miguel era un fanático de lo que estaba «revolucionando» la ingeniería en aquellos años, el UML. Tanto que pasábamos horas –muy a mi pesar– estudiando los libros relacionados con UML que compraba para luego intentar aplicarlo en el desarrollo de nuestros proyecto –donde trabajaban más de 30 desarrolladores de 9 ó 10 países distintos–. Nunca nos ha ido demasiado bien, la verdad.

Suponíamos que se debía a que éramos unos inútiles, o lo que hacíamos era muy nuevo o bastante experimental, por lo que intentar convertir en predecible lo impredecible se hacía una tarea imposible. Al final imperaba el «diseño mínimo» –la arquitectura– y luego un proceso bastante evolutivo que se corregía cada mes o mes y medio en nuestras reuniones periódicas entre desarrolladores y «usuarios» que quedaban documentados de forma bastante caótica en los deliverables.

Esos fueron mis últimos años donde seguía más o menos el día a día de lo que se cocía de ingeniería del software de grandes proyectos. Luego seguí la pista al Extreme Programming (que decían que era «revolucionario», pero la verdad es que era bastante parecido y menos radical de lo que se hace en los proyectos gordos de software libre) y algo de patrones, pero poco más, me metí de lleno en temas de software libre, donde la impredecibilidad y el diseño estrictamente evolutivo suelen ser parte de la realidad imperante, quizás también la ventaja fundamental.

Después de varios años casi desconectado decidí intentar volver a ponerme al día. Hoy encontré un viejo artículo de Martin Fowler del 2000 pero actualizado en el 2005, New Methodology e Is Design Dead?

Son interesantes y algunas de las frases e ideas me parece geniales. Pero poco más. Seguí los enlaces –recomiendo el ejercicio pero de forma no guiada– y me encontré con mucha charlatenería, sin dar un ejemplo práctico, ni un sólo documento, ningún análisis comparativo de caso reales. Casi discusiones metafísicas sobre bondades y problemas de las diferentes metodologías (Yagni, XP, UML, patterns, planificado, evolutivo/incremental/interativo, etc.).

Ya, son sólo artículos y ensayos, pero me sorprende que haya tan poca «chicha». De todas maneras parecen referencias en sus campos, debe ser por algo. Pero me soprende que en uno de esos artículos –de hace pocos años– justifiquen a los «diseñadores» y el «diseño complejo» (como contrapuesto a los «ágiles») como la única forma de obtener frameworks y módulos reusables genéricos.

Me chirría, será por el momento obsesionado con Django y similares.

Si se analizan los frameworks de programación que más impacto están teniendo en el diseño web, estos son Rails y Django (o el propio Webapp de Google). Hasta donde llega mi conocimiento son el resultado del «diseño evolutivo» de unos hackers, a pesar que los hacks son uno de los pecados capitales de las metodologías complejas.

Debo reconocer mi gran desconocimiento de las profundidades del área, o de los múltiples frameworks para tipos de proyectos que desconozco, pero me resulta muy curioso. Aunque no sé todavía si los Rails o Django respaldan a metodologías ágiles, o a los hacks… o no dicen absolutamente nada. Si es lo último, ¿qué frameworks son los que significan algo?

Pero no debo ser especímen raro, hay otros que afirman –y parecen– saber muchísimo pero se atreven a hablar de pseudociencias para describir los «avances» de los últimos años.

Seguiré leyendo. ¿Alguna recomendación? ¿algunos buenos blogs que escriban sobre el tema que comento?