Ricardo Galli, de software libre

Abril 28, 2008

Lucha internacional contra la piratería

Archivado en: cultura, legales — gallir @ 9:46 pm
Tags:

Es el titular que escuché del telediario, me giré para prestar atención para ver y escuchar lo que decían los crápulas de siempre… pero no, se trataba de la verdadera piratería, la que roba y secuestra barcos. Casi me emocioné, no creí que esto podría pasar.

Es el lado positivo al tema del pesquero en Somalia. A ver si después de esto unos pocos dinosaurios mononeurónicos todavía tienen el coraje de seguir insultando a la mayoría de españoles.

Sintonizar universidades y empresas, pero ¿qué debe saber un ingeniero?

Martín Varsavsky escribió El Paro, el problema número uno de España se agrava donde presenta algunas hipótesis o preguntas sobre las razones del aumento del paro. Se podrían discutir todas las razones, pero me centraré en una de las que creo puedo responder con más conocimientos de causa que otras:

1) Porque España, desde Cataluña a Andalucía, educa a los estudiantes de una manera que los hace poco atractivos para los empleadores. Hasta que no se sintonicen las carreras con lo que las empresas necesitan seguiremos con dificultades para emplear a jóvenes.

Historia de este apunte que casi queda en borrador

Quise responderle a Martín inmediatamente en un comentario, luego pensé que se merecía un poco más de información de contexto por lo que sería mejor en un apunte. Al final me quedó un apunte kilométrico y donde me metía en “meta temas” tan difíciles de explicar en un apunte que tuve que hacer dibujos para incluso aclararme yo mismo.

Cada vez que intentaba explicar uno de esos esquemas me daba cuenta que le faltaba algo, lo rehacía e introducía otros conceptos que debía explicar el porqué los introducía. Eso hacía que sea más largo y pesado. Lo iba a publicar el viernes pasado pero no estaba convencido. Aunque le prometí por email a Martín que lo haría lo dejé para pensármelo mejor. El sábado lo leí y no me gustaba nada, me parecía demasiado pretencioso y que me metía en camisas de once varas. Empecé a reducirlo y quitar aquello sobre lo que no estaba del todo seguro. Al quitar cosas me dí cuenta que hacían falta otras y que debería rehacer los esquemas, tanto mentales como los dibujos.

Al final terminé cambiando muchas cosas, pero el sábado a la noche me parecía que todavía no alcanzaba a explicar del todo bien la idea de fondo. Tampoco veía cómo poder llegar a dar las respuestas. Era como estar en un túnel muy largo sin ver la salida. Me puso nervioso, me cabreé y casi pensé en dejarlo, que no tenía sentido para un apunte. Lo dejé estar para mirarlo el domingo, después de ir a la playa y tomar un poco de sol.

En la tarde del domingo me convencí que no era adecuado para un apunte de un blog, que en todo caso estaba tomando cuerpo para presentarlo en una reunión o congreso sobre el tema. Pero luego pensé que al fin y al cabo el proceso de intentar elaborar una respuesta a una pregunta aparentemente simple y tonta me había hecho pensar y aclarar muchas cosas, me salió un ensayo perfecto, en el sentido estricto de la palabra: una reflexión personal no academicista con el objetivo de aclarar ideas.

Al final, domingo a las 20 horas, decidí que lo publicaría. Dado que me tomó trabajo y que publicar unas ideas en un blog y someterme al peer review de los lectores no es lo más adecuado pero es más simple y menos doloroso que hacerlo en un congreso especializado… y no se pierde nada. Sobre todo no perdería las horas dedicadas para que quede como un borrador nunca publicado.

Así que decidí publicarlo y tomé aliento para acabarlo, pero debía eliminar varias partes demasiado pesadas y acortar el túnel, sino no acabaría nunca, se nota como el final es casi apresurado.

Sabréis disculparme las simplificaciones y hacer un esfuerzo en captar las ideas de fondo. Tampoco creo que diga demasiadas burradas, y al fin y el cabo sólo son pensamientos parciales en forma de apunte. Para eso es un blog personal, ¿no? ;-)

El conocimiento de los profesionales

Podríamos decir que un “profesional” –en el sentido laxo, no necesariamente con título profesional– o “ingeniero” tiene tres conocimientos o entrenamiento en tres áreas distintas:

  1. Ciencia
  2. Tecnología
  3. Herramientas

Así se pueden definir esos tres conceptos fundamentales, y qué es ingeniería.

Ciencia es por un lado, el proceso mediante el cual se adquiere conocimiento, y por el otro, el cuerpo organizado de conocimiento obtenido a través de este proceso.

Tecnología es el conjunto de saberes que permiten fabricar objetos y modificar el medio ambiente, incluyendo las plantas y animales, para satisfacer las necesidades y los deseos humanos. [...] En la sociedad, la tecnología es consecuencia de la ciencia y la ingeniería…

Herramienta. Es frecuente usar el término herramienta, por extensión, para denominar dispositivos o procedimientos que aumentan la capacidad de hacer ciertas tareas. Tal es el caso de las herramientas de programación, herramientas matemáticas o herramientas de gestión.

Ingeniería. Conjunto de conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuentes de energía. O según la Wikipedia: Es la profesión que aplica conocimientos y experiencias para que mediante diseños, modelos y técnicas se resuelvan problemas que afectan a la humanidad. [...] La ingeniería es la profesión en la que el conocimiento de las matemáticas y ciencias naturales, obtenido mediante estudio, experiencia y práctica, se aplica con juicio para desarrollar formas de utilizar, económicamente los materiales y las fuerzas de la naturaleza para beneficio de la humanidad y del ambiente. [...] Otro concepto que define a la ingeniería es el arte de aplicar los conocimientos científicos a la invención, perfeccionamiento o utilización de la técnica en todas sus determinaciones.

Ciclos de vida

Podemos ampliar brevemente las definiciones con los “ciclos de vida” de los modelos científicos, las tecnologías y las herramientas.

Los modelos científicos pueden durar y ampliarse durante cientos de años, hasta que aparezcan modelos nuevos que “falsen” o simplifiquen radicalmente al anterior –llamada cambios de paradigmas por Kuhn–. Así por ejemplo el modelo de la gravitación universal de Newton duró doscientos de años hasta que aparecieron los modelos de la relatividad o le física cuantica. En la informática tal como la conocemos ahora quizás el modelo matemático fundamental es el modelo computacional de la máquina de Turing y arquitectura Von Newman.

