Tecnología

La parábola de los dos programadores

·

Ayer vi vía Hacker News el enlace a un artículo que fue publicado el 20 de marzo de 1985 por Neil W. Rickert, miembro del Departamento de Informática de la Northern Illinois University. El texto ya había sido compartido antes -en Reddit hay una referencia a él de 2006, por ejemplo- pero yo desde luego no lo conocía y no he podido evitar compartirlo por si alguno tampoco lo había leído antes.

Como es un texto en inglés algo largo, me he animado a intentar traducirlo, así que disculpas por los posibles errores. El texto original está aquí, por si preferís leerlo directamente tal y como fue redactado.

      Érase una vez que, sin saber nada la una de la otra, la “Automated Accounting Applications Association” y la “Consolidated Computerized Capital Corporation” decidieron que necesitaban el mismo programa informático para proporcionar cierto servicio. 

     Automated contrató a un analista programador, Alan, para solucionar su problema.

     Mientras tanto, Consolidated decidió pedir a un programador de bajo nivel recién contratado, Charles, que abordase la tarea para ver si era tan bueno como él decía ser.

     Alan, que tenía experiencia en proyectos complejos de programación, decidió utilizar la metodología de diseño estructurado PQR. Con esa idea en mente, le pidió a su jefe de departamento que le asignara otros tres programadores para formar un equipo de programación. A continuación el equipo se puso a trabajar y a producir tanto informes preliminares como análisis del problema. 

     En Consolidated Charles dedicó algún tiempo a pensar en el problema. Sus compañeros de trabajo se dieron cuenta de que a menudo Charles se sentaba con sus pies sobre la mesa mientras se tomaba un café. Ocasionalmente se le vio frente a su terminal, pero su compañero de oficina podía deducir por la pulsación rítmica de las teclas que en realidad estaba jugando a Space Invaders. 

     Por entonces el equipo de Automated estaba comenzando a picar código. Los programadores pasaban la mitad de su tiempo escribiendo y compilando código, y el resto de su tiempo en reuniones, debatiendo sobre las interfaces que debía haber entre los distintos módulos. 

     El compañero de Charles notó que por fin había abandonado Space Invaders. En lugar de eso ahora invertía su tiempo en beber café con sus pies encima de la mesa y en hacer garabatos en pedacitos de papel. Sus garabatos no parecían tener relación con las Tres-en-raya, pero tampoco es que tuvieran mucho más sentido. 

      Pasaron dos meses. El equipo de Automated por fin publicó una hoja de ruta. En otros dos meses tendrían una versión de pruebas del programa. Tras eso vendría un periodo de dos meses de evaluación y mejora que debería llevar a una versión completa. 

     El jefe de Charles ya estaba cansado de verle holgazanear. Decide enfrentarse a él. Sin embargo, nada más entrar en la oficina de Charles se sorprende al verle muy ocupado introduciendo código en su terminal. El jefe decide posponer la confrontación, así que charla brevemente con él y se marcha.  Sin embargo, comienza a vigilar más de cerca a Charles para que en cuanto se presente la ocasión pueda enfrentarse a él. Como no tiene muchas ganas de tener una conversación desagradable, está encantado de que Charles parezca estar ocupado la mayor parte del tiempo. Incluso se le ha visto retrasar la hora del almuerzo y también quedarse a trabajar más allá de su hora de salida dos o tres días a la semana. 

     Al cabo de tres meses, Charles anuncia que ha completado el proyecto. Entrega un programa de 500 líneas. El programa parece estar escrito de forma clara, y al ser evaluado hace todo lo que se requería en las especificaciones. De hecho, incluso tiene algunas características adicionales muy convenientes que podrían mejorar de forma significativa la usabilidad del mismo. El programa se pone a prueba y, salvo por un despiste que corrigen rápidamente, funciona bien. 

      El equipo de Automated ya ha completado dos de los cuatro módulos principales del programa a estas alturas. Esos módulos están siendo sometidos a pruebas mientras que el resto de módulos se finalizan. 

      Tras tres semanas, Alan anuncia que la versión preliminar está disponible una semana antes de lo que marcaba la planificación. Proporciona una lista de defectos que espera corregir. El programa se pone a prueba. Los usuarios detectan varios errores y defectos aparte de los registrados por Alan. Como Alan explica, eso no es ninguna sorpresa. Después de todo, esta es una versión preliminar en la que los errores son esperables. 

      Después de dos meses más, el equipo termina de programar la versión de producción del programa. Consiste en cerca de 2.500 líneas de código. Al evaluarlo parece satisfacer la mayoría de las especificaciones originales. Se han omitido una o dos características, y el programa es muy exigente en el formato de sus datos de entrada. Sin embargo la empresa decide implantar el programa. Siempre podrán formar al personal de entrada de datos para introducir esos datos en el formato estrictamente necesario. El programa se pasa a varios programadores de mantenimiento para que incorporen en algún momento las características que faltan. 

      Epílogo:

      Al principio el supervisor de Charles se muestra impresionado. Sin embargo, a medida que analiza el código fuente se da cuenta de que el proyecto era en realidad mucho más simple de lo que había imaginado inicialmente. Ahora parece evidente que esto no era ningún reto, ni siquiera para un programador novato.

      Charles ha producido cerca de 5 líneas de código al día. Quizás ligeramente por encima de la media. Sin embargo, considerando la simplicidad del programa, no se trata de nada excepcional. Además, su supervisó tomó en cuenta que había pasado dos meses holgazaneando. 

     En su siguiente revisión de sueldo a Charles le dan un aumento que era cerca de la mitad de la inflación durante ese periodo. No se le dio ningún ascenso. Cerca de un año después Charles dejó de estar motivado y abandonó Consolidated.

      En Automated, Alan fue felicitado por terminar el proyecto a tiempo. Su supervisor le echó un vistazo al código. A los pocos minutos de hojearlo observó que los estándares de la empresa relacionados con la programación estructurada se habían respetado. Sin embargo, dejó de revisar el programa rápidamente; parecía bastante incomprensible. Se dio cuenta de que el proyecto era mucho más complejo de lo que a él le había parecido inicialmente, y felicitó de nuevo a Alan por su logro. 

      El equipo produjo unas tres líneas de código al día por cada programador. Una cifra más o menos en la media pero que considerando la complejidad del problema podría ser considerada como excepcional. A Alan se le dio un considerable aumento de sueldo, se le ascendió a Analista de Sistemas y se le dio una recompensa por su labor. 


