The Uses and Abuses of History, un libro prescindible

Hace unos días comenté acerca de un libro de Margaret MacMillan que estaba comenzando a leer. Se trata de The Uses and Abuses of History y aunque tiene algún momento interesante, sobre todo en su primer tercio, el mismo se siente bastante flojo cuando pasa ese tramo inicial y uno se queda esperando una entrada profunda en materia que simplemente no llega.

La realidad es que es un libro muy finito, así que en cualquier caso uno no pierde demasiadas horas con él, pero es que podrían ser menos. Esto podría haber sido una columna de estas que uno puede encontrar en New Yorker o The Atlantic de vez en cuando. Incluso más, podría haber sido una fantástica charla TED, de estas descafeinadas que te arreglan el mundo sin remangarse.

En este sentido se me hace desafortunado que el titulo parafrasee sin más el nombre de un ensayo publicado por Nietzsche hace más de un siglo (algo así como Sobre la utilidad y las desventajas de la historia para la vida, en título original Vom Nutzen und Nachteil der Historie für das Leben). Y eso que no me he leído el ensayo de nuestro amigo Federico Guillermo.

No siempre va a emocionarnos lo que leemos y no siempre hay que terminar pensando que el libro que acabamos de leer nos va a cambiar la vida.

El rol del usuario final en los procesos de integración y verificación

Hay un interesante y largo artículo en Ars Technica donde al hilo de los últimos problemas en la actualización periódica de Windows 10 se abordan cuestiones muy interesantes.

En él se explica qué Microsoft plantea que Windows 10 sea la última gran versión de Windows, a la que ir añadiendo funcionalidad en un par de nuevas releases al año. De esta forma, en lugar de sacar una versión del sistema cada tres años, los usuarios reciben mejoras incrementales y nueva funcionalidad dos veces al año.

Hasta aquí nada que deba sorprendernos por aquí, ya que es el sistema usado por Canonical con Ubuntu desde 2004. Es un paso adelante en la entrega ágil de funcionalidad, y eso nos encanta en este blog. 100% de acuerdo con este enfoque.

Volviendo al artículo, aunque todo él es interesante (recomiendo leerlo), me llama hoy la atención sobre todo la sección donde se habla de las pruebas de integración del nuevo código:

A reasonable expectation is that Microsoft would have a set of tests around this new code to verify that it works correctly: (…) in any kind of respectable agile development process, there will be tests to verify all the operations work as expected, and make sure that the API does what it’s supposed to do.

Moreover, one would expect any code change that broke those tests to be rejected and not integrated. The code should be fixed, and it should pass its tests, before it’s ever merged into the main Windows code—much less shipped to beta testers.

Y, sin embargo, eso es precisamente lo que sucedió: el código llegó a los usuarios con bugs realmente graves que han provocado pérdida irreversible de datos en multitud de sistemas. Solo hay dos opciones: o no se está probando bien el código o se está integrando código que no pasa los tests por el motivo que sea (¿quizá el equipo de desarrollo no considera ciertos fallos como suficientemente graves?). Ninguna de las dos suena muy razonable dada la envergadura de la metedura de pata mencionada en este mismo párrafo, con sistemas borrando datos sin remedio.

Esta situación no es achacable al uso (bueno o malo, está por ver) de metodologías ágiles para desarrollar Windows, ya que en el viejo esquema de una actualización cada tres años era habitual esperar a los Service Pack para que el sistema fuera realmente sólido. Sin embargo, en un mundo sin service packs y con releases semestrales, la mayor parte del tiempo los usuarios conviven con un sistema inestable, a menos que pulas mucho tu proceso.

Acerca de los procesos de I&V, continúan en Ars Technica:

Many of these testers [who were working in Windows] were laid off or reassigned in 2014, with the idea that more of the testing burden be shifted to the developers creating the features in the first place. The Windows Insider program also provides a large amount of informal testing—with many millions of members, it’s much bigger than any of the Windows beta programs ever were.

It’s not certain that the old approach would have necessarily caught the data loss bug; perhaps the dedicated testers wouldn’t have tested the particular scenario needed to cause data to be deleted. But it is clear that Microsoft is struggling to handle the bug reports made by the non-expert testers in the Insider program.

