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:

  • Kindle Paperwhite: el lector de libros electrónicos de referencia baja de precio. Con pantalla de 6″ retroiluminada, 8 GB de capacidad, y esa resistencia al agua para llevártelo a la pisci/playa sin miedo. Está a 109,99 euros en Amazon.
  • Portátil Chuwi Lapbook Air: 14,1″ FullHD, Intel Celeron N3450, 8 GB de RAM, 128 GB SSD (ranura M.2), Windows 10, teclado inglés, WiFi, está a 281,04 euros en Banggood con el cupón BGair44
  • Repetidor WiFi dodocool: para mejorar la cobertura de tu red WiFi, soporte de redes 802.11b/g/n, antena integrada, enchufe europeo. Está a 16,99 euros en Amazon.
  • Lenovo Ideacentre 510A: un PC para trabajar y jugar con un AMD Ryzen 5 2400G, 8 GB de RAM, 1 TB HDD, una gráfica AMD Radeon RX 560 (4 GB GDDR5), y Windows 10 Home. Está a 599,99 euros en Amazon.
  • 48 cápsulas Nescafé Dolce Gusto: el sabor espresso intenso está de rebajas, un pack de 3×16 cápsulas está a 10 euros en Amazon
  • Patinete Xiaomi Pro: el modelo con batería ampliada (474 Wh, 18.650 mAh) que pasa de 30 a 45 km, sistema de frenos dual, ruedas de 8,5 pulgadas, más avanzado y seguro por 485 euros en Banggood con el cupón MIFANPRO
  • Ratón gaming Corsair M65 Elite: con cable, sensor óptico, hasta 18.000 PPP, retroiluminación RGB, sistema de pesos ajustables. Un ratón gaming muy llamativo y capaz, está a 49,99 euros en Amazon.
  • Lenovo Legion T530: un PC de sobremesa con un Core i5-8400, 8 GB de RAM, 128 GB de SSD, 1TB de HDD y gráfica GTX 1050. Sin sistema operativo, pero bien por 599 euros en Amazon. Pero que muy bien.
  • Zapatillas Lacoste Carnaby Evo: en color azul marino, disponibles en varias tallas, están a 59,99 euros en AliExpress Plaza.
  • Grand Theft Auto V: la edición para la Xbox One está de rebajas, solo 16,99 euros en Amazon.
  • Memoria USB SanDisk Cruzer 64 GB: conexión USB 2.0, buen diseño y capacidad estupenda sobre todo a este precio: 8,99 euros en Amazon.
  • Disco duro externo WD My Book 10 TB: vamos a por todas con esta unidad externa de nada menos que 10 TB con conexión USB 3.0 y un precio estupendo, 188,99 euros en Amazon. Brutal
  • Samsung Galaxy S10e: el telefonazo compacto con 5,8”, Exynos 9 Octa 9820, 6 GB de RAM, 128 GB de capacidad (ampliables), cámara dual 12+16 MP, 3.100 mAh lector de huella en el lateral. Está a 559 euros en eBay.
  • Windows 10 Pro: una licencia para el sistema operativo de Microsoft a 2,99 euros. Te la mandan por correo junto a algunas instrucciones. Está a 2,99 euros en eBay, perfecta para esos equipos que se venden sin sistema operativo.
  • Xiaomi Mi 9: atentos, chicos. AMOLED 6,39” , Snapdragon 855, 6 GB de RAM, 64 GB de capacidad, huella dactilar en pantalla, carga inalámbrica y rápida, cámara triple (48+12+16 MP). Está a 401 euros en Banggood con el cupón 4BGM964. Otra alternativa: está a 449 en Amazon.
  • Xiaomi Redmi Note 7: 6,3” (mininotch), Snapdragon 660, 4 GB de RAM, 128 GB de capacidad (ampliables), 4.000 mAh de batería, minijack y cámara dual de 48+5 MP realmente estupenda. Está a 201,63 euros en Banggood con el cupón 4BGN7128. La versión de 3 GB de RAM y 32 GB de capacidad del Redmi Note 7 está lógicamente más barata, tan solo 146 euros en AliExpress con el cupón “aliexpress19068. Y otra opción más, 4 GB de RAM, 64 GB de capacidad por 165 euros en AliExpress con el cupón AliExpress19215
  • Suscripción EA Access 12 meses: un año entero para disfrutar un catálogo estupendo de juegos para la Xbox One como si fueran tuyos. Los instalas y a disfrutar. Está a 18,89 euros en CDKeys.
  • Auriculares inalámbricos Xiaomi AirDots TWS: los competidores de los AirPods de Apple con Bluetooth 5.0, 4 horas de autonomía y 12 más en el estuche, control táctil. Están a 22,74 euros en GearBest con el código 321U9GID
  • PocoPhone F1: telefonazo de 6,1”, Snapdragon 845, 6 GB de RAM, 128 GB de capacidad, cámara dual (12+5 MP), 4.000 mAh. Nunca lo había visto a este precio en esa versión de 128GB. Está a 279 euros en GearBest envío desde España, garantía 2 años.
  • Unidad SSD SanDisk 2 TB: una estupenda opción para quienes necesitéis mucha capacidad y mucha velocidad. 2 TB en SSD es una pasada, creedme. Está a 207 euros en Amazon Alemania, envío incluido.
  • Módulo Ballistix Sport RAM DDR4 16 GB: sigue bajando la memoria, y este módulo de 16 GB lo demuestra: DDR4, PC4-2400, color gris, está a 81 euros en Amazon Alemania envío incluido. Póngame dos (por aquello de aprovechar las memorias dual-channel).
  • Impresora multifunción Canon Pixma TS3150: imprime, escanea y copia, con WiFi, Pixma Cloud Link, inyección, impresionane por 33 euros en AliExpress con el cupón plazaoff. En Amazon muy barata también, 39 euros.
  • Patinete eléctrico Xiaomi Mijia M365: el referente. Plegable, 30 km de batería, 25 km/h, doble freno, en color negro, está a 303 euros en Banggod con el código plrosku, en Amazon sale por 412 euros.
  • Auriculares gaming Logitech G432: unos cascos de diadema con micrófono, sonido envolvente 7.1 perfecto para detectar a tus enemigos en FPS solo con el audio. Está a 55 euros en Aliexpress con el código plazaoff.
  • Tarjeta gráfica Zotac RTX 2060: estupenda opción para jugar a toda potencia. Una GeForce RTX 2060 con 6 GB de memoria GDDR6, y todas las mejoras de la arquitectura Turing (Ray-tracing, DLSS). Está a 339,99 euros en Amazon.
  • Xbox Game Pass 6 meses: en un pack de dos códigos digitales de 3 meses cada uno. Rebaja del 50% para este servicio que te permite jugar a cerca de 200 juegos de la Xbox One como si fueran tuyos. Mola, y está a 29,99 euros en Amazon.
  • Xiaomi Mi A2: la versión global de este móvil de 5,99″ con un Snapdragon 660, 4 GB de RAM, 32 GB de capacidad (no ampliables), cámara dual 12+20. Está a 131,60 euros en AliExpress con el código aliexpress19084. El modelo con 4/64 GB está en Amazon a 152 euros
  • Auriculares i12 TWS: unos auriculares inalámbricos BT 5.0 con control táctil, diseño “inspirado” (ja) en los AirPods. Están a 15,15 euros en GeekBuying con el cupón JJVWTEUK
  • Office 2019 Professional Plus: licencia para un PC, solo para Windows 10, licencia perpetua, envío del código de licencia por correo. Se dan instrucciones para descarga, instalación y aplicación. Está a 10,60 euros en Amazon.
  • Portátil Chuwi HeroBook: un 14,1″ HD con un Intel E800 quad-core, 4 GB de RAM, 64 GB de capacidad (ampliable con SSD M.2), Windows 10, 38 Wh batería. Modesto pero simpático sobre todo por su precio, 191 euros en Aliexpress con cupones.
  • Portátil gaming Asus R570ZD: un 15’6” FullHD con un AMD Ryzen 5 2500U, 8 GB de RAM, 256 GB SSD, GTX 1050 (2GB), teclado en español, puerto RJ-45, USB-C, peso de 2,3 kg (no es una pluma). Sin Windows, ojo. El precio es estupendo, 554 euros en Amazon
  • Xiaomi Mi A2 Lite: versión global, 5,84” Snapdragon 625, 3 GB de RAM, 32 GB capacidad (ampliable), cámara dual 12+5 MP, 4.000 mAh batería, Android One puro. Increíble que cueste 126,89 euros en Banggood con el cupón 4BGA2L3
  • 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,57 en AliExpress.
  • Huawei Honor 10 Lite: 6,21”, CPU Kirin 710, 3 GB de RAM, 64 GB de capacidad (ampliables), cámara dual trasera (13+13 MP), frontal de 24 MP, 3.400 mAh, lector de huellas y hasta NFC para pagos móviles. Está a 194 euros en AliExpress con el cupón “plaza1
  • Portátil Xiaomi Mi Notebook Pro: 15,6 pulgadas FullHD, Core i5-8250U, 8 GB de RAM, 256 GB PCIe SSD, expansión M.2, GeForce MX150, lector de huella, teclado en inglés (te regalan pegatinas). Está a 765 euros en AliExpress. Envío desde España en 5 días.
  • Portátil Jumper EzBook 3 Pro: modesto pero perfecto para viajes o niños: 13,3 pulgadas FullHD (!!), Intel Celeron N3450, 6 GB de RAM, 64 GB eMMC (slot M.2), salida HDMI, peso 1,39 kg, Windows 10, teclado EEUU. Está a 199,78 euros 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