Tinselcity

Desde hace algún tiempo he venido dando vueltas en algunas conversaciones al concepto de Security Theater. Resumiendo un poco es una idea nacida en los círculos de especialistas en seguridad para definir cualquier práctica que pretende dar apariencia de mayor seguridad cuando, en realidad, no hace nada real por mejorarla.

Y el asunto es que esta idea se puede llevar a otros sectores o aspectos de la vida. En los últimos años he ido asumiendo como más clara cada vez la existencia de un teatro que podríamos llamar, no sé, teatro de la calidad o… Clean Code Theater. Básicamente es esto, Clean Code Theater define cualquier práctica o conjunto de prácticas que decimos que aplicamos para mejorar la calidad del código pero que, de forma real, no la mejoran en absoluto.

La diferencia, quizá, es que cuando hablamos de Security Theater estamos hablando de acciones que realmente se llevan a cabo. En el caso de la calidad de código, buenas prácticas y todo esto, lo que termina ocurriendo al final, es que se transforman acciones que originalmente podrían parecer efectivas en deformadas caricaturas burocráticas de las mismas. Es algo que he visto de forma continua en muchos sitios, y últimamente más.

Un ejemplo, las revisiones de código. Las revisiones de código por parte del equipo completo a la hora de hacer un pull request prometen, desde un punto de vista teórico al menos, ventajas como una mayor visibilidad de la evolución del código, más facilidad para detectar problemas o consecuencias que una única persona podría pasar por alto en un descuido, etc. De modo que se decide que todos los pull request deben pasar una revisión. Se pone en marcha la práctica. Inicialmente todo parece correcto. Se detectan algunos posibles problemas, se comparten y discuten sugerencias de mejoras. Esto puede durar unas semanas o unos meses, pero tras un tiempo resulta inevitable que los equipos se dejen llevar por “las circunstancias”. Falta tiempo. Queremos que este cambio entre para esta semana. No parece un cambio tan relevante como para dedicarle atención. Yo estoy ocupado, ya lo mirará otro si hay algo importante… Al final, las revisiones de código quedan en “darle al botón de aprobado” sin más para luego darle a mergear y ya. Es decir, se vuelven un trámite burocrático, sin el contenido real que deberían tener. Pero, ojo, las seguimos haciendo. En apariencia sólo, pero ahí están. Teatro para hacernos la ilusión de que hacemos las cosas bien.

Como esto, he visto ocurrir lo mismo con otras muchas cosas. Tests. Puedo encontrar, sin hacer esfuerzo de buscar, un puñado de desarrollos con, como mucho, media docena de tests triviales y nada más. Apostaría a que encuentro unos cuántos con la infraestructura de tests montada y 1 test “tipo true es true” y ya. Formación. Todos los viernes hacemos… bueno, casi todos. Cada dos viernes o quizá una vez al mes. No hemos hecho nada desde hace 6 meses. Pero de vez en cuando hay algún Twitt de algo externo que patrocinamos. Porque, claro, lo externo se ve.

Y así prácticamente todo. Teatrillos para calmar nuestras propias conciencias.