Si bien algunos problemas en el mundo del desarrollo de software pueden parecer intrascendentes, pueden tener graves efectos secundarios y costos para las personas y la sociedad. Este artículo ofrece una reflexión e intenta alentar el cambio haciendo que los lectores entiendan cómo sus acciones impactan en los entornos en los que participan y cómo incluso algunas pequeñas cosas terminan costando fortunas.
Cuando era joven, antes de mi primera computadora, siempre estaba en mi bicicleta. Enfrente de mi casa, había un pequeño bosque con algunos senderos estrechos para caminar donde solía andar en bicicleta.
A menudo fantaseaba con que mi bicicleta BMX era una Fórmula Uno y que estaba compitiendo con Nigel Mansell, Alain Prost o Ayrton Senna. Luego, cerca de la línea de meta, realizaría adelantamientos supremos y me llevaría la victoria por la mínima.
En el otro extremo del bosque, había un antiguo almacén. Tenía pequeñas ventanas en la parte superior cerca del techo para permitir que entrara la luz. Sin embargo, eran lo suficientemente altas como para que uno pudiera usarlas para mirar dentro.
Nunca he olvidado la primera vez que me detuve a descansar y contemplar el edificio. Recuerdo haber pensado: “¡Qué raro! ¿Por qué no está cerca de una carretera?... Alguien tiró piedras y rompió unos cristales... ¿Por qué no los han arreglado? Se ve misterioso, pero sombrío. Será mejor que me aleje, algo se siente mal”. Luego me habría ido en bicicleta y nunca más me habría aventurado mucho en esa área.
Pasaron los años y, finalmente, el bosque fue atravesado por un camino y, lentamente, brotaron algunos edificios nuevos a lo largo de él. Pero al menos por un tiempo, el viejo almacén perduró. Sin embargo, con cada año que pasaba, más ventanas se vieron obligadas a ceder ante las piedras que les arrojaban.
Para ser justos, quienquiera que haya roto las ventanas no se habría sentido acosado por el remordimiento. Algunos ya estaban rotos y sin arreglar, entonces, ¿a quién le importarían unos cuantos más? Después de todo, los costos de reemplazo serían los mismos ya que todos necesitaban reparación.
Como tal, las viejas ventanas del almacén presentaban una oportunidad para entrenar la puntería y celebrar cuando la asistencia de demolición prematura tenía éxito (otra ventana se rompía), como observé que hacían algunos muchachos mayores una vez.
Para mí y algunos otros colegas, el camino permitió una ruta más corta a la escuela. No obstante, todos preferiríamos la ruta más antigua y un poco más larga, porque era un camino conocido y nos permitía evitar el edificio en ruinas que nos hacía sentir extrañamente incómodos. Era algo menos en lo que pensar o preocuparse.
Comparto esta historia, de una época anterior a los teléfonos móviles, en un intento de transportarte a tu propia infancia, y tratar de sacar a la luz sentimientos similares que puedas haber experimentado cuando eras niño al observar un edificio o área en ruinas, y presentar el Teoría de las ventanas rotas .
En pocas palabras, la teoría de las ventanas rotas sugiere que el desorden ambiental fomenta comportamientos delictivos, antisociales o de desorden civil. La ausencia de ventanas rotas equivale a una menor probabilidad de desorden, favoreciendo la paz y la legalidad. Como con las ventanas rotas del viejo almacén, cuando ya hay mucho desorden, es más fácil amontonarse más.
Me encontré por primera vez con la teoría de las ventanas rotas, hace muchas lunas, mientras leía el programador pragmático . Si eres nuevo en el mundo del desarrollo de software, vale la pena leerlo.
La sabiduría de la teoría de las ventanas rotas viene a menudo a mi mente. Seguramente los criminólogos y los expertos en comportamiento tendrán mucho más que decir al respecto, pero para mí, es una ilustración grabada de cómo el medio ambiente influye en el comportamiento humano.
Y aunque algunos académicos más recientes afirman que la teoría ya no se sostiene, incluso sin leer sus artículos o afirmaciones, yo ya desafiaría: “Disculpas. Entiendo que eres un experto, pero en mi experiencia se mantiene”.
Si te gusta el programa de televisión "Bing Bang", entonces sabes que incluso los expertos pueden estar equivocados y sus amigos pueden demostrar que están equivocados.
Espero que hayas entendido que las ventanas rotas en esta vieja historia del almacén invitaban a un comportamiento antisocial que también llevaría a los transeúntes, como guiados por una premonición automática de problemas, a alejarse de ellos y eliminarlos de la mente.
Para que no creas que soy demasiado viejo, permíteme usar el desafío TikTok Kia como otro ejemplo (que, para realizar, también puede incluir romper la ventana del vehículo).
Si no está familiarizado con él, se trata de un video compartido en esa plataforma que condujo a una serie de robos de vehículos motorizados contra Kia y Hyundai, en su mayoría por parte de adolescentes, que resultaron en daños a la propiedad, duelo, pérdida de vidas y otros infames. consecuencias, todas negativas... excluyendo las ganancias de TikTok y una mayor notoriedad de la plataforma.
Al ser una decisión de diseño intencionada o desafortunada por parte de esos fabricantes de automóviles, no obstante, fue una fragilidad del sistema, que se explotó con éxito a través de un cable USB común.
Lo mayor, o al menos lo responsable, habría sido revelar dicha vulnerabilidad a ambas marcas y esperar que tomen medidas para corregirla. Por supuesto, eso habría significado que los autores del video muy probablemente nunca se harían famosos, ni se divertirían haciéndolo.
Me resulta interesante que los jóvenes de hoy en día prefieran ser influencers, aunque sean embajadores del mal, antes que bomberos, médicos o astronautas. ¡Buen trabajo medios de comunicación! (mi intento de sarcasmo para aquellos que tienen dificultades para entender el sarcasmo).
Entonces, en este ejemplo, podemos reconocer que, aunque no sea intencionalmente, una ventana rota (y un cable USB) pueden tener consecuencias más dramáticas que simplemente romper el vidrio.
Desde entonces, ambas compañías han tomado medidas para intentar minimizar y abordar el comportamiento delictivo, o en otras palabras, reparar la ventana rota, pero no sin antes haber sufrido daños en la reputación y pérdidas financieras.
Un ejemplo del mundo del software que ha sido una ventana rota durante muchos años es el encabezado HTTP Referer, un error ortográfico de la palabra referrer. Me ha causado problemas, quizás a ti ya cientos si no miles de personas también.
Al igual que yo, probablemente también se burló (hace comentarios groseros y burlones, generalmente en voz alta) de los autores. Es posible que también hayas buscado de quién fue la culpa y, potencialmente, también hayas llegado a la conclusión de que, incluso después de tantos años, la excusa de estar demasiado ocupado o de que "al final lo arreglaré"... es muy humana, como lo has hecho por Seguro que escuché un razonamiento similar antes, para otras ventanas rotas.
¿A quién le importa que otras personas pierdan el tiempo cuando es fácil enseñar que debes hacer algo mal, porque esa es la forma correcta de hacerlo? O, he aquí un pensamiento divertido, ¿por qué no cambiamos el diccionario? Entonces ya no será un error.
Abra el editor de texto de su elección y escriba una oración con la versión mal escrita que tiene el diccionario en inglés. ¿La palabra se marca como un error tipográfico?
Los resultados pueden sorprenderle.
Una ventana rota, que no se repara, conduce a más ventanas rotas, pero si ni siquiera a los expertos les importan, ¿por qué deberíamos hacerlo al resto de nosotros? ¿Por qué no romper más ventanas? Seguramente algún día, todo debe arreglarse.
¡Aquí hay una posible razón! Se trata de números, por lo que es fácil equivocarse, pero vamos a intentarlo.
Usemos el salario promedio de un programador en los EE. UU. en 2021, que fue de $ 93 000 según esta fuente . Supongamos 40 horas a la semana y 52 semanas laborales para obtener el valor por hora de $ 44,71 (aparentemente, a los estadounidenses no les gustan mucho las vacaciones).
Dado que, solo en EE. UU., hay 4,3 millones de programadores según esta fuente . Incluso si tomáramos solo el 5% de ellos (seleccioné el valor arbitrariamente) obtendríamos 215 000 programadores que, de una forma u otra, encontraron el error tipográfico y tuvieron que tomar medidas para comprenderlo y solucionarlo.
Si cada uno de esos programadores solo perdiera un promedio de 1 hora, lidiando con los efectos secundarios y comprendiendo por qué está ahí en primer lugar, entonces el costo de su primer encuentro habría sido de 9,6 millones de dólares . Si fuera el 30% (1 290 000 personas) el valor sería de 57,7 millones de dólares . Nuevamente: solo EE. UU .
Incluso si selecciona otro porcentaje arbitrario, el desperdicio seguirá siendo inmenso.
Y tenga en cuenta que no he considerado que los problemas detectados antes en un ciclo de desarrollo cuesten significativamente menos que los detectados en producción. Tampoco he agregado ajustes por inflación, ni considerado diferentes países o estudiantes y profesores que dedican tiempo a abordarlo, ni los de personas que tienen sitios web y no son considerados programadores, ni los que se han jubilado, ni tampoco, los que todavía tienen para aprenderlo
Ahora, extrapole ese valor para incluir el mundo. ¿Cuánto dinero, cuánto valor, cuánta vida crees que ya se ha perdido y se perderá?
Anhelo el día en que un alma bondadosa comparta en algún lugar: "Por cierto, lo arreglamos y la forma anterior quedará obsoleta en la versión X". Porque para mí, a menos que las personas responsables del error fácil sean tan despreciables que deberían ser recordadas por este error tipográfico, entonces el mejor momento para arreglarlo era ayer. (¿Conoce a alguien en la Fundación Apache o que trabaja con Nginx? ¡Por favor, regáñelos!)
“Comienza con el fin en mente”, eso incluye lo que hiciste o dejaste de hacer, por los demás.
Sin embargo, este es solo un ejemplo del mundo del software, no un unicornio, tenemos más.
Según mi experiencia, cuanto mayor sea la madurez, la experiencia de las partes interesadas y la longevidad del software, mayor será la probabilidad de que las ventanas rotas persistan durante períodos más largos o nunca se aborden.
Y no. No me quedo atrás, ni siquiera al lado de aquellos que se satisfacen lanzando temprano y con frecuencia, porque regularmente se traduce en menos calidad y cuidado. Saber que está lanzando principalmente ventanas rotas, características completas no pensadas, no se trata de ser ágil, se trata de ser descuidado.
Y sí, soy consciente de que muchas razones surgirán y contradecirán la afirmación anterior, pero creo que ninguna de ellas resistirá un cambio de clima provocado por un ciberadversario que decida lucrar. Más claramente: las bases de código de las empresas emergentes están maduras para el crimen, en otras palabras, son frutos fáciles de alcanzar para que los delincuentes los elijan.
Pero con respecto a las organizaciones maduras, las fuerzas más fuertes detrás de la realidad de la madurez abrazando las ventanas rotas son el bajo retorno de la inversión y otras prioridades apremiantes que dictan y refuerzan la necesidad de la atención de los recursos disponibles.
Además, las organizaciones establecidas están sujetas a normas y cumplimiento que les impiden asumir ciertos riesgos que, de materializarse, tendrían un amplio impacto social. Esa es también la razón por la que esas empresas prefieren incubar nuevas empresas, lo que les permite alcanzar ciertos nichos, y luego esperar hasta que las regulaciones y las actividades sean más estables, antes de adquirirlas.
¡La sociedad no favorece a los que fracasan, celebramos a los ganadores! Entonces, es humano estar a la defensiva cuando se cometen errores o fallan. Exigimos que todos los demás, excepto nosotros, nunca fallemos un penal o un tiro libre. Además, los programadores definitivamente no son amables entre sí, pero este no es un problema aislado de ellos.
Por lo tanto, no es inesperado que un equipo, o un individuo, responda con razonamientos como: "no es realmente un error", "no es realmente un defecto", fue una decisión de diseño", "nunca pensamos que podría usarse así". ”, “nadie haría eso”, “no le hace daño a nadie”, “está funcionando según lo previsto”, etc.
Y cuando las ventanas rotas no se arreglan, al menos en el corto plazo de todos modos, en un estilo humorístico y geek, los programadores las llaman: " una función ".
Suena tonto ¿no? Veamos qué puede estar pasando.
Si nos sentamos, cómodamente, tratando de resistir nuestros propios prejuicios, quizás más de nosotros podamos observar lo mismo: un grupo de humanos que se ganan la vida resolviendo problemas, pueden reconocer con seguridad y facilidad las ventanas rotas. Y debido a que algunos nunca se solucionarán, las personas buscarán formas de dejar de preocuparse y eliminarlos de la acumulación de sus mentes.
Porque como tantas otras cosas en la vida que no se pueden controlar individual o directamente, esas pesan sobre ti si sigues gastando energía pensando en ellas.
¿Cuándo es entonces, que este comportamiento común que lleva negatividad y es indeseable se vuelve inaceptable? ¿Es sólo cuando la gente choca y se produce la muerte?
Si es así, bueno, entonces hay algunas cosas que nunca se arreglarán… sigamos perdiendo, o más exactamente, dejemos que otros sigan perdiendo.
Entre los cristales rotos que afectaron solo al dueño del almacén, a los dueños de los vehículos, a las personas que los robaron y, por último, a otros programadores, atender los detalles, aunque sean pequeños, marcará la diferencia.
Espero que la próxima vez que hagas algo mal, consideres arreglarlo de inmediato o permitir que la persona que lo hizo lo corrija.
Y deja de tirar basura porque otros también lo hacen.
Y si esos son expertos, ¡desafíelos! Son humanos, cometen errores y es posible que ni siquiera se hayan dado cuenta. Si reaccionan como idiotas, responde: “de nada”.
Si tuviera multas que pagar, por todos los errores tipográficos y otras tonterías que he hecho hasta ahora en mi vida...
Pero siempre trato de hacer una cosa : arreglarlos, una vez que me doy cuenta de ellos. ¡Tu también deberías!
Las pequeñas cosas, importan. Y si no exactamente ellos, qué significa su presencia.
No deje "ventanas rotas" (malos diseños, decisiones equivocadas o código deficiente) sin reparar. - El programador pragmático de Dave Thomas y Andy Hunt
(eso incluye a los más pequeños)