sábado, enero 31, 2009

El desarrollo guiado por modelos está muerto?

En los últimos días, se han extendido dos o tres certificados de defunción; rápidamente se ha dado por muerto a SOA, y ahora (bueno, ya hace uno o dos años algunos teóricos darían por muerta alguna variante) también al desarrollo basado en modelos (MDA, MDD, MDE y otros semejantes). En la muy reciente Model Driven Software Network, se ha abierto una discusión sobre este asunto, que tiene la virtud de exponer los puntos débiles del paradigma, o estándar, según cuánto esté cada uno adherido al estándar MDA de OMG. La crisis económica sin duda empuja a la simplificación de costos, y esto alcanza a las "olas" de novedades tecnológicas: sólo lo que tenga verdadero valor quedará, o al menos, rebrotará.
¿Es MDD una ola comercial?. Claramente, no. MDD es la etapa actual (seguramente no la última) de esfuerzos comenzados hace quizá más de veinte años, con la aparición de las herramientas CASE. Puede extinguirse una rama de desarrollo, un punto de vista de cómo lograr el objetivo, pero la meta en sí ha sido reafirmada contínuamente por la industria y la comunidad académica. Puede incluso que se demore o estanque su crecimiento bajo las actuales circunstancias, pero no más.
Repasando la discusión en curso en The Model Driven Software Network, las principales objeciones van encaminadas particularmente al punto de vista MDA (Model Driven Architecture), y dentro de él, a la capacidad de UML de representar la dinámica de un modelo; UML, se afirma, es capaz de generar clases basadas en el modelo estático, pero luego es necesario completar el código generado escribiendo código que describa su conducta (behavioral). Así, Vlad Varnica afirma que el modelo UML suele ser abandonado tras la primera iteración ("The model driven and the iterative approach are not compatible"), porque la regeneración de código elimina el código manual, que debe ser reinsertado. Esta y otras participaciones en la discusión ponen el acento de las dificultades de adopción en este punto. Tiempo atrás, esta fue una objeción de los proponentes del modelo Software Factory (Jack Greenfield, Steve Cook, Keith Short), cuestionando en bloque la capacidad de UML para facilitar el modelado y la generación automática de código (En realidad, SF tampoco promovería simplemente la generación automática de código, sino una combinación de agentes, que no descartaría el código manual).
Creo haber comentado en distintas ocasiones que la herramienta que utilizo (Plex) no requiere centralmente UML; puede interrelacionarse con un modelo estático UML, pero no lo necesita: El modelo construído en su caso puede expresar igualmente su aspecto estático, pero, fundamentalmente, es capaz de expresar su aspecto dinámico dentro del modelo con toda la precisión que se necesite. En ocasiones puede requerirse código manual para acciones muy específicas, pero integrado de tal manera en el modelo, que no es afectado (no es sobreescrito) en una regeneración (una iteración). De tal forma, se logra un objetivo fundamental: que dada una aplicación, ésta sea expresada en el modelo de manera prácticamente completa. Esto tiene dos consecuencias muy importantes: es posible derivar del modelo la aplicación a distintas plataformas, y es posible modificarlo (sin temor a la regeneración del código).
¿Y a qué viene este comentario? A que el punto básico cuestionado a MDA/UML, que es su baja capacidad de describir las acciones, métodos, eventos, puede ser resuelta por alguna vía. En fin, que no se trata de un desarrollo en vía muerta, sino de un desarrollo que todavía debe encontrar el medio de resolver un obstáculo. Podríamos decir que uno de sus cuestionadores más agresivos del último tiempo, Software Factories, hoy está más comprometido que su escarnecido rival (MDA), a tal punto que los grandes críticos hoy vuelven a UML...

domingo, enero 25, 2009

Una discusión valiosa (pero parcialmente obsoleta)