Las ciencia de la computación es una ciencia formal que no está del todo madura –por lo que crece rápidamente–, aunque el cuerpo del conocimiento se incremente a gran velocidad, todavía no hemos tenido cambios de paradigmas fundamentales como en otras ciencias naturales (posiblemente la informática cuántica sea el orígen de un “cambio de paradigma”). Los conocimientos de la ciencia informática incluyen a muchos conceptos denominados comunmente como “principios fundamentales”. En otro casos como las áreas consideradas para la definición del cuerpo de conocimiento de las ciencias de la computación (CC2001): estructuras discretas, fundamentos de programación, algortimos y complejidad, arquitectura y organización. sistemas operativos, lenguajes de programación, gráficos, interfaces, sistemas inteligentes, ciencia computacional y métodos numéricos, etc.

Aunque cada vez aparecen nuevas conocimientos derivados del avance tecnológico, el ciclo de vida de esos conocimientos es bastante largo, todavía no hemos visto que hayan sido superados por modelos diferentes.

The field, moreover, continues to evolve at an astonishing pace. New technologies are introduced continually, and existing ones become obsolete almost as soon as they appear. [...] When CC1991 was published, for example, networking was not seen as a major topic area, accounting for only six hours in the common requirements. The lack of emphasis on networking is not particularly surprising. After all, networking was not yet a mass-market phenomenon, and the World Wide Web was little more than an idea in the minds of its creators.CC2001 de la ACM

Los ciclos de vida de las tecnologías son muchos más breves que los científicos, ya que sus mejoras son influidos por dos factores, por las mejoras científicas, de las técnicas y además de las “innovaciones” que supone la ingeniería al campo. Ejemplos de tecnologías y técnicas informáticas típicas son el desarrollo de los lenguajes de alto nivel (compilados, dinámicos), mecanismos y abstracciones de control de concurrencia (semáforos, tareas, hilos, monitores, etc.), protocolos, arquitecturas de software, etc. Mientras que el modelo fundamental no ha cambiado desde los inicios de la informática moderna (en la década de 1940-1950), las tecnologías sí que han cambiado mucho haciendo cada vez un mejor y mayor uso del conocimiento científico adquirido. El ciclo de vida las tecnologías es más breve, y muchas han caído en desuso se han vuelto obsoletas, pero aparecen nuevas.

Much of the change that affects computer science comes from advances in technology. Many of these advances are part of a ongoing evolutionary process that has continued for many years. Moore’s Law [...] continues to hold true. As a result, we have seen exponential increases in available computing power that have made it possible to solve problems that would have been out of reach just a few short years ago. Other changes in the discipline, such as the rapid growth of networking after the appearance of the World Wide Web, are more dramatic, suggesting that change also occurs in revolutionary steps. Both evolutionary and revolutionary change affects the body of knowledge required for computer science and the educational process.CC2001 de la ACM

Los ciclos de vida de las herramientas son aún más breves. Un ejemplo simple. Desde la mejora de las tecnología de interfaz humana –sobre todo cuando se pasó de las tarjetas perforadas a los teletipos o pantallas con teclado– hizo falta una forma cómoda de introducir texto. Así nacieron los editores de texto –siendo emacs y ed/vi los históricos que aún perviven gracias a su evolución–. A medida que mejoró la tecnología, los editores de texto se hicieron más potentes hasta el punto que podía ser usado para tareas genéricas que no necesariamente estaban ligadas al desarrollo de programas, así evolucionaron a los “procesadores de texto”. Los grandes avances científicos y tecnológicos (gráficos, interfaces, potencia de CPU, memoria) han provocado estos cambios, aunque sigan usando todavía las mismos “conocimientos científicos” y muchas de las técnicas que ya usaban en sus inicios. Otros ejemplos de herramientas son: lenguajes/compiladores, editores HTML, herramientas de administración, programas de CAD, ofimática, etc.

El ciclo de vida de las herramientas es muy breve, unos pocos años en el caso de aplicaciones informática o unas pocas décadas para las herramientas que forman parte de las infraestructura básica (lenguajes, compiladores, librerías).

Algunos se preguntarán dónde encajan las metodologías formales de ingeniería del software (como las funcionales o estructuradas tales como la de Gane y Sarson (STRADIS), Yourdon o DeMarco, las orientadas a objetos y las ágiles como XP o Scrum). Claramente no pertenecen al corpus del conocimiento científico (seguramente tanto Kuhn como Popper estarían de acuerdo), pero no se podría asegurar si pertenecen al campo de las “tecnologías” o de las “herramientas”. Desde mi punto de vista y siguiendo la definición procedimientos que aumentan la capacidad de hacer ciertas tareas son una herramienta de la ingeniería, aunque quizás parte de los modelos de procesos desarrollados en algunas metodologías puedan ser considerados como parte de las tecnologías (de hecho hay muchísimas herramientas comerciales basados en Gane/Sarson y Yourdon, incluso algunos libros las recomiendan para la documentación de patentes).

No habrá un consenso definitivo. En todo caso sus ciclos de vida son relativamente cortos, a medio camino entre las tecnologías y las herramientas. Por ejemplo la metodología de Gane-Sarson [1977] dominaba en los 80, a mediados de los 90 lo hacía Yourdon [publicada en 1991-1993, aunque desarrollada en los 70 y 80] , hoy predominan las ágiles como RAD [1991], Scrum [1995], XP [1999] y en España la Métrica 3 [2003] (aunque Métrica [1989] estuvo basada en la británica SSADM [1981], basada a su vez en la de Gane-Sarson, Yourdon y Merise [1978]) [*].

[*] Algunos se preguntarán por qué no menciono al ISO 12207. Éste es un complemento a la gestión institucionalizada, no es ni sustituye a métodologías formales, sólo provee “framework” y un conjunto de bloques de construcción del ciclo de vida del software para su uso más conveniente y efectivo en las organizaciones [1, 2]

La ingeniería informática

Un ingeniero –titulado– en informática es bastante “especial” con respecto a otras ingenierías. El hecho que no tengamos una carrera “licenciatura en ciencias de la computación” –como propone la ACM– es una muestra muy evidente. Lo explico con un cisma bien conocido, el de los ingenieros eléctricos anglosajones de la física.

