2 puntos por GN⁺ 2023-08-04 | 1 comentarios | Compartir por WhatsApp
  • Arthur Westbrook anunció su jubilación anticipada a los 58 años y trabajó durante 35 años en una base de código heredada que, según se dice, ejecuta cierto software médico
  • El código que aportó durante su empleo sumó unos cientos de líneas, pero en una ocasión se ironizó con que tocó el código legado sin aun así llevar a la empresa al desastre
  • Westbrook creía que entendía más del 4% de toda la base de código, y un excompañero la describió como "Guerra y paz en wingdings"
  • Dentro de la empresa era conocido como "uno de los programadores del equipo", y un gerente evaluó que tenía talento para aguantar mucho tiempo sin habilidades transferibles
  • La reacción por su retiro fue tibia, y Westbrook planea dedicarse al arte callejero, a hurgar en la basura y a perfeccionar una preparación que mezcla Soylent con Whole Foods Premium Adult Cat Salmon Mix

Una base de código heredada de 35 años

  • Arthur Westbrook anunció esta semana su jubilación anticipada a los 58 años
  • Trabajó durante 35 años en una base de código que, según se dice, ejecuta cierto software médico
  • Durante su permanencia aportó cientos de líneas de código
  • En una ocasión tocó código legado, pero la empresa no terminó destruida
  • Westbrook creía que comprendía más del 4% de toda la base de código
  • Un excompañero llamó a esa base de código "Guerra y paz en wingdings"

La reacción de la empresa y sus planes tras el retiro

  • En la empresa, Westbrook era conocido como "uno de los programadores del equipo"
  • Un gerente dijo que Westbrook tenía el talento de trabajar duro sin aprender habilidades transferibles
    • Añadió que para reemplazarlo harían falta "dos desarrolladores junior y una Keurig"
  • Para conmemorar sus décadas de servicio, un compañero dijo que le invitaría unos tragos "por ahí del próximo mes"
  • Ningún integrante del equipo respondió a los comentarios
  • Tras retirarse, Westbrook planea probar con el arte callejero y hurgar en la basura
  • También planea seguir perfeccionando una preparación que mezcla Soylent con Whole Foods Premium Adult Cat Salmon Mix

