¿Y si Uber no fuera un gigante tecnológico como los demás?

Se ha hablado mucho de Uber, incluso en este blog hemos hablado con anterioridad de esta compañía tanto hablando de taxis y privilegios como, más al hilo con el tema que comentamos hoy, hablando de economía colaborativa y audacia comercial o de barreras de entrada para montar negocios digitales.

Habitualmente se compara a Uber con un gigante tecnológico al uso, como Amazon o Twitter. Así se justifica el hecho de que a punto de cumplir los 10 años, Uber aún no solo no esté obteniendo beneficios, sino que continúe quemando dinero a razón de unos 1000 o 1500 millones de dólares al año. Se dice pronto.

Resulta de especial interés, por tanto, responder a la pregunta que nos hacemos en el título: ¿Y si Uber no fuera un gigante tecnológico como los demás? Un artículo publicado en NY Mag da buena cuenta de las semejanzas y diferencias entre Uber y otras grandes empresas del momento, y la verdad es que encuentra muchas más diferencias que semejanzas.

De la ausencia de efecto red característica de las empresas de internet a la ausencia de economía de escala en la compra de los vehículos que esperarías de un gigante de su sector. Siendo esto último solventable, lo cierto es que si Uber centraliza la propiedad de los coches, el discurso ha de cambiar del somos una empresa de Internet al somos una empresa de taxis con una app encima, y esto es exactamente lo mismo que otros cientos de empresas que le están haciendo la competencia.

En general, una muy buena lectura para reflexionar en este finde que comienza.

Clean Code, Robert C. Martin y un montón de buenos consejos para programar mejor

Clean Code, Robert C. Martin

Hace un tiempo me recomendaron leer Clean Code de Robert C. Martin, un libro que contiene argumentos e ideas para mejorar el código que programas recurriendo a factores a menudo minusvalorados como el nombre de las variables y los métodos que vas programando.

No puedo destacar cuán interesante me ha resultado el libro: sencillamente me ha encantado. Seguro que muchas de las buenas prácticas que recomienda ya las estás empleando; al menos, si llevas en esto ya varios años es más que probable que así sea. Pero, al mismo tiempo, Martin consigue explicar los motivos por el que las cosas se pueden hacer mejor, lo cual añade mucho valor a la lectura.

Como punto algo más flojo está el hecho de que es un libro escrito en 2008, cuyos ejemplos (principalmente, Java) han quedado algo atrás en cuanto al código mismo, si bien continúan siendo validísimos los principios con los que lo organiza. No es grave: al fin y al cabo durante las mejores secciones del libro se debate sobre cosas fundamentales como nombres de variables, u organización de funciones, clases, así como gestión de excepciones y muchos otros aspectos.

En general, un libro que se lee en un rato, y al que si estás metido en temas de programación deberías echar un ojo. Como digo: te va a reafirmar en hacer algunas cosas bien como ya las estás haciendo, y te va a animar a repensar otras donde ni siquiera te va a resultar difícil comenzar a aplicarlas y alcanzar esa mejora. Lectura recomendada.

La lenta reacción de los reguladores ante los juegos free-to-play con micropagos

Un muy interesante post en Reddit sobre el nuevo juego de Blizzard nos permite reflexionar sobre videojuegos y la manipulación psicológica a la que se somete a los jugadores:

Deprimíos mucho. Un día, estudios académicos arrojarán luz sobre la locura que permitió a los desarrolladores de «juegos» vaciar las cuentas bancarias de sus clientes ofreciendo productos fragmentados con tablas clasificatorias. La ética de estas empresas sufrirá escrutinio, y nos maravillaremos con cómo de despacio reaccionaron los reguladores ante estos productos que monetizan la capacidad de los desarrolladores para manipular la psicología de los jugadores. Pero ese día no es hoy.

Estamos hablando de jugadores de videojuegos que se dejan hasta 20.000 dólares a base de (¿micro?)pagos para mejorar aleatoriamente los objetos de su personaje. El mecanismo de esta adicción (sistemas de recompensa variable) es el mismo que en su día comentamos sobre las notificaciones en redes sociales.

Toda una generación está creciendo envuelta en esta nueva cultura del videojuego (de la granjita del Facebook a Clash Royale o Fortnite, todo son juegos gratuitos en los que potenciar el avance mediante el pago sucesivo de pequeñas cantidades de dinero que se acumulan de forma alarmante), que tan diferente es de la que existía cuando yo era un chaval.

Un día tendremos que rendirnos cuentas a nosotros mismos por permitir a los más jóvenes ¿jugar? en un entorno diseñado adrede contra ellos, usando software diseñado por empresas que tienen a psicólogos en plantilla para estimular al máximo los mecanismos adictivos que induzcan al usuario a realizar pagos de forma continua.