Hasta principios del siglo 20 no existía la carrera de ingeniería eléctrica, era un tecnología cuyo uso no estaba del todo extendida y que estaba evolucionando a pasos agigantados. Durante los primeras décadas de ese desarrollo eran los propios físicos lo que cumplian el papel de “ingenieros”. A principios del siglo pasado se produce ese “cisma” que separó a la ingeniería de su origen científico. Así la licenciatura en física supo mantener su contenido altamente centrado en la ciencia mientras que la ingeniería se enfocó más a la parte tecnológica. Es claro que los ingenieros eléctricos siguen teniendo una formación y entrenamiento científico importante –aunque menor a los físicos– ya que esos conocimientos son indispensables para la cumplir con uno de sus objetivos: arte de aplicar los conocimientos científicos a la invención, perfeccionamiento o utilización de la técnica.

El ejemplo de la ingeniería eléctrica anglosajona es igualmente aplicable al caso español de las ingenierías industriales. Las escuelas de ingenierías industriales se crearon en 1850. Fue esta carrera el “cisma” de la física y la que luego absorvió a la ingeniería eléctrica (llamada en sus principio “electrotecnia”, sus primeros trabajos se remontan a 1852).

En cambio en la informática no sufrimos todavía ese “cisma”. Desde el principio las carreras tradicionales de informática fueron una mezcla de ciencias y de ingenieria, a la inversa de la física-ingeniería eléctrica/industrial. No estoy seguro sobre cuáles han sido las causas, pero sospecho que tiene mucho que ver con la “tipo de ciencia” y la transversalidad con otras ciencias e ingenierías.

A diferencia de la física que es una ciencia natural, la ciencia informática es una ciencia formal, más similar a las matemáticas que a la física. Pero las relaciones son más complejas. Los modelos informáticos son modelos matemáticos, pero cuya aplicación a la “naturaleza” o para resolver problemas –i.e. la ingeniería– depende de las tecnologías electrónicas, que a su vez dependen de las conocimientos y avances científicos de la física.

Computing is a broad field that extends well beyond the boundaries of computer science [...] Computer science draws its foundations from a wide variety of disciplines. Undergraduate study of computer science requires students to utilize concepts from many different fields.CC2001 de la ACM.

Esa interdependencia es bastante evidente si se analiza la historia de la informática. Todavía hoy en los congresos y revistas actuales la participación de matemáticos y físicos –incluso ingenieros eléctricos/electrónicos– es bastante importante.

¿Qué se estudia en la educación formal?

El ideal de todos seguramente sea el modelo de renacentistas famosos como Leonardo Da Vici, o Galileo Galilei (figura 1).


Figura 1: El modelo renacentista

Desafortunadamente no vivimos en la Florencia del Renacimiento. Afortunadamente para la evolución de la especie, las ciencias y tecnologías han avanzado tanto que muy improbable que una persona pueda dominar y ser un experto en la ciencia, tecnología y herramientas disponibles, incluso para una “ciencia” individual.

A la hora de desarrollar los planes de estudios formales hay que encontrar el balance en el enfoque –científico, ingeniería, técnico, o “especialista”– y en el tiempo que se dedicarán a esos estudios. Dependiendo de ello se tienen que trazar los planes buscando el equilibrio.

El ciclo de conocimientos –ciencia, tecnología o herramientas– tienen una gran influencia. Así por ejemplo no tiene sentido hace 5 años para la enseñanza de herramientas si éstas ya serán obsoletas cuando los alumnos acaban la carrera.

Así el conocimiento que se enseñan en las carreras es aproximadamente como se muestra en la figura 2 –no intenté en ningún caso que haya “escala” precisa, por ejemplo el área total no tiene relación con el esfuerzo o tiempo necesario para el estudio–.


Figura 2: Conocimientos adquiridos durante educación formal

La superficie total coloreada indica más o menos la cantidad de conocimiento que se puede dar. El tipo de carrera determina cómo es la distribución del conocimiento. Así las carreras más científicas requieren de una mayor formación en conocimiento de ciencias y menos en tecnologías. Los ingenieros requieren mas formación en las tecnologías y de herramientas. Los tecnicos (FP o Ciclos formativos) prácticamente no estudian ciencia y dedican su tiempo a aprender más las herramientas (además son de duraciones más cortas que las dos anteriores). Por último existen cursos cortos, tanto de “academias” como de postgrados, cuyo objetivo es la de entrenar en determinadas herramientas.

La situación real no es tan uniforme como la ideal de la figura 1. En cualquier carrera, de cualquier universidad quedan agujeros del conocimiento (figura 3).


Figura 3: Hay pequeños agujeros de conocimientos

Estos agujeros se producen por razones diversas:

  • Culpa del profesor, por desconocimiento, no estar actualizado o no cumplir con los programas.
  • Culpa de los planes de estudio, por no estar actualizados o no ser completos para el cuerpo de conocimiento requerido para una carrera.
  • Culpa de los alumnos, que se han esforzado en saber sólo aquello que sabría iría al examen, o en no hacer –i.e. copiar y plagiar– o participar en las prácticas (en general es culpa de la falta de motivación).
  • Falta de tiempo, los imprevistos –enfermedad, conferencias, viajes– pueden provocar retrasos en las asignaturas que impidan enseñar o aprender adecuadamente todos los temas programa original.

Esos pequeños agujeros no son tan graves, con un poco de estudio, incluso una simple lectura de sitios especializados, ayudan a cerrarlos muy rápidamente: son pequeños y se tiene toda la información “contextual” que hacen de soporte.

Pero en informática el problema es un poco más marcado. Como la ciencia y la tecnología avanzan tan rápidamente, los planes de estudios quedan casi obsoletos –o mejor dicho, demasiado incompletos– a los pocos años de aprobarse, tal como explican en CC2001. Es decir que cumpliendo estrictamente los planes de la educación formal ya estamos dejando agujeros sin rellenar.

Esa distorsión de los planes de estudios se suele suplir con la buena voluntad de profesores, asignaturas optativas y cursos ad-hoc. Pero sobre todo se resuelve con alumnos muy motivados y una ambiente que permita el intercambio de conocimiento. El resultado: la formación continua y autodidacta no sólo es importante para los profesores, también es imprescindible para los alumnos incluso antes que acaben su carrera.