Incognichollos

Esta es una selección con las mejores ofertas tecnológicas actualizadas casi diariamente, como expliqué aquí. Aunque estés en un post «antiguo» las ofertas son de última hora, los Incognichollos los actualizo aparte. También puedes seguir los Incognichollos en Twitter o en el nuevo canal de Telegram 🙂 . Aprovecha, que no suelen durar mucho tiempo.

  • OnePlus 7: la evolución del 6T con 6,41?, Snapdragon 855, 8 GB de RAM, mininotch, 256 GB de capacidad (uauh), cámara dual 48+5, 3700 mAh de batería, huella en pantalla. Está a 437,49 euros en AliExpress.
  • Lenovo Yoga 920: un convertible de 13,9 pulgadas con un Core i5-8250U, 8 GB de RAM, 256 GB SSD y Windows 10. Estupendo a este precio, 749,98 euros en Amazon.
  • Auriculares Sennheiser Momentum 2.0: diadema ajustable, micrófono incorporado, diseño chulísimo y una calidad de sonido top según dicen las críticas. Nunca los había visto tan baratos, 108 euros en Amazon Alemania, envío incluido.
  • Altavoz Bluetooth Xiaomi Square Box II: un altavoz portátil con tecnología Bluetooth 4.2, micrófono, manos libres, cancelación de ruido, 1200 mAh, autonomía 10 horas, incluye entrada de minijack de 3,5 mm. Está a 21 euros en Banggood con el código e2db5f
  • Huawei Honor Band 4: con pantalla AMOLED de 0,95?, monitor de sueño, soporte de natación (reconoce distintas brazadas), hasta 50 m de profundidad, lector de frecuencia cardíaca. Muy chula por 24,90 euros en Banggood con el código BGHWBand4es.
  • Xiaomi Mi Band 4: la nueva pulsera cuantificadora con pantalla AMOLED 0,95?, hasta 50 m profundidad y 5 ATM, sensor cardíaco, comandos de voz, notificaciones, brutal por 30,9 euros en AliExpress.
  • OnePlus 7 Pro: el súper teléfono a tope: 6,67 pulgadas a 90 Hz (dicen que son la pera), 8 GB de RAM, 256 GB de capacidad, cámara triple (48+16+8), cámara frontal retráctil 16 MP, lector de huella en apntalla, 4.000 mAh. Está a 657 euros en GearBest.
  • Medion Ultrafino S6445: un ultrabook de 15,6? FullHD con un Core i3-8145U, 8 GB de RAM y 256 GB de capacidad, teclado QWERTY español, Windows 10 Home. Todo por 399,99 euros en Amazon, estupendo.
  • Monitor gaming ASUS MG248QR: con 24 pulgadas y resolución 1080p, pero sobre todo con soporte de tasa de 144 Hz. Fantástico por 239,99 euros en Amazon (299 en PCComponentes).
  • SSD Samsung 2 TB: una unidad SSD con esta capacidad y a este precio es tela. Velocidades de 550 MB/s, está a 195 euros en Amazon Francia, envío incluido.
  • Portátil ASUS VivoBook S14: un 14? Ful HD con un Core i5-8265U, 8 GB de RAM, 256 GB de SSD, teclado español y Windows. El touchpad es además teclado numérico. Está a 499,99 euros en Amazon.
  • Mando Sony DualShock 4 para PS4: el mando en versión 2, inalámbrico, color negro, está a 37,99 euros en Amazon.
  • Windows 10 Pro: una licencia para el sistema operativo de Microsoft. Te la mandan por correo junto a algunas instrucciones. Está a 3 euros en Amazon.
  • Xiaomi Mi 9: si queréis el telefonazo de Xiaomi, atentos. Pantalla de 6,39 euros sin marcos, Snapdargon 855, 6 GB de RAM, 64 GB de capacidad, cámara triple de 48+16+12 MP, está a 384,74 euros en Banggood con el código BG6M9128.
  • iPhone X 256 GB: el telefonazo de Apple del año pasado sigue siendo un gran terminal. 5,8?, Apple A11 Bionic, 3 GB de RAM, 256 GB de capacidad, cámara dual de 12 MP, está a 899 euros en Amazon (1.089 precio normal).
  • OPPO Realme X: el rival a batir en gama media rompedora. Tremendo, 6,53? sin marcos, Snapdragon 710, 4 GB de RAM, 64 GB de capacidad, cámara dual 48+5, cámara frontal periscópica, 3765 mAh, lector de huellas en pantalla. Brutal por 236,45 euros en Banggood.
  • Xiaomi Redmi Note 7: 6,3» Snapdragon 660, 4 GB de RAM, 128 GB de capacidad (ampliables vía MicroSD), 4.000 mAh, minijack y cámara dual de 48+5 MP realmente estupendo por 180,95 euros en Banggood con el código BG5RN74. La versión de 3/32 está a 141 euros en AliExpress, y la de 4/64 está a 163 euros en Banggood con el código BG5RN7.
  • iPad Air (2019): atentos a la nueva versión de la tableta con pantalla de 10,5? y el potente procesador A12 Bionic, además de cámara de 8 MP y 256 GB de capacidad. A tope por 591,06 euros en Amazon (719 en Apple).
  • Xiaomi Mi 9 SE: y la versión compacta: 5,97 pulgadas, Snapdragon 712, 6 GB de RAM, 64 GB de capacidad, triple cámara (48+12+16), lector de huella en pantalla, está a 266,61 euros en Banggood con el cupón 5BGM96SE. Brutal.
  • Portátil HP Pavilion 15-bc450ns: un equipo de 15,6? Full HD con un Core i5-8300H, 8 GB de RAM, 1 TB de HDD, 128 GB SSD (uauh) y GeForce GTX 1050 (uauh!), sin Windows (hay incognichollo ahí de 1,5 euros para resolver). Está a 629,99 euros en Amazon.
  • Unidad SSD Lexar 120 GB: modelo SATA 6 GB/s, hasta 550 MB/s de velocidad de lectura, fantástico como complemento para tu PC o portátil sobre todo a este precio mísero: 21,29 euros en Amazon. La versión de 240 GB, a 36,19 euros.
  • Asus ZenFone 6: el nuevo telefonazo de Asus con pantalla sin marcos de 6,4 pulgadas, 6 GB de RAM, 64 GB de capacidad y esa cámara desplegable dual que funciona tanto como frontal como trasera. Está a 477 euros en GearBest
  • Xbox One S Digital + 3 juegos: la consola de Microsoft sin unidad de Blu-ray incluye un mando y Minecraft, Sea of Thieves y Forza Horizon 3. Está a 175 euros en AliexpressPlaza con el código «plazaoff«. Envío desde España, 2 años garantía.
  • HP Noteboook 15: portátil de 15,6 pulgadas HD (1366×768, el único fallito), CPU AMD A9-9425 (tipo Celeron), 12 GB de RAM, 256 GB de SSD, Windows 10, teclado español. Modesto en CPU y pantalla pero muy bien lo demás, el precio mola: 449,99 euros en Amazon.
  • Tablet Amazon Fire 7: la renovada tableta de Amazon con mejor procesador y sobre todo con el doble de capacidad que el modelo de 2017. La versión de 16 GB (ampliable vía microSD) está a tan solo 69,99 euros en Amazon.
  • Bolígrafo Xiaomi Mijia Pen + 3 recambios: el boli de 0,5 mm con tecnología suiza (o eso dicen) que enamora. Yo ya he comprado varios, y la verdad es que molan, y por este precio, más. El boli + tres recambios sale por 3,41 en AliExpress.

¿Quieres recibir un correo de aviso cuando publique nuevas entradas?

Standard

7 comentarios en “La parábola de los dos programadores

  1. MIGUEL dice:

    Creo que generalizar es muy arriesgado, debido a que hay Analistas malos y Programadores malos así como Analistas buenos como Programadores buenos.

  2. La Falacia de los Dos Programadores dice:

    Moraleja de Alan: si la cagas de esa manera estimando el esfuerzo empieza a usar juicio de expertos.
    Moraleja de Charles: si te pasas dos meses tocándote los cojones luego no te sorprendas de caerle mal al jefe.

Comentarios cerrados