Probablemente en el marco de la defensa del concepto de Software Factories, Jack Greenfield (Microsoft), discute, en febrero de 2007, con Steven Kelly (Metacase), Brian Selic (IBM/Rational, miembro de OMG), y Martin Danner y Mauro Regio, por Microsoft.
Planteos de interés:
De Martin Danner:
As I monitor the online chatter among folks creating this new model-driven development technology, I am concerned that the discussions center mostly on academic concepts, with little or no concern as to whether the typical IS shop is ready or able to adopt it. I often wonder if this new technology will require special skills that don't currently exist in the IS workforce. Will developers treat models as a new kind of development language, or will model-driven development be limited to only a few who are willing and able to master it? Will these models be first-class artifacts throughout the entire life cycle of an application, or will the fancy code generators all be abandoned as soon as the developers start tweaking the code directly?
De Steven Kelly:
The last time we heard a message promising massive productivity increases was with CASE tools and fourth-generation languages like PowerBuilder. They failed to bring about the expected revolution, because they tried to impose three things on the users: a way of working, a way of modeling, and a way of coding. Since the tool vendor's way rarely fit with the users' existing practices, there was a major disconnect. Of all the problems, perhaps the difference between the generated code and the kind of code the users had handwritten was the worst. Because the vendors had to make one tool work for as many people as possible, the code generated couldn't be tuned to the specific needs of all its users. It also had no chance to take advantage of their existing investments in code and frameworks.
Steven Kelly apunta sobre Software Factories:
I have [to] disagree with Jack [Greenfield] when he says [the] model-driven development world can be categorized in the MDA and the software factories, and these are the two leading approaches. He is right clear between the MDA and the rest, but I don't see many people in the rest would accept being labeled in the software factories. For one thing, is not necessary the most appropriate refactoring the names, being all-too-easily misunderstood, because there is false analogy between the program mist and factory's assembly-line workers, and also the disconcertingly having the same abbreviation as "science fiction."
La discusión merece ser analizada. ¿Y qué tiene de obsoleta? Que las afirmaciones de Kelly sobre las Software Factories de Greenfield/Microsoft , certeras, hablan de algo que parece haber derivado a vía muerta. Microsoft hoy habla de Oslo, M, Quadrant, UML (!), OMG (!), y probablemente no desee recordar demasiado a SF.
Y quizá además algunas afirmaciones sobre DSL tampoco sean ya tan rotundas.
Las direcciones de la discusión: en Microsoft, 1 y 2. En ARCast.

jueves, enero 22, 2009

The Model Driven Software Network se pone en marcha

Adelantado hace unos días, esta red de discusión sobre desarrollo basado en modelos comienza a trabajar: en alrededor de una semana, ha sumado setenta y cinco miembros, y ha iniciado dos o tres líneas de discusión de mucho interés. Y los miembros que se incorporan pueden aportar mucho, ya que representan una suma importante de conocimiento y práctica en este terreno.
Contradictoriamente, la línea de discusión de mayor interés en la primera semana, se pregunta si MDD ha muerto. Más adelante, se expondrán aquí algunas ideas al respecto.

domingo, enero 18, 2009

"La diferencia en la calidad no proviene de las máquinas, sino de la gente"