La formación de los profesionales no acaba al salir de la universidad. Así un científico tendrá que profundizar en ciertas áreas de su ciencia para ser capaz de comprender a fondo lo que se dice en los artículos especializados –papers y journals– y poder aportar nuevo conocimiento.

Los ingenieros informáticos tendrán que profundizar en áreas muy específicas de la ciencia, dominar determinadas tecnologías y aprender a fondo algunas herramientas (lenguajes, metodologías, etc.). Además de ello deberán mantenerse al día sobre lo nuevo que está ocurriendo en los tres campos.

Así un profesional experimentado y con la especialización, entrenamiento y formación continua adecuada mantiene las “zonas coloreadas” como cuando acabo su carrera, pero además es un experto en áreas específicas (figura 4).


Figura 4: Los conocimientos de “profesionales” con experiencia y formación continua

Por supuesto, la figura 4 muestra un caso ideal, al alcance de muy pocas personas, los agujeros en el conocimiento –como los de la figura 3– son difíciles de evitar. Aún así la tendencia y objetivo de los profesionales debería ser alcanzar un nivel de conocimiento como el de la figura 4.

Un profesional, aunque sea muy bueno y competente en su área específica, sin la formación continúa imprescindible –formal o informal– a los pocos años desconocerá los últimos avance y cambios del campo científico, tecnológico y hasta de las herramientas disponibles.

Para los informáticos la formación continúa requiere de más esfuerzos. Influye en ello los rápidos cambios que se producen en la ciencia y tecnología, lo que hasta los expertos de la ACM denominan “pasos revolucionarios”. Pero también influye el “mercado”, las empresas son naturalmente conservadoras. Empresas conservadoras e ingeniería mutante hacen una combinación nada agradable.

Así no es infrecuente encontrarnos con profesionales o ingenieros informáticos que no han tenido la oportunidad de recibir la formación continua adecuada. De hecho hasta tienen un nombre para tratarlos despectivamente, en castellano se les suele llamar casposos, en inglés algunas veces blue suits –si son comerciales o directivos–, o de una javaschool a los programadores (más sobre el tema en la siguiente sección).

El esquema conocimientos de estos profesionales es el que se muestra en la figura 5.


Figura 5: Conocimientos de un ingeniero informático que no recibe formación continua

Un buen ingeniero debería siempre intentar tener los conocimientos distribuidos como la figura 4, y huir como si fuese la peste de un esquema como la figura 5 (es muy perjudicial para la persona y la organización para la que trabaja), aunque muchas veces nuestra “natural” disfunción metacognitiva no nos permite evaluar nuestros propios conocimientos [*].

[*] Truco: discutir de temas técnicos en foros y listas técnicas, o en tu propio blog, es una muy buena manera de que te “evalúen”. Otra forma, aunque más cruel sudorosa y sado-masoquista, es intentar explicar o enseñar a otros, no hay mejor forma de darte cuenta de tus agujeros de conocimiento.

Lo que piden las empresas

Al final, luego de una larga introducción, me centraré en la respuesta a Martín.

Recuerdo hace unos años tuvimos unos debates en la UIB sobre empresas y software privativo versus software libre. Participaban empresarios, profesores y alumnos. En una mesa redonda se discutió sobre este dilema. Uno de los empresarios de software más importante de Balears –además es licenciado en matemáticas, o sea de una formación científica– afirmó algo así (más o menos literal, pero de memoria y luego de varios años):

No sé para qué se enseña en la UIB cosas raras como sistemas operativos [nota: soy profesor de esas asignaturas] y motores de bases de datos, aquí nadie desarrollará un sistema operativo. Lo que tenéis que enseñar es SQL y Visual Basic. Eso es lo que necesita la empresa.

Quedé tan sorprendido y con tan mal sabor de boca que años después no lo olvido, incluso peor, casi se convirtió en un esterotipo personal de lo que pretenden muchos empresarios de la universidad: carne al kilogramo. Sí, está mal, y lo intento olvidar, pero es difícil, fueron palabras muy gruesas, falaces y demagógicas, pronunciadas en frente de más de un centenar de profesores y alumnos.

Aunque no se pueda generalizar, esas palabras sí que sirven para evidenciar un síntoma: las empresas miden la relevancia de las ingenierías desde un punto estrictamente económico y a corto plazo. Pretenden que un ingeniero que entra en su empresa sea productivo en el menor tiempo posible. Es decir que dominen las tecnologías y herramientas que su empresa usa o necesita.

Las necesidades de cada empresa son muy diversas. El tipo de ingeniero que necesita FON –conocimientos de software de sistemas operativos, específicamente GNU/Linux, empotrados, telecomunicaciones y cifrado– no es el mismo que puede necesitar una empresa que hace software de gestión de hoteles, la de los bancos, las que hacen sistemas webs o las que necesita Airbus para la aviónica.

Si hiciésemos caso de lo que piden las empresas, deberíamos redistribuir el conocimiento, y nos quedaría algo como la figura 6.


Figura 6: Lo que suelen pedir las empresas

Un técnico debería ser expertos en todas las herramientas que usan las empresas y conocer de las tecnologías. Un ingeniero debería dominar las mismas herramientas y además ser igual de experto en las tecnologías.

Hay una aberración importante e inaceptable: para poder hacer que los ingenieros sean expertos en las tecnologías y herramientas se debería ahorrar tiempo en “cosas que no necesitan”, como el conocimiento científico. Pero aún hay otra, cuatro o cinco años no son suficientes para enseñar a fondo todas las tecnologías y herramientas, así que hay dos soluciones:

  • Formar ingenieros como la figura 5, o sea especialización de las carreras para “cubrir las necesidades de su región”. Es una visión que casi pretende que los ingenieros sólo sean útiles en su región, o convertir a la universidad en una especia de “academia regional de ciclo largo”. Pero tampoco tiene demasiado sentido, ¿qué debería enseñarse? Las empresas de la misma región no tienen necesidades tan uniformes. De todas formas no esta mal darle una “perspectiva” más regional, algo de esto se intenta en las asignaturas que no son troncales en los planes existentes y en los aproximadamente 40% de créditos de los “planes de Boloña”.
  • Formar ingenieros como la figura 6.b, lo que significaría aumentar el número de años de carrera. Sólo serviría para maquillar el paro y que los alumnos hagan huelgas y manifestaciones frente al ministerio. No tiene otra utilidad, porque tal como están las cosas cuando hayan acabado la larga carrera la mitad de lo que han aprendido ya cambió demasiado, o ya es obsoleto. Las quejas de los empresarios segurían y a largo plazo será insostenible.