Y llegamos al meollo del asunto: el debilitamiento de la función de I&V dentro del proyecto y la externalización de las pruebas en el usuario final. Tampoco es algo que no nos suene, al fin y al cabo, ¿quién no ha pasado una etapa de su vida viviendo al límite con una estación de trabajo en Debian Sid? :)

El problema es que Microsoft es un producto comercial, cuya base de usuarios es generalista. No creo que el software pueda ser testeado mayoritariamente por usuarios finales, pero si hay un software que no pueda delegar la realización exhaustiva de pruebas en sus usuarios es precisamente software de uso general como Windows.

Si Microsoft está teniendo problemas seguramente deba introducir mucha más automatización en sus sistemas de integración y verificación. En realidad, algo que debería haber sido condición previa a esa reasignación de testers en otras funciones.

Tener feedback de usuarios, informes de error y uso general del software, es importante y valioso. Sin duda es algo que permite mejorar el software que se entrega, pero el grueso del testeo no puede recaer sobre estos usuarios. Si recae sobre ellos, aunque lo llamemos beta, o incluso release, les estamos entregando una alfa.

Se puede hablar mucho más de este tema y de este caso concreto, pero creo que por ahora yo me quedo aquí: no puedes delegar el testeo en el usuario final y si no te está dando tiempo a testear adecuadamente la solución no es huir hacia adelante (mergear sin probar) sino buscar formas de automatizar más y mejor los procesos de integración y verificación.

Sociedad infantilizada y pobreza democrática

Sigo avanzando a ritmo de caracol con las lecturas que tengo in progress, aunque me van reportando todas ellas buenos momentos. En esta ocasión destaco una idea de The Uses and Abuses of History, de Margaret MacMillan:

The proper role for historians, Howard rightly says, is to challenge and even explode national myths: «Such disillusion is a necessaroy part of growing up in, and belonging. to an adult society; and a good definition of the difference between a Western liberal society and a totalitarian one – whether it is Communist, Fascist, or Catholic authoritarian – is that in the former the government treats its citizens as responsible adults and in the latter it cannot

Cuando ves al gobierno apesebrando a adultos siendo tratados como niños incapaces de buscarse la vida, con una nula resistencia a la frustración, y en la que hasta las cosas más inofensivas son causa de ansiedad te das cuenta de lo delicada que es la democracia en que vivimos cuando en todos los rincones del Mundo libre, como lo definió Timothy Garton Ash, los estados son los principales responsables de la infantilización de sus ciudadanos.

La primera frase de la cita, la que habla de no perder de vista que los mitos nacionales son exactamente eso, mitos y leyendas, da también para mucha reflexión. Siempre me gustó mucho El bosque originario de Jon Juaristi, que trata muy bien esos temas.

Aléjate del ruido de las redes, devuélvete a ti mismo el tiempo para pensar

En The Asynchronous Life, Om Malik cuenta algunas cosas que reverberan con otras que he leído a Pere recientemente en su Només 5 Línies. A saber: que desconectar del frenetismo informativo al que nos sometemos voluntariamente es muy positivo para el pensamiento complejo. Y pocas cosas son tan valiosas como el pensamiento complejo, que es lo que nos permite avanzar.

Alejarnos del ruido cotidiano de las noticias y del miedo a perdernos cosas en servicios y medios tóxicos como Facebook o Twitter y su agotador timeline nos permite volver a pensar durante más rato en un mismo problema, sin que nos cambien el foco, dándonos tiempo para conjeturar y elaborar pensamientos más complejos, más sofisticados. Dice Om Malik:

No creo que podamos estar desconectados — necesitamos la red para cosas básicas de nuestra vida. Y aún tenemos la colmena [nota: el ruido de las redes sociales] a una aplicación y un tap de distancia.

Pero hay una opción. Podemos ser asíncronos o conectar cuando lo necesites. ¿Quieres oir Spotify? Conecta. ¿Quieres llamar un Uber? Conecta. ¿Quieres pagar unas facturas? Conecta. ¿Necesitas Amazon? Conecta. ¿Quieres socializar? Ve a tomar café, o invita a un amigo a tomar café. ¿Quieres informarte? Evita los servicios de red social. En su lugar, lee uno o dos libros.