David Lu, introduciendo el libro "¿Qué es el control de calidad?" de Kaoru Ishikawa, reproduce las palabras de un directivo de Sony (en la década de los 80):
"Ultimamente hemos tenido muchos visitantes de los Estados Unidos y Europa que desean observar nuestra tecnología de fabricación de discos fonográficos. Saben que nuestros discos suenan mejor, pero cuando visitan la planta descubren que empleamos la misma tecnología, la misma prensa y las mismas materias primas. Algunos insisten que tenemos soluciones secretas y piden que les dejemos inspeccionar los residuos. Naturalmente, no encuentran nada distinto de lo que hay en sus propios residuos. Ponen expresión de desconcierto cuando les digo que la diferencia en la calidad del sonido no proviene de nuestras máquinas sino de nuestra gente"
Este es un punto que subsiste como asunto no resuelto décadas después. Árduamente discutido en la industria automovilística norteamericana hoy, refiere a una diferencia cultural que persiste en no ser comprendida o asumida: dónde se debe poner el acento.
Ford, General Motors, Chrysler, han tratado de aplicar las técnicas japonesas, e incluso han desarrollado proyectos conjuntos con Toyota, pero sin embargo, la distancia no se acorta. Existen múltiples aristas que pueden explicar la diferencia, pero ahora sólo quisiera apuntar dos, que posiblemente deban cambiar si se desea salir de esta crisis bien parado: pensar en el largo plazo, y respetar, escuchar, y contar con la gente.
Como comenta John Hunter,
[A propósito de la oferta de Toyota de emplear su personal en tareas comunitarias durante el paro programado, calificado de "paternalista" por algunos comentaristas] This is not behaving in a paternalistic manner, this is behaving in an honorable manner with the other long term stakeholders that have a shared interest in the long term success of the company. When managers and executives do their jobs the company will succeed in good times and have a plan for bad times and will deal effectively with obvious long term issues. Health care costs, pensions costs, and bad labor-management relations have been obvious critical issues to solve for GM, Ford and Chrysler for decades. The pathetic job those 3 have done with those, and other issues (they still don’t understand how to work with suppliers, how to stop the obsessive focus on quarterly profits, how to demand honorable behavior [not looting] from senior executives…), lead to their current situation.
Pensar en el largo plazo parece no ser apropiado en nuestro ambiente, por lo que la palabra "burbuja" parece inherente a los criterios de construcción de negocios.
Y de contar con la gente, no hace falta explicarse mucho. Aquí se han comentado más de una vez distintos casos de no respeto, no contar, no participar...Pensar que una técnica, unas normas de manejo de proceso, el progreso de un proyecto, pueden lograrse sin contar con la gente, es conducirse al fracaso, o a obtener resultados solo cuando la bonanza ayuda.
Y ahora la bonanza no existe.

sábado, enero 17, 2009

Qué hace excelente a un educador

Fernando Bordignon, a quien no conocía, publica una síntesis de un libro de Ken Bain, dedicado a analizar las características que hacen a un profesor ser relevante en su trabajo. No lo voy a repetir, sino invitar a leer su visión, y, un paso más, a leer lo que Bain escribiera.
Ken Bain es director del Center for Teaching Excellence de la Universidad de Nueva York. Durante años se dedicó a buscar y estudiar a los mejores profesores de los Estados Unidos, y en esta obra presenta una síntesis del modus operandi de estos grandes profesores que consiguieron que sus alumnos además de aprender, fueran una guía, modelo o una simple influencia positiva y un buen recuerdo para el resto de sus vidas. No considera un buen profesor aquel que prepara bien a sus alumnos para el examen, sino aquel que consigue que sus alumnos valoren el aprender, obtengan un pensamiento crítico, se enfrenten con creatividad y curiosidad a la resolución de problemas, y también con compromiso ético, además de amplitud y profundidad en el conocimiento específico. Lo que Ken Bain expone en este libro es un montón de ideas para reflexionar concienzudamente, no una lista de técnicas que permiten ser aplicadas de forma inmediata para conseguir ser un buen profesor automáticamente. El profesor que desee mejorar su calidad docente debe no sólo leer el libro, sino releerlo en años sucesivos o, al menos, releer este resumen una y otra vez, que le recordará ideas para seguir mejorando.
Muchas de las características resaltadas me recuerdan a Sócrates, cuyo método es mencionado explícitamente por Fernando.
Quién me sugirió esta nota? Creo que fue Luis, que lo leyó en CodeAr.

jueves, enero 15, 2009

domingo, enero 11, 2009

Un proyecto interesante

Mark Dalgarno está comenzando un proyecto que podría ser muy interesante, tan pronto como sea acompañado por aquellos desarrolladores o teóricos interesados en el desarrollo guiado por modelos. Se trata de The Model Driven Software Network, que potencialmente puede convertirse en un foro abierto de discusión sobre el tema, con material y preocupaciones abiertos. Mark suma antecedentes de importancia para darle impulso: Es desde hace tiempo uno de los impulsores de Code Generation, así como de sus conferencias, y un especialista en Lineas de Producto Software. Una excelente combinación.

sábado, enero 10, 2009

Internet no comprendido