1 comentarios

 
GN⁺ 2023-08-04
Opiniones de Hacker News
  • Siento que en cada empresa donde trabajé siempre había alguien así.
    Cuando encontrabas código legacy del que no se entendía para nada cómo funcionaba y acudías a esa persona, terminabas escuchando una clase de historia de 2 horas sobre 10 años de política interna y proyectos fallidos de replataformización. Aun así, cuesta odiarla.

    • “...y las máquinas AIX sí que eran monstruos. Había 20, y cada una consumía su propio circuito de 20 amperes. La puesta a tierra del chasis de acero fallaba seguido, y si querías actualizarlas primero tenías que ponerte guantes gruesos de cuero...”
    • Reconozco la parodia de mí mismo ;)
      ¿Sabes por qué te cuento una historia de 2 horas? Primero, porque la interacción humana es necesaria, pero la gente no me gusta demasiado. Segundo, porque espero que aprendas y entiendas en vez de memorizar y repetir, para que la próxima vez puedas resolverlo por tu cuenta sin molestarme. Ahora vete, ya cubrí mi cuota social de la semana. /broma — ¿o de verdad será broma?
    • Conocí a varias personas así, y algunas valen su peso en oro. Pero la mayoría se quedó rígida en su forma de hacer las cosas por el trauma de haber sostenido todo durante años para que no se derrumbara, y casi todas están estancadas y no logran incorporar ideas nuevas. Muchas terminaron siendo cascarones humanos después de cargar durante demasiado tiempo con la disfunción de la empresa como si fuera un problema propio.
    • Esa gente, por lo general, también es excelente ingeniera. Reescribir una y otra vez la versión 1.0 de algo es mucho más fácil. Volver a mejorar un sistema que se ha ido perfeccionando durante décadas es un desafío de ingeniería brutalmente difícil. En empresas de más de 30 años, estas personas son las más esenciales, pero en vez de recibir respeto les tocan textos condescendientes como el enlazado.
    • No parece una mala elección. Si la empresa es lo bastante estable y durante 25 años cobras un sueldo de ingeniero con una estabilidad laboral increíble, es un camino bastante bueno.
      Suena mejor que llegar a los 50 intentando impresionar a un entrevistador de 28 con tus habilidades en el framework más nuevo recién salido.
  • Una persona se pasa toda su carrera cambiando de trabajo y se convence de que la razón es que “los demás escriben código horrible”.
    Karl Hackerman se queja en cada reunión. Parece resentido porque no le dieron permiso para reescribir el sistema en Rust. Conoce muchos frameworks modernos y buenas prácticas, y siempre le irrita no poder usarlos en el trabajo. Cree que los demás se conformaron con ser esclavos asalariados en vez de intentar convertirse en los mejores programadores. Todos lo toleran porque saben que, de todos modos, en 6 meses va a renunciar. Karl ya tiene 47 años y nunca se quedó en un mismo empleo más de unos años. Últimamente trabaja sobre todo como freelancer y trata de vender libros sobre tecnologías y frameworks que ya no le importan a nadie.

    • ¡Soy el autor! Esto me encantó. Yo también fui totalmente esa persona en algún momento :) Aprender a no ser un sabelotodo insoportable resultó ser un desafío sorprendentemente difícil.
      También estoy escribiendo una novela larga, al estilo de Confederacy of Dunces, sobre ingenieros sabelotodo demasiado entusiastas. Tiene demasiado de mi alma, así que probablemente tarde bastante en terminarla.
    • No esperaba despertarme y verme atacado así. Sin advertencia. Brutal.
      Pero todavía no estoy en mis 40, así que aún tengo tiempo para recuperarme del camino errante.
    • Esto estuvo bueno.
      Al principio yo también me sentía así, pero pronto aprendí que en mi trabajo principal la satisfacción viene simplemente de lanzar cosas, y que los misterios de la informática los exploro mayormente en mi tiempo libre. A veces ambas cosas se superponen, pero según mi experiencia incluso un buen trabajo es 80% aburrimiento.
    • Me mató lo de “buenas prácticas”. Antes trabajé con alguien así. Usaba esa frase cada vez que no tenía un argumento real, o sea, básicamente siempre. Mientras menos importaba el asunto, más fuerte era su opinión.
    • Como referencia, Karl reencarnó como MyCurrentIntern.
  • Trabajé durante 10 años en una base de código C++ que no usaba ninguna biblioteca de terceros. Ni siquiera usábamos STL, porque en ese entonces necesitábamos strings y mapas más rápidos y seguros para hilos. ¿Boost? ¿Qué es eso?
    También había un middleware de mensajería hecho en casa encima de sockets, un sistema propio de administración de procesos distribuidos creado con llamadas al sistema Unix, y ni una sola línea de HTML o Java. Era una vida cómoda y muy bien pagada, resolviendo problemas de punta como trading de alta frecuencia y cómputo distribuido y concurrente. En 2013 renuncié a la fuerza para escapar de ese destino, me pasé a una empresa pequeña que me pagaba la mitad del sueldo y aprendí el stack web desde cero. Me gustaría pensar que lo logré

    • No creo que alguien que trabaja con C++ de bajo nivel en trading de alta frecuencia vaya a tener un destino parecido. La mayoría de las habilidades que se obtienen en ese tipo de trabajo parecen tener alta transferibilidad. El artículo parece estar más cerca de un trabajo donde el 95% de las tareas son implementar CRUD ajustado a la lógica de negocio propia de la empresa.
      Si hubiera una razón para cambiar de trabajo así, se me ocurre que sería para aguantar el periodo de compensación por no competencia, aunque no estoy en esa industria, así que puede que se me esté escapando algo
    • “Quise aprender el stack web desde cero. Era para evitar este destino. Me gustaría pensar que lo logré”.
      No estoy seguro de si ese era el chiste intencional o no
    • Yo también tengo una experiencia bastante parecida. Durante 7 años, como subcontratista de una gran empresa de telecomunicaciones, trabajé con las bibliotecas CORBA, pthreads y ACE reactor. En mi primera semana agregué una llamada a sleep en la base de código y terminé deteniendo todo el servicio de call center en el entorno UAT. Años después ya podía depurar sin problema core dumps con miles de hilos, entendía semáforos y reentrancia, y podía explicar la diferencia entre los adaptadores POA y BOA de Orbix.
      Me fui convirtiendo en una figura legendaria que lo sabía todo, pero no porque fuera técnicamente brillante, sino porque entendía el negocio y cómo se mapeaba a varios elementos de la arquitectura. Luego empecé a sentir que podía quedarme ahí toda la vida, pensé que existía ese mundo amplio llamado web y en 2004 empecé a aprender PHP. Después de la legendaria demo de Rails de “un blog en 5 minutos”, cambié de trabajo en 2007 y nunca miré atrás
    • C++ es un trabajo realmente duro. Todos creen que pueden hacerlo mejor, y como no confían en el código de los demás, al final se forma un monolito enorme de código estilo NIMBY y configuraciones de build inescrutables. Las revisiones de código también son extremadamente dolorosas por las mismas razones propias de C++. Todo puede afectar a todo, y cuando se empieza a depender de efectos de comportamiento ligados a memoria, tiempo y orden, el concepto de encapsulación tiende a desmoronarse. Cada cambio es un tiro en el pie que explotará en producción bajo las condiciones adecuadas.
      Es difícil ser productivo si no puedes confiar en que el lenguaje, las herramientas o los demás desarrolladores hagan lo correcto
    • Yo hice algo parecido. Pensé que C++ iba a decaer. Ahora manejo bien Java y JavaScript, y puedo crear buenas apps full-stack. Pero los puestos de C++ para trading de alta frecuencia pagan el doble, así que estoy pensando en volver, aunque los sistemas sean aburridos
  • No hay que vivir para trabajar, sino trabajar para vivir. Me imagino que Arthur antes salía a divertirse con todo, llegaba al trabajo sin dormir y se echaba siestas durante las retrospectivas y reuniones de refinamiento. Quizá haya sido el desarrollador menos útil, pero en Burning Man pudo haber sido el rey. Ahora puede jubilarse con un buen 401k y hacer pequeñas figuritas de madera para vender en el mercado de productores. En realidad, quizá solo quiera contarle a la gente la historia del pez más grande que pescó, o su sueño de abrir un food truck de ramen si sus suegros invierten con él. Arthur vivió la vida; solo que no en el trabajo

    • Es difícil hacer eso si la mayor parte de la vida es trabajo. Después de descontar de las horas despierto cosas como un empleo de tiempo completo, ejercicio, higiene personal y comida, siento que es muy difícil encontrar espacio para la vida real. En la práctica quedan unas 2 horas al día y los fines de semana, y los fines de semana también suelen usarse para encargarse de lo que no se pudo terminar entre semana.
      Odio la idea de que mi vida recién empieza cuando me jubile. Más aún si la edad legal de jubilación donde vivo puede ser 67 años
    • Aunque haya sido un ejemplo inventado, los pequeños detalles me encantaron. Incluso si fue casualidad, se parecía bastante a mi historia y me hizo sentir visto :)
    • Ojalá sea así, y espero que la realidad del señor A sea alguna variación de eso.
      Pero por lo general no es tan color de rosa. Arthur podría tener sobrepeso, muchos problemas de salud, vivir solo y aferrarse de forma poco saludable a XYZ, por ejemplo anime o videojuegos. Aun así, si tiene hijos y los crio bien, como padre yo lo respeto mucho solo por eso. Mirando hacia atrás, lo demás son detalles
  • Hay gente talentosa en todas partes, y la probabilidad de convertirse en alguien realmente revolucionario y con impacto en el mundo es absurdamente pequeña. Si atas tu autoestima a ese objetivo, tu salud mental se va a tambalear bastante.
    Desde que tuve hijos, mi nivel de ambición y obstinación cambió claramente. Antes estaba obsesionado con ser el mejor, pero ahora estoy más cerca de “páguenme y ya”, y mi prioridad es asegurar la mayor cantidad posible de tiempo libre para mi familia y mis amigos. Me parece bien una carrera como la del Sr. Westbrook. Por suerte, a lo largo de mi carrera no tuve que lidiar con colegas tan pésimos como los de él. Cada quien quiere cosas distintas, así que no hace falta juzgar. Como dijo la gran pensadora Alicia Keys: “sé tú mismo”.

    • Descubrí que, en vez de intentar ser el mejor, con solo ser mejor que mi yo de ayer se puede llegar muy lejos.
      Nunca competí; simplemente hice mi trabajo. Con el tiempo me di cuenta de que ya sabía más y estaba más adelantado que muchas de las personas que me inspiraban. Aun así, eso nunca fue mi objetivo, ni lo es ahora. Soy apenas uno de esos llamados desarrolladores oscuros. Simplemente hago mi trabajo, intento hacerlo mejor cada vez y no me importa ningún salón de la fama, sea en broma o en serio.
    • Yo sigo oscilando como un péndulo con este tema. No me refiero a metas “revolucionarias a nivel mundial” o de “impactar al mundo”, sino a querer hacer un trabajo “excelente” dentro del alcance de mis capacidades.
      Cuando tuve mi primer hijo, me incliné mucho hacia no querer nada del trabajo más allá de mantener a mi familia y tener tiempo para estar con ella. Por supuesto, sin dejar de apoyar a mis colegas ni romper la confianza. Pero a medida que mis hijos crecieron y se volvieron más independientes, entré en una etapa en la que recuperé espacio mental y energía, y ahora vuelvo a sentir entusiasmo por usar esa energía en trabajo con impacto. Lo importante, sin embargo, es que ahora tengo mucha más sabiduría sobre cómo encontrar un equilibrio sano y feliz para mí y mi familia. No pienso ingenuamente que vaya a ser fácil; creo que hay que seguir trabajándolo. Pero al salir de esa niebla aturdida de cuidar bebés, volvió a quedarme claro que ni enfocarme por completo solo en la familia ni enfocarme por completo solo en el trabajo son mi camino.
    • Yo lo veo al revés. La sociedad y la vida modernas tienen tantísimos aspectos, y cada año surgen nuevos caminos y campos, que en realidad es bastante fácil encontrar algo capaz de sacudir el mundo que todavía nadie haya hecho en una comunidad o nicho específico.
      Lo de sacudir el mundo para todos está bastante sobrevalorado.
    • De acuerdo. No entiendo cuál es el punto de este artículo. No parece haber mucho más que un elitismo algo sarcástico. Espero que quien escribió el post original se haya sentido un poco mejor.
    • No estoy de acuerdo con que haya gente talentosa en todas partes. Por cada persona como Jonathan Blow, Salvatore Sanfilippo (redis) o Mike Pall (LuaJIT), debe haber miles de desarrolladores comunes trabajando en una feature factory. El software asombroso no se crea solo con suerte. Tu jefe en GenericCo tampoco va a venir a buscarte adrede para pedirte que construyas eso con lo que siempre soñaste.
      Uno elige crear software interesante, o elige vivir en pequeño por una de miles de razones completamente válidas. Si crees que eres tan extraordinario, no culpes a la empresa de que “no te dio la oportunidad”. Ya tienes todas las herramientas necesarias para programar. Haz algo genial.
  • Es gracioso, pero si Arthur era feliz o lo es ahora, no hay ningún problema. Esa parte no aparece en el texto.

    • Exactamente esto. Es muy posible que haya pasado años en un empleo estable y cómodo, y que conociera lo suficiente la base de código y la tecnología como para tener mucho tiempo para su familia, amigos y hobbies. Más que esta historia, me asusta más la reacción de HN.
    • Sí hay un problema.
      Estamos en 2023, y hoy las empresas te despiden sin dudar en cuanto deciden que no eres rentable. A este personaje hipotético le fue bien porque llegó a la jubilación. Pero ¿qué pasa con alguien que siguió esta estrategia durante 15 años y ahora está buscando trabajo porque su empresa tuvo que recortar el 18% del personal? Tiene un gran vacío en habilidades útiles y le quedan décadas para jubilarse. Esa persona está en verdaderos problemas.
    • También importa si el empleador estaba feliz. Si se quedó 35 años, se puede decir que sí lo estaba.
    • 35 años en un rol fácil, buena estabilidad laboral y jubilación anticipada. Arthur fue feliz.
    • Pero… está comiendo comida para gatos. ¿Conoces a mucha gente feliz que coma comida para gatos?
  • Nuestra empresa fabrica dispositivos médicos. Es un sector con un ciclo de vida de desarrollo de software muy estricto. Un colega se fue a otra empresa de dispositivos médicos mucho más grande y, cuando nos encontramos unos años después, dijo que, visto en retrospectiva, nuestra empresa era una organización de alto rendimiento y superágil. En la nueva empresa, un cambio de código de dos líneas que agrega algo, sin siquiera modificar nada sustancial, tarda un año. Y eso aunque él siguió insistiendo.
    Para ser justos, modificar un sistema de hemodiálisis no es ningún juego.

    • En los antiguos conmutadores AT&T 5ESS había un ambiente parecido. No sé cómo será ahora. La regla era no eliminar funciones, así que en vez de borrar una función, se borraba el código dentro de ella. Recuerdo haber leído que una persona muy brillante de Bell Labs estaba en el equipo de 5ESS y que, por todas las reglas para evitar grandes fallas en el sistema telefónico, escribía una cantidad ridículamente pequeña de líneas de código al año.
    • Eso viene acompañado de mucho análisis. He trabajado tanto en dispositivos médicos como en transporte, especialmente en sistemas de señalización para material rodante ferroviario. Mover enormes masas de metal con personas adentro no es ningún juego.
  • Esto parece la versión para programadores del poema The Unknown Citizen, de W. H. Auden [0].
    Cuando lo leí por primera vez, pensé que era un poema triste sobre alguien que desperdició su vida en cosas comunes y cotidianas. Ahora lo veo como un poema positivo: alguien que, por fuera, vivió una vida promedio, pero que muy probablemente tenía una rica vida interior que no compartía con el mundo, y que no deberíamos esperar indicadores medibles desde afuera para saber quién fue grande. También es genial que la pasión de este hombre sea una mezcla de comida para gatos tipo Soylent para humanos. Trabajó todos esos años y finalmente quedó libre para dedicarse a su pasión.
    [0] https://poets.org/poem/unknown-citizen

    • También me recuerda a Sísifo.
      La idea de que la vida no tiene sentido, que hay que ser feliz en el esfuerzo penoso o la repetición, y en cambio encontrar satisfacción en el “viaje” y en cada momento. Es algo muy común en toda la literatura y la historia. A los humanos modernos con tecnología nos gusta pensar que de algún modo somos distintos, que estamos alcanzando un nuevo nivel y encontrando un propósito, pero ya no estoy tan seguro. Quizás seguimos simplemente viviendo día a día y luego muriendo.
      https://en.wikipedia.org/wiki/Sisyphus
      https://en.wikipedia.org/wiki/The_Myth_of_Sisyphus
    • Eso suena como una vida muy por encima del promedio. ¿Sin grandes problemas y un miembro funcional de la sociedad en todos los aspectos? ¿Buenas relaciones? ¿Cinco hijos?
      A pesar del último verso del poema, parece evidente que en realidad fue feliz. Si no, habría explotado en el trabajo, se habría vuelto alcohólico o se habría divorciado. O quizá era un estoico extremo.
    • Son versos antiguos que riman con el zeitgeist actual:

      Our researchers into Public Opinion are content
      That he held the proper opinions for the time of year;
      When there was peace, he was for peace: when there was war, he went.

  • Si esto es una crítica al supuesto programador promedio, no tiene gracia.
    Tengo un amigo al que llamaré AP, que trabaja como programador en una empresa local de desarrollo Java. Lleva 12 años trabajando en el mismo lugar desde que se graduó y encaja hasta cierto punto con la descripción de este texto, pero es de las personas más felices que conozco. Gana por encima del promedio, el trabajo es fácil y no demasiado pesado. Conoce la base de código al dedillo y se lleva bien con sus compañeros. Fuera del trabajo, sale a andar en bici o a tomar cerveza con sus amigos, y viaja por el mundo con su esposa. Cada persona tiene prioridades distintas, y no todo el mundo está obsesionado con sobresalir en el trabajo.

    • El texto critica a los empleados que sobreviven durante años, o décadas, con el mínimo esfuerzo. La frase “cientos de líneas de código” es la señal.
      Hay muchos buenos ingenieros trabajando en bases de código aburridas y podridas. Eso no tiene nada de vergonzoso.
    • ¡Soy el autor! Estoy de acuerdo :) Hay más contexto aquí:
      [0] https://news.ycombinator.com/item?id=36985316
  • Cualquiera puede crear algo nuevo y reluciente desde cero. Si no sale bien, siempre se puede encontrar a alguien o algo a quien culpar, porque lo que se intentaba construir originalmente era algo grandioso y muy innovador[1]. Con el tiempo, pasar a otra cosa nueva y reluciente no solo está bien, sino que hasta se espera.
    En cambio, mantenerse firme hasta el final con algo, en las buenas y en las malas, no es algo que mucha gente pueda hacer. En la mayoría de los casos eso por sí solo no basta, pero parece necesario para un éxito sostenible. Por ejemplo: Guido van Rossum[2], Linus Torvalds, Daniel Stenberg.
    [1] Ni siquiera hace falta poner en letra chica que era de “alto riesgo”. Todos ya lo entienden así.
    [2] No encuentro la fuente, pero recuerdo una entrevista en la que, cuando le preguntaron por el gran punto de inflexión de Python, Guido dijo que no hubo tal cosa, que simplemente siguió creciendo de manera constante.

    • Esos ejemplos tienen muy poco que ver con el proyecto de IT promedio de una organización. El alcance, la definición de éxito y la definición de “terminado” son distintas.
      Si una empresa está creando un lenguaje de programación o un sistema operativo, conviene asegurarse de que sea algo que realmente ame hacer.