-1

I'm putting together a talk of the history of best practices in software development and we're trying to put together a bit of a timeline of how good practice has evolved.

This question talks about the history of Source Control and talks about how the first versions started to appear in the 80s but I'm hoping we can go further back.

I'm looking into the work done at Bletchley Park during WW2 and the machines Alan Turing and his team built to crack the German codes. These are widely considered to be some of the earliest modern day computers and used hardware switches and mechanical components rather than what we may recognise as software today.

However, these were the predecessors for the programs we create today and were every bit as complicated. Do we know what kind of change tracking practices (or what we know today as source control) was used while building and programming these incredible machines using the switches?

Liath
  • 3,436

3 Answers3

3

I do not know what you are really interested in, but remember that inputting code into a terminal is a modern thing.

When people first started to really write code (instead of hardwiring things), they wrote it on paper sheets and from there it was translated for the computer (punch cards were common). So your paper sheets give you a complete history of all programs, and your punch cards may also.

Turing, of course, was even before the time of freely computable machines.

2

Source control was not a thing, but you could say that there was an ad hoc source control, resulting from all the administration around the project. Read further though, because there's more to Source Control than that.

The word did not exist, even the concept didn't exist. And there would have been no way to rollback the work instantly like you could do nowadays with git, but there was probably lots of traceability in the documents, so that nothing would get lost or forged.

Keep in mind that the development iterations back then were much much slower.

There were several reasons:

  • Everything was handwritten or typed on paper, including schematics, etc.
  • It was war time, so there was a lot of formal validation going on, like the officer to whom the team was reporting to had to sign documents constantly.
  • Many peripheral tasks that were performed by specialized teams. There used to be rooms full of peope whose job was solely to perform complex calculations, fast. There were also people whose job was solely to punch cards.

All these documents had to go back and forth, and were constantly validated, and then archived. Formally, you may call that an embryo of source control, applied to a tiny team of like 10 people, tops. What I'm describing doesn't even accurately represent the daily work routine o Turing during WWII. What I'm describing is more of a 1960's NASA project.

"Modern", automated, dedicated source control is a billion lightyears away from that. If you're satisfied with such a lose definition of Source Control", then you could call anything source control. It wasn't even sources, only doodles and technical documents.

I would add that source control is not only meant to archive and rollback, but also to handle concurrent modifications. There were no such things in Turing's time, since his team and he were dispatching tasks after meetings gathering a handful of people.

2

The closest thing would be lab/engineering notebooks. These notebook should have what was planned, what was done, what the result were and future plans.

These notebooks are considered legal documents and are commonly used in patent disputes.

They are not source control, though they serve an analogous function.

Robert Baron
  • 1,132