Este tipo de discusiones no son nuevas ni exclusivas de España o nuestro entorno. Ocurre con la misma virulencia también en Estados Unidos. Rescato una frase:

Ojalá no me hubiesen escuchado [...] Allí reside el debate. Los años de lloriqueo de estudiantes de informática vagos como yo, combinado con las quejas de la industria sobre la formación de los graduados informáticos de las universidades norteamericanas hicieron mella, y en la última década un gran número de antes buenas facultados se han hecho 100% Java. Es la moda, parece gustar a los reclutadores que usan “grep” para evaluar los curriculums, y lo mejor de todo es que no hay nada especialmente malo en [el lenguaje] Java que obligue abandonar a los programadores que no tengan idea de punteros o recursión, así el abandono es más bajo, los departamentos de informática tienen más estudiantes y mayores presupuestos, todo va bien.

La frase anterior es de Joel Spolsky en El peligro de las Javaschools. Lo que describe son a ingenieros informáticos que acaban su universidad Javaschool con un esquema de conocimiento exactamente al de la figura 5.

Recomiendo la lectura de ese artículo. No es sencilla la respuesta adecuada, pero Joel da algunas de las pistas de por dónde debería ir el debate, da muchas pistas de por qué Estados Unidos necesita y abserve tantos programadores de otros países. Me deja la sensación que el los curriculums-neo-capitalistas han hecho más daño que aportado ventajas a la media de estudiantes.

El problema

Yo creo que el problema fundamental es que no es tal. O al menos no es lo que normalmente se cree, una “mala orientación” de lo que se estudia en las universidades españolas.

Tampoco creo que en haya excesivas diferencias en la formación y conocimientos adquiridos por los alumnos, no en lo que se refiere a la “media” y a la distribución del conocimiento. Afortunadamente la mayoría de las facultades informática han sabido resistir a la tentación de convertirse en Javaschools (aunque sé que es muy difícil y que a algunas les falta poco para terminar cediendo a la presión).

El problema de la aparente falta de sintonía no es un problema sólo español, los norteamericanos tienen el mismo debate. Sólo que como vivimos aquí y con el típico pensamiento español, parece un problema creado y exclusivamente padecido por españoles. Cualquiera que haya visitado otras universidades habrá visto que los temas son muy similares, incluso los libros de texto son los mismos en la mayoría de los casos.

Las universidades españolas, sobre todo las de “provincias” como la mía, tienen problemas estructurales importantes:

  • Problemas de mercado: la “industria del software” es relativamente muy pequeña, hay pocas empresas, pocas inversiones en este campo, I+D+i casi inexistente. Obviamente afecta a las universidades, su relación con empresas, falta de profesores con experiencias en grandes proyectos empresariales, y las aspiraciones y motivación de los alumnos.
  • Problemas geopolíticos: La “gran industria” informática está muy centralizada –sus índices de concentración son muy superiores a la de los fabricantes de coches, las segundas más elevadas según el censo norteamericano– no es lo mismo ser una universidad en Balear o Murcia que una cuyo campus es o está pegado a Silicon Valley. La industria de su entorno son incomparables, la atención y fondos directos e indirectos son diferentes, lo que nos lleva al siguiente problema.
  • Problemas de recursos: mientras que una universidad norteamericana de primer orden –de la Ivy League– tiene un presupuesto por alumno ronda los 30.000 euros, una universidad española difícilmente supera los 6.000 euros. Afecta a los recursos disponibles y sobre todo a la masificación de clases. Afortunadamente el hardware bajó mucho de precio, también el software que hace falta –casi se puede enseñar toda una carrera sólo con software libre–, pero los recursos humanos son los más caros, deben consumir alrededor del 70% de los ya reducidos presupuestos. Además se suma otro problema, los salarios de profesores son muchos más bajos de lo que paga la industria con una formación similar a los “buenos”, lo que hace que sea muy difícil mantener o conseguir profesores. Todo ello también afecta a la motivación, tanto de alumnos como profesores.

Creo que esos problemas no justifican por sí mismos una falta se sintonía con las empresas, o al menos no creo que la mejora de las situaciones mencionadas anteriormente solucionen el problema automágicamente. No podríamos intentar aumentar recursos sin mejorar el mercado que a su vez necesitará de ingenieros de primer orden. Y no podremos tener nuestros Silicon Valleys sin una buena dotación de empresas, científicos e ingenieros.

Yo creo que sí hay problemas, pero son de otra índole, más social, afecta a profesores y alumnos pero no es exclusivo de las universidades:

  1. Falta de motivación (o de pasión por la informática) de los alumnos, también de profesores, pero fundamentalmente de los alumnos, que son los al fin y al cabo los que saldrán al “mercado laboral”.
  2. Falta de confianza –o coraje de jóven– que nos dice “no hay misterios, son sólo bits y bytes, si otros lo pudieron hacer yo también puedo hacerlo”. Este problema no sólo afecta a cómo se enfrentan y resuelven los problemas dentro de una empresa, sino en que hay muy pocos ingenieros que inicien proyectos innovadores por cuenta propia y con una visión “global”, es decir de vender en todo el mundo. Creo que es la causa fundamental de la carencia de ingenieros informáticos emprendedores.
  3. Pretender que el estado se haga cargo del entrenamiento profesional. Es un problema empresarial, la competencia, el outsourcing, la falta de mercado hace que parezca muy caro o imposible que las empresas se hagan cargo del entrenamiento específico, y luego de la formación continua, que necesitan los nuevos ingenieros.

¿La solución?