El regulador europeo, es cierto, comienza a moverse, pero lento. Muy lento. Como casi todo en esta UE que tantas buenas cosas tiene pero tan mejorable es.

Reciclar envases a cambio de dinero, ¿es oro todo lo que reluce?

Hace un tiempo que se viene hablando de la opción de introducir un incentivo económico para animar a retornar los envases de plástico. El mecanismo es más o menos parecido al que hace décadas se usaba para reciclar botellas de vidrio de La Casera o Coca-cola, pero aplicado esta vez a envases de plástico (sobre todo, botellas) y vidrio.

Se trata del famoso «cobrar por reciclar», que es más bien lo contrario: pagas un dinero extra por adelantado que luego te devuelven únicamente si reciclas. Así que pongámoslo en el sentido correcto para que se entienda mejor: pagar por no reciclar.

Es un sistema que se usa desde hace años en otros países europeos. Uno de esos países es Alemania, lo que coyunturalmente hace que yo conozca relativamente bien cómo funciona el mismo, así como algunas de sus implicaciones. De hecho, gran parte del runrún en este sentido llega por simple imitación de lo que sucede en el país teutón. Así que vamos al lío.

El principal problema, como siempre, es mirar a este asunto de forma superficial. Se explica como si fuera un problema sencillo y de fácil solución, y no lo es. Esta mirada simplista deja de lado el necesario enfoque complejo a un problema que es realmente enrevesado y para el que no valen las soluciones mágicas.

El efecto adverso de cuantificar económicamente los pequeños problemas morales

¿Qué sucede cuando ponemos precios a los pequeños pecadillos como no reciclar una botella de plástico? Lo que sucede es que convertimos un problema ético en uno económico, y el resultado es el contrario al que esperaba quien introdujo esta regulación.

Reciclar es un problema moral, o ético, que podemos estimar de mayor o menor importancia, pero es algo con lo que coincidimos casi seguro: reciclar es bueno, hay que reciclar si está a nuestro alcance.

Cuando no hay penalización económica tampoco hay redención para quien no recicle. Solo hay una vara de medir y es la moral. Si no reciclas, no estás haciendo lo correcto.

Cuando añadimos una penalización económica, si no reciclo pago mi penalización económica, y eso es todo. ¿Estoy haciendo lo correcto? No, pero ya he pagado por ello, así que déjame en paz. Ya me han condenado por ese pecadillo de no reciclar la botella, he pagado 25 céntimos que no recuperaré, así que deja de darme la chapa, que ya está todo dicho. He cumplido el trato; al menos, uno de los tratos posibles.

Esto, que parece una chorrada, es el meollo del asunto, ya que es lo que sucede cuando a problemas morales en los que estamos claramente de acuerdo les añadimos una dimensión económica. El efecto fue bien estudiado por Gneezy y Rustichini de la Universidad de California San Diego: al introducir pequeñas multas a los padres que llegaban tarde a recoger a sus niños del colegio, el número de padres que llegaba tarde se multiplicó. Freakonomics lo contaba genial.

Lo que antes era un problema moral (depender de la generosidad del maestro que se queda un rato extra porque tú te retrasas) es de repente una relación económica reglada: esos padres asumían el pago de una cantidad de dinero insignificante (4€/día) por el derecho a poder llegar hasta media hora tarde; ya no es un dilema ético porque el personal del centro sabe que tenemos un trato, así que termino lo que estoy haciendo aunque llegue media hora tarde). Al ponerle precio, nos liberamos del problema moral.

¿Se recicla más, o se recicla menos, con este sistema?

En Alemania no están contentos con el sistema: hace años que se observa un giro hacia botellas de un solo uso, más contaminantes, y se critica enérgicamente que los supermercados cobran este Pfand por cada botella que venden, y solo una cantidad ínfima de las mismas es devuelta en las condiciones necesarias para que devuelvan este dinero. Pueden leer una noticia en Die Welt de hace ya unos años, o si no pueden/quieren pasar por una web en alemán, también leer este post en inglés algo más reciente, donde también se comentan estas cosas.

En Alemania se usan ahora más envases de un único uso que antes de introducir este sistema, hasta el punto de que al igual que en España, la solución va a ser prohibir estas botellas, vía UE. El sistema que debía incentivar su abandono no ha servido para eso, y al mismo tiempo se critica que haya servido de excusa para generar ingresos extra a los supermercados que cobran fianza por unos envases que en su mayor parte jamás son entregados de vuelta.

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.

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