¿Cómo era la ingeniería de software antes del control de fuente?

Utilizamos un sistema de promoción. Así es como desarrollamos ‘Subsistemas’ para MVS durante la década de 1970. Este era un momento en que los mazos de cartas se estaban volviendo obsoletos y almacenamos nuestros programas como archivos en discos, pero todavía no había control de origen.

Los subsistemas eran programas complejos que proporcionaban servicios a nivel del sistema operativo. Algunos ejemplos de subsistemas son JES, VTAM y CICS. Era bastante raro que los ingenieros escribieran código como este fuera de IBM. Cada uno de nuestros subsistemas constaba de cientos de archivos fuente escritos en lenguaje ensamblador. Se envió un trabajo por lotes, imágenes de tarjeta del disco, para ensamblar y vincular los archivos fuente, esencialmente una compilación. Un sistema de tiempo compartido con terminales tontos era básicamente nuestro IDE para editar los archivos fuente.

Un sistema de promoción servido en lugar de control de fuente . Básicamente, había tres o cuatro conjuntos de, lo que llamaríamos hoy, carpetas (estos se llamaron conjuntos de datos particionados). Cada conjunto de carpetas representaba un nivel de promoción de código, como desarrollo, prueba, producción. Cada nivel o conjunto de carpetas contenía una carpeta para el origen, una para el objeto, una para las imágenes binarias y otra para los parámetros de ese nivel. Podríamos simplemente ejecutar y probar cualquier nivel. Sin embargo, la depuración fue extremadamente difícil. Los archivos de origen podrían promoverse individualmente o en grupos hasta el siguiente nivel cuando se completaron suficientes pruebas y se reconstruyó ese nivel. Las herramientas que teníamos consistían en archivos CList que son similares a los scripts de shell. Se empleó un CList para promocionar la fuente y enviar un trabajo por lotes para construirlo. Teníamos que tener cuidado de no pisar el código de los demás. Los editores de código fuente fueron similares a VI. Soy, en estos días, órdenes de magnitud más productivo como programador debido a las excelentes herramientas que tenemos ahora.

El control de origen ha existido durante mucho tiempo, por lo que una forma típica de manejar el control de versiones antes era:

* Reúna todas sus tarjetas perforadas en un mazo, colóquelas en una caja o coloque una banda elástica alrededor de ellas.
* Tome un bolígrafo y escriba información de identificación en el costado de la plataforma. Hecho correctamente, esta escritura le ayudaría a volver a armar la plataforma si la dejó caer al suelo. Si eras inteligente, trazaste una línea desde el frente de la plataforma hacia atrás, no paralela a un lado.

Aquí hay una buena página que alguien escribió en el historial de control de fuente:
http://www.flourish.org/blog/?p=397