No lo sé con certeza. El punto #2 es un problema más social que académico o económico. El punto #3 es un tema a discutir con empresarios y ver cómo se pueden solucionar, reducir o regular la formación de profesionales. Desde el punto de vista de la universidad creo que el camino a corto plazo es mejorar la motivación. Leí muchas y diferentes propuestas, pero hay dos fundamentales:

  • Hacer universidades de élite. La propuesta es sencilla, si de 100 alumnos dejamos entrar sólo a los 10 mejores en vez de a 80, nos aseguramos de entrada que cogemos a los mejores y más motivados. El problema de este modelo es el fuerte impacto social que tendría –lo sufre Estados Unidos– y que al fin y al cabo tampoco serviría para cubrir las necesidades de las empresas locales, luego deberíamos importar ingenieros informáticos de otros países… que seguramente tendrán una universidad de acceso universal.
  • Matrículas altas y más becas. Me agrada bastante, aunque llevaría bastante debate. La idea es mantener un “balance neutral” –como el de ahora– pero los estudiantes “regulares” deberían pagar de matrícula un porcentaje elevado de los costes, dinero que sería invertido en más becas y becas-salario a esos buenos alumnos, que en muchos casos empiezan a trabajar antes de acabar sus estudios –bien por necesidad o porque reciben muy buenas ofertas– que termina afectando muy negativamente a su rendimiento académico. El hecho de tener que dedicarse más para no tener que pagar, o pagar menos, o simplemente porque está pagando mucho, haría que tener un buen rendimiento tuviese consecuencias económicas inmediatas. Dicen que no hay mejor motivador que el peligro de una factura más elevada, tengo mis dudas, pero seguramente mejoraría la situación.

Hay otras

Hay una tercera solución intermedia, que está funcionando y además creo que re-impulsada durante la primera legislatura de Aznar, los ciclos formativos. No conozco demasiado cómo está funcionando el sistema, pero me parece una solución bastante adecuada para cubrir las necesidades específicas de muchas empresas. Quizás haga falta que empresarios importantes empiecen a verlo como una alternativa y negocien y apoyen la creación de nuevos ciclos. Como son cortos –además hay opciones de uno o dos años– son más fáciles de adaptar y actualizar.

