Facundo Olano recopiló esta impresionante lista de papers o trabajos académicos sobre ingeniería del software con más de cien referencias. Hay dos versiones: una por temas (redes, criptografía, sistemas distribuidos, etcétera) y otra cronológica. Me he permitido extraer aquí unas cuantas referencias a modo de ejemplo de la lista cronológica, que comienza en 1945 y acaba en nuestros días.
La idea de la lista (que originalmente iban a ser no más de 30 papers, pero ya se sabe lo que pasa) es que sean trabajos cortos, fáciles de leer, completos por sí mismos y que estén disponibles de forma gratuita online. Por lo general además están en su formato original, a veces escaneados en PDFs de publicaciones especializadas, con todas las ilustraciones y tratamiento tipográfico añejo de la época.
Mi selección:
- As We May Think. Bush (1945)
- Computing Machinery and Intelligence. Turing (1950)
- Method for the Construction of Minimum-Redundancy Codes. Huffman (1952)
- On the Traveling Salesman Problem. Kruskal (1956)
- Some Moral and Technical Consequences of Automation. Wiener (1960)
- An Experimental Time-Sharing System. Corbató, Merwin Daggett, Daley (1962)
- Cramming More Components onto Integrated Circuits. Moore (1965)
- ELIZA—a computer program for the study of natural language. Weizenbaum (1966)
- Goto Statement Considered Harmful. Dijkstra (1968)
- The UNIX Time-Sharing System. Ritchie, Thompson (1974)
- A Protocol for Packet Network Intercommunication. Cerf, Kahn (1974)
- Computer Programming as an Art. Knuth (1974)
- Ordered hash tables. Amble, Knuth (1974)
- The Mythical Man Month. Brooks (1975)
- New Directions in Cryptography. Diffie, Hellman (1976)
- A Universal Algorithm for Sequential Data Compression. Ziv, Lempel (1977)
- Time, Clocks, and the Ordering of Events in Distributed Systems. Lamport (1978)
- Ethernet: Distributed packet switching for networks. Metcalfe, Boggs (1978)
- Obtaining Digital Signatures and Public-Key Cryptosystems. Rivest et al (1978)
- The Byzantine Generals Problem. Lamport, Shostak, Pease (1982)
- A Note on Distributed Computing. Waldo et al (1994)
- How to Build a Highly Available System Using Consensus. Lampson (1996)
- The anatomy of a large-scale hypertextual Web search engine. Brin, Page (1998)
- The Cathedral and the Bazaar. Raymond (1998)
- MapReduce: Data Processing on Large Clusters. Dean, Ghemawat (2004)
- Bitcoin, A peer-to-peer electronic cash system. Nakomoto (2008)
- The Network is Reliable. Bailis, Kingsbury (2014)
- Nines are Not Enough: Meaningful Metrics for Clouds. Mogul, Wilkes (2019)
Desde luego, resulta curioso ver en una misma lista a Alan Turing, Vinton Cerf (Internet), Bob Metcalfe (Ethernet), Sergey Brin y Larry Page (Google) y Satoshi Nakamoto (Bitcoin).