Dos noticias de los últimos días confluyen a pesar de la distancia que las separa: si bien el ancho de banda disponible en Iberoamérica (Latinoamérica + España) crece, continúa siendo insuficiente, y un factor fundamental es el carácter monopólico de la estructura que la entrega. A ambos lados del Atlántico, un proveedor mayoritario (y el mismo), y retaceos en la inversión. Las enormes y multiplicativas oportunidades (de negocio, conocimiento cultural e informativo, de intercomunicación) que una red global rápida permitiría, todavía están subvaloradas o descuidadas: el monopolio no es buen amigo de la innovación y el riesgo.
Primera noticia: Juan Pablo Dalmasso en América Economía resume el estado de Internet en América Latina, señalando las taras a su crecimiento.

El crecimiento del mercado es rotundo, a un ritmo del 46% anual según el Barómetro Cisco; los backbones nacionales e internacionales están más que bien, "pero no hay suficiente competencia para que haya servicio de calidad". "Y no sólo en Argentina, sino en toda la región", apunta desde Oregon el argentino Juan Pablo Fernández. Salvando el caso de Chile, que es el único país de América Latina, junto a Cuba, que obliga a la interconexión de servicios, y cuenta con la fuerte presencia de VTR, la competencia no sería el mejor brillo de la red. Brasil es similar a Argentina, asegura Juan Pablo Fernández ,director de investgaciones para Telecomunicaciones de Gartner, y México, aun peor. Si bien las cableras mexicanas podían proveer servicios hasta hace poco, cuando comenzó el proceso de consolidación "no fueron una opción real", analiza.

La práctica de hacer fuertes promociones y dejar las inversiones para después no ha sido extraña a las operadoras de la región. Su consecuencia es la saturación de las centrales en desmedro del servicio. Para colmo, la última milla es precisamente una parte del negocio sensible al mantenimiento, más aún teniendo en cuenta que en muchas zonas los pares de cobre no son precisamente nuevos. "La experiencia no es buena y te obliga a contratar el doble de ancho de banda de lo requerido para estar satisfecho", observa desde Córdoba Diego Ghione, presidente de GlobalThink Technology, una pyme tecnológica dedicada al desarrollo de tecnologías para VoIP. Tal es la desconfianza de los usuarios que en la encuesta realizada por IDC entre ejecutivos de las telecomunicaciones presentes en la feria Futurecom 2008 de São Paulo, cuando pregunta sobre el desarrollo de 3G como una alternativa competitiva, el 92% dijo que estas innovaciones van a elevar el tráfico de datos, pero el 56% consideró que los operadores no están preparados para manejarlo.

Un factor común en la región es el ancho de banda ofrecido, todavía muy escaso:

Por un lado, según cálculos de IDC publicados en el Barómetro Cisco de la Banda Ancha, Argentina se ubicaba como la proveedora de mayor ancho de banda, con más del 80% de las conexiones superando los 512 kbps y más del 40% superando la capacidad del 1 megabit por segundo a junio de 2008. En el mismo período, Brasil seguía esta tendencia, con casi un 60% de las conexiones superando los 512 kbps y un 28% superando 1 mbps. El problema es que 512 kbps a esta altura de la historia es más una conexión siempre on que realmente banda ancha. "Una conexión corporativa parte de 2 mbps, una internet con VoiP y video, entre 1 y 2 mbps funciona bien, y si hablamos de triple play ya deberíamos hablar de 4 a 6 mbps", dice Daniel Gemse gerente de Ingeniería de Sistemas de Cisco para Argentina, Uruguay y Paraguay.

La misma compañía anticipa el crecimiento feroz de contenidos para 2012. Sólo entre consumidores finales de América Latina se espera que el tráfico IP sobrepase los 32 exabytes (1.000 a la octava) mensuales para 2012. Aunque la mayor parte del consumo actual de tráfico IP es tráfico de datos, el vinculado con la IPTV (televisión sobre internet) y el VoD (video a demanda) tendrá una tasa de aumento anual en la región de más del 68%, llegando a ser el 90% del tráfico total que corra por la red. Si es que el ancho da para que corran.

Para Dalmasso, la solución camina junto a una mayor competencia. La competencia es un artículo raro, escaso y evitado en la región.