La otra solución, pero vendrá a largo plazo si es que puede ocurrir alguna vez, es que finalmente podamos separar las carrera de ciencias de computación de las dos o tres ingenierías derivadas de ella. Creo que nos hará tan bien a todos como lo hizo el “cisma” de las ingenierías de la física. Eso sí, si ocurre el cisma, las universidades pequeñas como la mía tendrán que olvidarse del lujo de tener carreras de ciencias de la computación. Una alternativa bastante triste para la mayoría :-(

Posdata: Tengo otra teoría que creo afecta negativamente a nuestros ingenieros. La suelo explicar con una improbable pero no imposible “universidad del fútbol”, pero como este apunte ya se hizo demasiado largo –y algunos profesores se mosquerán bastante si la explico– lo dejaré para otro cuando tenga tiempo y ganas que me digan de todo.

Abril 22, 2008

Estar informado…

Archivado en: pijadas, prensa — gallir @ 11:39 pm
Tags: , ,

… seguramente no son casi 5.000 “noticias” sólo de Google News España sobre la indecisión de Esperanza Aguirre.

¿A cuánta gente le interesa la última tontería que han dicho sobre el tema? ¿es lo único que se habla de un programa de TV? ¿qué se van a inventar luego? ¿cuándo reaparece el contendiente Gallardón en las portadas? ¿repetirá Montilla contra Zapatero?

Los medios parecen necesitar siempre un “monstruo frívolo” en activo para ser monotemáticos durante toda la semana y alimentar el tomateo político. Si no existe, se inventan uno. No sé si se ponen de acuerdo o es el comportamiento manada, pero van todos a la par.

No podré dormir en toda la noche pensando si Esperanza dirá mañana que se presenta, o no, o quizás, o que posiblemente cambiará de opinión. ¡Increíble! ¡qué emoción!

El colegio y las mentiras causales del secretario general del PP

Archivado en: legales, prensa, ética — gallir @ 12:14 pm
Tags: , ,

Resumen temporal:

  1. 1 de setiembre 2003: Jaume Matas nombra a Damià Vidal  director de Bitel.
  2. 16 de setiembre de 2003: La UIB declara a Damià Vidal en situación de servicios especiales por su nombramiento en Bitel.
  3. 30 setiembre 2003: Jaume Matas presenta al parlamento el proyecto de ley de creación del Colegio de Informática.
  4. 2 de marzo 2004: Se publica la ley que aprueba la creación del colegio de informática.
  5. 30 de setiembre 2004: Publicación en el Convocatoria de asamblea constituyente del colegio.
  6. 1 Enero de 2005: Se abre el período para la inscripción al colegio.
  7. 14 Octubre de 2005: Se aprueba en el parlament los estatutos del colegio.

¿Qué dice ahora el secretario general del PP Balear Jose María Rodriguez sobre el nombramiento del Director de Bitel?

Sin embargo, Rodríguez no cree que pueda ponerse en duda la honestidad de aquella actuación, puesto que se recurrió a Vidal como decano del Colegio de Informáticos.

<modo lógica básica>

No sé si no se entera todavía del qué va el tema, o cree que nadie lo sabe, o simplemente intentó colar una falacia post hoc ergo propter hoc o una de autoridad y le ha salido una fantástica de argumento circular:

A -> B ergo B -> A

</modo lógica básica>

No sólo se usó al colegio para intereses particulares  –presuntamente delictivos– de unos pocos,  ahora también se lo pretende usar como principio de autoridad para justificar decisiones políticas erróneas.

Aunque era de esperar, hay que joderse.

PD: ¿Ningún periodista le hizo notar la incoherencia de lo que dijo?, las fechas son públicas, bien conocidas y demasiado fáciles de verificar.

Abril 21, 2008

Los peligros de no leer Internet

Archivado en: internet, medios, prensa — gallir @ 11:04 am
Tags: , ,

Si éste fuese un blog geek hubiese titulado WTF! Are you from the past. Pero no, sólo me salen títulares coñazos. El tema es que en la última página de la edición de hoy del Diario de Mallorca publican Un niño corrige a la NASA. Esta noticia ya ha sido desmentida hace cuatro días [en Menéame].

Es el peligro de no estar al tanto de lo que se difunde, comenta y discuten Internet o blogs. Estos  a veces ayudan a divulgar hoaxes, no es este el caso, pero invariablemente son el primer sitio donde se corrige.

Hace unos días me preguntaba ¿Qué es estar informado?. Todavía no encontré una respuesta convincente y completa, pero se me acaba de ocurrir una de las condiciones necesarias–que no suficiente– para  definir  estar informado, al menos para los que deciden qué se publica en los medios:

No divulgar información errónea, falsa o inexacta que ya ha sido desmentida o enmendada días atrás.

Abril 20, 2008

Ética comparada (y II)

Archivado en: legales, ética — gallir @ 12:47 pm
Tags: ,

Ayer lo comenté en Ejercicio de ética comparada. Hoy se amplía la noticia en Diario de Mallorca (también en Última Hora) donde se puede leer:

[...] Damià Vidal, Iván Guardia y de La Iglesia formaron la primera junta directiva del Colegio Oficial de Ingenieros en Informática de Balears. [*]

[...] Los actuales gestores de Bitel se han encontrado con que se pagaron decenas de miles de euros por informes y dictámenes inexistentes o que se habían bajado de Internet, como hacen los malos estudiantes.

[...]  Los investigadores piensan que el gerente de Bitel se rodeó de una serie de estudiantes o recién licenciados en ingeniería informática, a los que habría convencido para crear las empresas y desviar los fondos públicos. Llaman la atención en ese sentido las edades de los otros arrestados: Iván, 28 años; Alexandre, 30; y Juan Antonio, 26.

Hace casi año y medio escribía mi apunte Monopolios legales a cambio de nada donde decía:

[...] Les dí mi opinión de porqué me parecen mal los colegios oficiales de informática, están viciados desde las propias motivaciones fundacionales.

[...] Tampoco se plantean seriamente el tema de servicio ético a la comunidad o código deontológico.

[...]  No es coincidencia que detrás de cada nuevo colegio haya “profesionales” con intereses claramente partidistas –y con buenas relaciones “políticas”–. Estaría bien examinar a esos informáticos el conocimiento, experiencia y práctica que tienen en su profesión. Pero dirán que eso no es “ético”.

¿Para esto queríamos el colegio en Balears? Menos mal que me opuse radicalmente desde el principio, a pesar de las “invitaciones” y los bonitos discursos que me transmitieron.

Aunque estoy alucinado incluso si sólo la mitad de lo que se publica es cierto, no hacia falta ser adivino, sino aplicar un poco de lógica y escepticismo.

¿Qué hace un cargo público del PP y dos ingenieros con la carrera recién acabada –sin experiencia profesional o académica, relacionados con las nuevas generaciones del mismo partido– promoviendo un controvertido colegio del que ocupan los tres cargos más importantes y además se dedican a firmar discutibles informes periciales [**] para la administración usando el nombre y sello del colegio?

firmas con sello del colegio

Es lo que tiene la ambición desmedida, que  suele tener efectos colaterales indeseables.

Me parece que no han hecho mucho caso a sus razones para colegiarse:

[...] vela por un ejercicio correcto de la profesión [...] También pretende dar un servicio a la sociedad velando por la calidad profesional dentro del ejercicio de nuestro trabajo y promoviendo el respeto a la deontología profesional.

En realidad sólo parecen haber preocupado del primer “item” de las razones

  • Luchar contra el intrusismo profesional.

si es que se entiende luchar contra el intrusismo a los negocietes informáticos sólo  podemos hacerlo los que tenemos título.

Como informático lo que más me mosquea es que este tipo de hechos sí que agrava nuestra maltrecha “imagen social”. Pero no es culpa de nadie más, sólo de nosotros mismos, en particular  de los que han promovido un colegio y que ya tenga estos antecedentes en tan poco tiempo.

En cualquier otro colegio tradicional esto ya hubiese traído cola. En el de abogados por ejemplo podría significar hasta una suspensión de las actividades profesionales. A ver que hacen los miembros de la junta para justificar mínimamente la existencia de un colegio, por ejemplo haciendo caso de lo que dicen los  artículo 35, 56, 57 y 60 de los de los estatutos redactados y aprobados por las mismas personas.

En mi opinión debería intervenir hasta el propio Govern, ya que el colegio es una organización de derecho público, creado gracias a una ley (Llei 2/2004) aprobada por el anterior gobierno y promovida por miembros de la junta de la junta actual (el proponente a los diputados fue Jaume Matas).

Aunque resulta cansino, nos hace falta en la universidad alguna que otra clase de ética, historia (los colegios profesionales son una figura medieval derivada de los gremios o gilds) y del razonamento científico crítico y escéptico.

[*] No figura en la página web del colegio(¿WTF?), pero la siguiente era la última lista disponible:

  • Decano: Sr. D. Damià Vidal Rodríguez
  • Vicedecano: Sr. D. Ramón de la Iglesia Vidal
  • Secretario: Sr. D. Iván Guardia Hernández
  • Tesorero: Sr. D. Antoni Juanico Soler [***]
  • Vocal: Sr. D. Antoni-Joan Soler Martínez [***]
  • Vocal: Sr. D. Gabriel Buades Rubio
  • Vocal: Sr. D. Gabriel Fontanet Nadal
  • Vocal: Sr. D. Juan José Pol Mera
  • Vocal: Sr. D. Miquel Manresa Adrover [***]

[**] La información publicada hasta ahora ya pone en serias dudas la objetividad exigida por ley –y sujeta a sanciones penales si no se cumple– a los que actúan como peritos. ¿El colegio hará algo sobre este tema que tanto le compete? Perdonad que tenga mis más que razonables dudas :-(

[***] Ahora entiendo porqué no aparece la lista completa. Me acaban de informar que esas tres personas presentaron su renuncia el pasado noviembre. Aunque sin confirmar, parece que se había propuesto a Alexandre Guardia Hernández para que ocupase el cargo de gestor o “gerente” del colegio.

Actualización

Me informan que una de las empresas en cuestión es Auditoría Informática Balear S.L (CIF B57144784, constituida en 2002). En los datos del registro mercantil el administrador único de la sociedad  es Alexandre Guardia Hernandez (uno de los detenidos, hermano de Iván, secretario del colegio).

Una de las curiosidades es que el domicilio social es Carrer Annibal 25 (C/ Annibal, 25 1º A en la Agencia de Protección de Datos), es precisamente la misma dirección de atención al público del Colegio de Informática.

No acaban las curiosidades, esta empresa ofrece los servicios de “custodia digital”. Allí afirman:

Todo el proceso esta [sic] visado por el Ilustre Colegio Oficial de Ingenieros en Informática, el cual establece sellos digitales con marcas de tiempo. Esto acreditará que el contenido no es modificado ni en contenido ni en fechas. Posteriormente, la información sellada, se guarda en caja fuerte notarial.

También dicen en uno de los diagramas:

Los datos seleccionados son firmados y visados digitalmente por el Colegio Oficial de Ingenieros en Informática, incorporando un sello de tiempo en la firma.

Pero resulta que en ningún lugar se puede comprobar que el Colegio de Informática ofrezca esos servicios. Estaría bien que alguien me informe quién más los utiliza si es que existe ¿o es que se pueden inventar servicios o crearlos sólo para una empresa y no ofrecerlas públicamente?

También afirman en la página de “certificaciones”:

El Colegio Oficial de Ingenieros en Informática (COEIIB) garantiza ante la sociedad que todos sus colegiados cumplen con los requisitos formales y legales para el ejercicio de la profesión de una forma correcta, profesional y ética. Por ello el Colegio promueve el código deontológico del Ingeniero en Informática como guía de comportamiento en el desarrollo de la profesión y sus relaciones con la sociedad.

Son cachondos estos chicos.

PS: ¿es que leen mi blog o tenemos los mismo informadores? :roll:

Abril 19, 2008

Ejercicio de ética comparada

Archivado en: legales, ética — gallir @ 2:51 pm
Tags:

Primero hay que leer cuidadosamente el bonus de este apunte. Luego la noticia Detenidos un ex cargo público del Govern y otras tres personas por presunta malversación. Y por último la Junta de Govern. Aunque sólo aparece el nombre del Decano, otro de los detenidos también es miembro de la junta del colegio –creo que secretario–, y de estrechas relaciones con Bitel y el gobierno anterior [*].

La divulgación de esta noticia en todos los periódicos es obviamente una operación mediática del gobierno actual, pero no deja de ser un buen ejercicio de ética deontológica, o de cómo los en principio pequeños detalles que chirrían pueden ser síntoma de distorsiones aún mayores.

Si al final me van a convencer que me colegie, monte una candidatura y proponga una auditoria ética-técnica a fondo de todos los informes que han llevado el sello del colegio… y una vez acabada pedir la autodisolución, lo que tan mal empieza no puede acabar bien :roll:

[*] Estoy analizando y preguntando por los  temas legales y éticos para ver si es razonable publicar los chapuza-informes periciales de algunos de los involucrados, con sello del Colegio Oficial de Informática, de otro juicio donde estuve involucrado como perito de la parte acusadora contra la administración. Ante mi informe técnico contestaron con un ataque ad-hominem de 49 páginas para acusarme de falta de profesionalidad y de inventar métodos para confundir al juez (aunque el abogado me aclaró que es una táctica habitual), acompañado de otro informe pericial contradictorio con el primero y muy en la línea con el mío,  pero con errores muy gordos que no han sabido justificar en la comparescencia ante el juez.
Actualización
: El primero es mi informe pericial sobre el caso comentado. El informe pericial de la administración consistió de… media página. Luego mi respuesta a las objeciones y segundo informe pericial.

La verdad acerca de las consultoras

Archivado en: internet — gallir @ 1:44 am
Tags:

Es sabido que no gozan de muy buena fama, ni siquiera entre los becarios empleados de las consultoras. Cringely hace un incompleto –tiene muhcos amigos consultores :-)– pero buen resumen en The Truth About IT Consultants: Some are great but most are not.

Al final enumera las diez mentiras típicas de los consultores y propone que se tomen dos cursos de acción: a) despedir inmediatamente al consultor b) traer al más friki más listo de la empresa para que el consultor le explique los detalles.

  1. Esto sólo se puede lograr con el desarrollo de un gran proyecto personalizado.
  2. Por supuesto que sus datos están seguros.
  3. Necesitaremos un día o dos para optimización y depuración.
  4. Sí, lo hicimos antes. Hay varias empresas usando este producto (o tecnología). Realmente les gusta.
  5. La consolidación de servidores y la virtualización le ahorrará dinero.
  6. La consolidación de almacenamiento y la virtualización le ahorrará dinero.
  7. La actualización (o cambio) será muy suave y no afectará a la producción.
  8. La actualización (o cambio) será transparente para los usuarios.
  9. Sí, lo probamos meticulosamente antes de instalarlo.
  10. Si instala Tivoli, se resolveran todos sus problemas de soporte.

