Medir los proyectos de «software» en horas es absurdo.
Штурмовщина!
Hay muchas cosas rotas en el desarrollo clásico de proyectos digitales. Afortunadamente, la profesión tecnológica es quizá de las más creativas y flexibles.
Me propusieron desarrollar un proyecto para una Administración pública. Y me explicaron el precio por hora máximo con el cual podrían contratarme, y el número de horas en que estimaban mi colaboración. Del producto de ambos datos —me dijeron— resultaba el presupuesto disponible para mi trabajo.
Pero eso no tiene ningún sentido.
Por una parte, el tiempo es una métrica nefasta a la hora de valorar la productividad de un técnico. Si ha resuelto previamente el problema será más rápido que si ha de hacerlo por primera vez. Si puede reutilizar trabajo anterior acabará antes que si no. Y todos tenemos días malos que terminan con avances exiguos… y jornadas mágicas de inesperada hiperproductividad. Además, la tecnología cambia tan rápido que a menudo hemos de conciliar programar con formarnos y aprender.
Por otro lado, ¿qué sentido tiene trabajar en proyecto de digitalización mirando de reojo una inexorable cuenta atrás de horas presupuestas? Es una métrica para gestores y financieros que no entienden la praxis del negocio. ¡Yo también he estado ahí! Yo también he gestionado un equipo midiendo la desviación de las horas ejecutadas frente a las horas presupuestadas. ¡Sorpresa!: casi siempre nos desviamos por abajo. Casi siempre subestimamos el coste de los imponderables.
Lo que he solido ver en los proyectos de tecnología, lamentablemente, es lo que los soviéticos denominaban «shturmovshchina».¹ Este fascinante concepto me sedujo desde que lo encontré en una de mis lecturas sobre la URSS. Y es que, en la economía planificada de los planes quiquenales, los soviéticos identificaban tres fases:
1️⃣ Hibernación. Es la fase inicial del proyecto. Todo va despacio porque, oye, tenemos cinco años. ¡Hay tiempo de sobra! Además, estamos agotados del frenético final del plan anterior. Calma.
2️⃣ Acumulación. Vamos haciendo cosas, pero los requisitos son cambiantes y aún no tenemos muy claro el alcance del proyecto. El tiempo va pasando, pero avanzamos a nuestro ritmo. Guay.
3️⃣ Fiebre. ¡Vamos fatal de tiempo y el proyecto tendría que estar ya! Recortamos disimuladamente el alcance y el trabajo que entregamos es de escasa calidad. Abundan los vicios ocultos y la deuda técnica que aflorarán más adelante. ¡Hay que meter horas extras! Crisis.
Si este ciclo resuena dentro de ti, entonces has navegado en la tormenta. ¡Es la shturmovshchina! Штурмовщина! Y no es culpa tuya. Es porque el tiempo —las horas— no son una buena métrica para presupuestar proyectos digitales.
Sin embargo, la Administración pública y las grandes consultoras informáticas que suele contratar están obsesionadas con valorar los proyectos así, y atormentan a sus técnicos con la burocracia de cumplimentar partes de horas. Un híbrido de quiromancia y burocracia.
Durante el desarrollo del proyecto mi cliente —una Administración pública— me preguntó «qué tal iba de horas». Me encogí de hombros, porque no las contaba. Les expliqué que mi compromiso era entregar satisfactoriamente el proyecto contratado, no comerciar con mi tiempo productivo. Mi interés es el éxito en el resultado, no acertar en una estimación de esfuerzo que, a fin de cuentas, es un arte adivinatoria.
¡Claro que esto es mucho más difícil en el contexto de una empresa con una plantilla! Los costes laborales son función del tiempo. Por eso el santo grial de la consultoría informática siempre ha sido la productización. La compleja transición de un modelo de negocio basado en «vender horas» a «vender valor». Pero no quiero desviarme.
Para mis proyectos e iniciativas hace tiempo que acuñé una métrica muy personal. Lo llamo el «rato de atención ininterrumpida» o rai. Es el resultado de constatar que en los proyectos de tecnología la moneda de cambio no es mi tiempo. Es mi atención.
Un rai es lo que tardo en sentarme en cualquier cafetería de una ciudad, pedir un café mientras desenfundo el portátil y trabajar concentradamente el tiempo que me dé la gana. Es un rato en el que mi atención intelectual está volcada en una sola tarea. Un rai es atómico porque es indivisible: todas las notificaciones y distracciones han desaparecido de mi escritorio y vuelco mi atención plena. Solo la taza de un descafeinado humea y me acompaña.
Mis rais suelen tienen una duración muy variable. Pueden ser de cuarenta minutos o llegar a tres horas y pico. Pero no miro el reloj. Cuando me apetece parar, simplemente paro y me voy.
Estos ratos de atención ininterrumpida dependen mucho de la exigencia o el interés que me despierta la tarea que tengo entre manos. Cuando desarrollo nuevas funcionalidades duran más, porque me gusta y siento menos el paso del tiempo. Cuando refactorizo o documento, por ejemplo, estos ratos son más cortos.
Sé que cualquiera de mis días tiene dos, tres o hasta cuatro rais. Son las veces que puedo sacar el portátil y zambullirme en un reto hasta que me apetece estirar las piernas o cambiar de cafetería, vistas y escritorio.
Cuando era empresario y contrataba programadores, trataba de explicarles que no era su jornada sino su atención plena lo que la compañía contrataba. Que no había un horario y uno entraba y marchaba cuando consideraba. Que podía ausentarse un martes si le apetecía y conectarse un domingo si era necesario. Que podía trabajar en casa o venir a la oficina, según su preferencia.
(Y no; este modelo nada tenía que ver con retorcer las normas para trabajar encubiertamente jornadas más largas de las legales: cuesta demasiado contratar buenos técnicos y tal treta solo provocaría que saltaran a otra empresa de un sector que virtualmente no tiene desempleo para cualquier profesional competente. Muy al contrario, era una liberalidad que la plantilla valoraba, aunque luego no soliera aprovechar más que puntualmente).
Honestamente, esto nunca funcionó del todo bien. Por una parte, las normas laborales nos obligaban a registrar las horas laborales, poniendo de nuevo el acento en el tiempo como divisa. Por otro lado, casi todos los trabajadores —supongo que acostumbrados por experiencias laborales anteriores— adoptaban este mismo modelo de «entrar» a una hora y salir muy puntualmente.
Yo, en cambio, no entiendo así mi profesión. ¿Trabajo 40 horas semanales? No lo sé, y nunca lo he sabido. Lo que sé es que trabajo tranquilo y disfruto de ello. He surfeado las olas de las shturmovshchina, sí, y he llegado al convencimiento de que no es el tiempo sino la atención lo que define el valor del trabajo en esta profesión maravillosa.
Today is the day when we talk about politics.
Not *that* politics... but the other kind! A guest post by @copyconstruct about how to be a more efficient software engineer at a mid-sized or large company.
Read it here: https://t.co/5KlLR8mhAX
@faustocoppi60 smoothie with milk/vegan-milk, yogurt, berries, banana, oats, sometimes peanut butter, 35g isolated whey protein and creatina. Similar to Katie's https://t.co/Nt5DUKeeCK
Will pull apart into a more useful thread tomorrow, but some notes on creating software quality. It’s hard to get right if you don’t disambiguate three distinct barriers to quality: essential problem domain, scale, and accidental complexities
https://t.co/3YgJqglwlX
Jannik Sinner says his parents are the ‘perfect parents’ & they are the reason he is here today:
“I went away from home when I was 14 years old. So I had to grow up quite fast, trying to cook for myself, trying to make laundry. You know, the first times it is different, but then in the other way, that was maybe the fastest way to grow up.
I think for me was tough, but for the parents to leave their son with 14 years old, it's also not easy. They always gave me, they never put pressure on myself, which for me is maybe the key why I'm here today. I'm a very quite relaxed man, who just enjoys to play tennis. I'm 22 years old, so I also enjoy to do normal stuff. And that's it. They are the perfect parents. Obviously I know only them (smiling) but they are awesome. And also my brother, he brings me honesty throughout the whole career I'm going through.” 🥹
DO take breaks!
Prolonged screen or reading times can lead to eye strain, dry eyes and headaches.
👉 Use the 20 - 20 - 20 rule to help your eyes:
🖥️ After using a screen for 20 minutes
📏 Look at an object 20 feet away
🕓 For 20 seconds
#WorldSightDay
As a tester who now spends 50% of their time as a front-end developer, I'm being sent some bad bug reports.
So, here are 10 tips for communicating bugs 🧵
Technical writing should be a required training for every engineering team.
Many big corps mandate so many trainings for employees but the engineering workforce has little to no training on how to craft good design documents.
Quality varies so wildly between teams.