La noticia relacionada en España proviene de cifras de Eurostat, correspondientes al primer trimestre de 2008, en cuanto a la adopción de Internet en Europa, donde España aparece aún en posiciones intermedias, distante de los países punteros (Países Bajos, Suecia, Dinamarca). En este caso la noticia fue reproducida en casi todos los medios, sin mucha profundización. Una de las más amplias es la publicada por El País, que sigue:
España no está ni en la mitad de la tabla en lo que penetración de la Red se refiere dentro de la UE, con un puesto número 12, empatados con Lituania. Tan sólo el 51 por ciento de los hogares cuenta con acceso a Internet, mientras que la media de la Unión Europea se sitúa en el 60 por ciento. Sin embargo, cuando se trata de conexiones de banda ancha, la media sí que se acerca bastante al porcentaje promedio del viejo continente, un 45 por ciento frente a un 48.

Según los últimos datos publicados por Eurostat, la Oficina Estadística de las Comunidades Europeas, a España aún le queda mucho trecho por recorrer en lo que a acceso a Internet se refiere. Se trata del resultado de una encuesta sobre el uso de las tecnologías de la información y la comunicación (TIC) en los hogares de los Estados miembros de la UE y de Noruega, Islandia y Croacia en 2008.

El porcentaje de acceso de los hogares a Internet varía entre el 25 por ciento de Bulgaria y el 86% de los Países Bajos, que encabeza la lista. Además, el porcentaje fue superior o igual al 75% en los siguientes países: Suecia (84%), Dinamarca (82%), Luxemburgo (80%) y Alemania (75%).

Por debajo del 50% hay nueve países además de Bulgaria: Rumania (30%), Grecia (31%), Italia (42%), Chipre (43%), Croacia (45%), Portugal, República Checa (ambos con un 46%), Hungría y Polonia (con un 48% en ambos casos). España se sitúa por los pelos por encima de ese significativo 50 por ciento, con un 51% de acceso, y empata con Lituania.

(...) Sin embargo, al hablar de conexiones de banda ancha la situación mejora un poco. En este caso, nuestro país tiene una media de un 45% de hogares conectados con conexiones de alta velocidad, frente a una media del 48% en todo el continente. En este terreno, España tiene a 14 países por detrás.

Sin embargo, en todos los casos, la nota se remitió a una repetición de cables. Sólo en un caso (y no en un diario) es posible encontrar una observación crítica: "Seguramente que habría que tomarse en serio la necesidad de que haya mayor competencia, más ofertas en la fibra y evitar las ya conocidas como “vacaciones regulatorias” para permitir la extensión de las redes de fibra y banda ancha, con mayor celeridad. Es decir, evitando las restricciones a su comercialización y el remonopolio" (Usuario Bendito, en Banda Total).

El nivel de competencia en España es bastante parecido al existente en Latinoamérica, e indudablemente está influyendo en el uso de Internet, sea en la mejora de infraestructura, sea en las tarifas o en la calidad de servicio. Otros documentos de Eurostat dan cuenta de esto.
El documento original, inhallable en los diarios, está en Eurostat.

jueves, enero 01, 2009

El 1 de enero, un poco de humor...

Acabo de leerlo, y me ha causado un ataque de risa...En Java Hispano el usuario ecamacho publica algunas definiciones célebres sobre la programación, reproducidas de Hackification, de las cuales dos son especialmente irónicas (la segunda es reproducida de un viejo comentario de un usuario de Java Hispano):
Primera
"Mucho del software hoy en día se parece a una pirámide egipcia: con millones de ladrillos apilados uno encima del otro, sin integridad estructural y hecho por pura fuerza bruta y miles de esclavos." (Alan Kay)


Segunda

(-dice ecamacho-...y esta otra que me hizo mucha gracia del usuario [zx81] quien nos compartió su sabiduría en una noticia en este sitio hace unos años:) "Llevo 16 años trabajando y he pasado por más de media docena de empresas, habiendo participado en proyectos pequeños, medianos y grandes, en el sector público y en el privado. Mi experiencia y la de mucha otra gente es que el método seguido habitualmente es el de tipo "Braveheart", a saber:

  • Te pintas la cara de azul y blanco

  • Te pones una falda escocesa
  • Coges el primer objeto contundente que tengas a mano
  • Corres colina abajo con el resto de tus colegas a ver cuantos ingleses puedes degollar antes de que te degollen a ti
  • Fin del proyecto."