Aunque de otra forma, en notas dispersas y más a vuela tecla que otra cosa, Pere se expresaba en términos parecidos. Las redes nos distraen con un doble efecto negativo: nos imponen una agenda que en realidad podríamos y deberíamos evitar, y al ocupar nuestro pensamiento con la ansiedad que generan, nos privan de mirar a los problemas con perspectiva y de reflexionar lentamente sobre ellos. No sé si Google nos está haciendo tontos, como rezaba el libro aquel, pero sí que opino que servicios como Twitter o Facebook nos impiden alcanzar nuestro potencial intelectual, nos empantanan.

El principal problema con estos servicios para redes sociales es el esquema de notificaciones y aplauso de poco valor con el que nos enganchan, que recurren por diseño a los esquemas de recompensas variables que tan nocivos son por la adicción que generan. Este tipo de tretas psicológicas se ha usado tradicionalmente en las máquinas tragaperras, y ahora alimentan esa plaga contemporánea que son las apuestas online y los locales de apuestas que proliferan en nuestros barrios. Son también la base del sistema adictivo de los servicios de redes sociales.

Hay un par de buenos artículos de Hugo Sáez sobre este tema, muy divulgativos. En ellos, Hugo habla del rol de la dopamina, sobre la que sabemos que podemos literalmente engancharnos a su presencia en nuestro organismo y sentir abstinencia (incluidos dolor y miedo) cuando no desencadenamos la descarga de dopamina a la que nos hemos enganchado. Comenta Hugo:

En el caso de las redes sociales, el sistema de recompensa variable busca generar estos loops de dopamina con la intención de que no abandonemos las plataformas. Al fin y al cabo, cuanto más tiempo pasemos en ellas más anuncios veremos y por lo tanto más dinero ingresarán gracias a la publicidad. Para crear estos loops utilizan varios recursos, aunque el más importante son las notificaciones constantes.


Las notificaciones pueden ser sonoras, visuales o de movimiento (vibración del móvil) y son la señal para introducirnos en el loop, ya que nos generan la curiosidad necesaria para buscar una recompensa. Sin ellas las redes sociales no atraerían tanto nuestra atención ni conseguirían el comportamiento.

¿Por qué una notificación se equipara a una recompensa variable? Porque quizá estás esperando que una persona en concreto le de Like a esa foto, o te retuitee, y en ocasiones será así, y otras veces te llevarás el chasco y será otra persona interactuando con otro mensaje diferente. Bummer. Decepción. EMOSIDO ENGAÑADO.

Si unimos todo lo comentado en este post junto a lo que ya mencionamos en De Hannah Arendt a Facebook, no se me ocurren motivos por los que empecinarnos en el uso de éstos. La única opción sensata es usar estos servicios de red social con tanta frugalidad como sea posible, y nunca como fuente de información primaria.

Creo que ése va a ser mi propósito personal para el curso que estamos comenzando. Si a primeros de año decidí retomar el blog más en profundidad, y creo que he mejorado bastante respecto de a los dos o tres años anteriores, el siguiente paso es dejar de lado los servicios de internet que alimentan dinámicas tóxicas. Espero conseguirlo, deseadme suerte.

Microsoft se une a la Open Invention Network

Microsoft acaba de anunciar que se une a la Open Invention Network (vía The Verge), cuyo objetivo es ayudar a defender a Linux frente a litigios vinculados a patentes de software, ya que los integrantes acuerdan poner sus portfolios al servicio de la defensa frente a posibles demandas.

Es una buena noticia, se mire como se mire. No es novedad el apoyo de Microsoft a Linux y el software libre en general, pero este movimiento continúa la suma. Cómo ha cambiado el cuento en unos años, ¿verdad?

Pese a todo, a un servidor le queda el sabor agridulce de ver que el problema de fondo, que no es otro que la existencia de patentes de software, continúa presente e irremediablemente implantado. Otras formas de defender a las empresas que desarrollan software han de ser posibles. Las licencias comerciales son válidas para ese fin y tan legítimas como las licencias libres, por ejemplo, y no imponen el peligro a la competencia que sí instauran las patentes, dañando a la libre competencia, tan importante para la innovación.

Daños colaterales

«People are often willing to produce a lot of collateral damage if they can retain their theory.»


Jordan B. Peterson, en 12 Rules for Life: An Antidote to Chaos


Este blog usa cookies para su funcionamiento.    Más información
Privacidad