No está mal para comenzar, pero yo añadiría una verificación que es muy útil a la hora de leer el “informe de requerimientos” y “soluciones propuestas” que presentan las consultoras. Para ello acostumbran hacer entrevistas a todos los empleados de la empresa que los contrata. Entre las entrevistas preguntan “¿y usted cómo lo solucionaría?”.

Antes que hagan la entrevistas, pida a los empleados que redacten un pequeño resumen de las mejoras que ellos proponen. Guarde todos esos informes, y cuando la consultora le presente el bien maquetado informe, compare las soluciones propuestas con las que escribieron sus empleados.

Ahora échese unas risas y preparese para negociar una baja del presupuesto y una buena cena para su propia gente. Además ya habrá aprendido qué hacer antes de gastar dinero en costosas consultoras… lo que me hace recordar el cuento aquel del campesino y el consultor :-)

PS: Disculpas por ese “acer” que se me escapó. Todavía me estoy flagelando.

Google WepApp versus Django

Archivado en: desarrollo, internet — gallir @ 1:11 am
Tags: ,

Estoy haciendo pequeñas pruebas con el Webppp de Google Apps y Django. Y me parece mucho más simple y sobre todo “natural” el Wepapp que Django. Tienes menos funcionalidades, por supuesto, la más obvia es la interfaz “admin”, y en menor grado la gestión de usuarios y sesiones y los formularios (aunque tiene tela que no se incluya por defecto la protección contra CSRF).

Aún así la curva de aprendizaje del WebApp me parece menos empinada y una mayor flexibilidad. Por ejemplo se pueden definir los URLs en el index.yaml y/o en el la creación de la instancia con el webapp.WSGIApplication() sin “violar” el patrón.

Luego el helper para usar Django en Google App me parece muy enrevesado y rebuscado.

¿Será que Django es un overkill para GoogleApp o vale la pena?

Todavía no me han dado la cuenta que solicité. ¿Alguien probó portar un proyecto Django?

Abril 16, 2008

Diseño, ingeniería, ágiles… y frameworks

Archivado en: internet, software libre — gallir @ 11:44 pm
Tags:

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?

Entradas siguientes »

Blog de WordPress.com.