@rob_pike: "Unit testing was driven by the dynamic language people because they had that instead of static typing." - LangNext 2014In 1983 I wrote two custom applications. The first was a mail merge program that would take a CSV file of addresses and WordStar document and print the merged results so that they could be stuffed and snail mailed. The second was a warehouse inventory system for perishables.
At the time; the state of the art debugging was the print statement and testing was manual integration testing. Either you got the results you wanted or you didn't. I would like to say that programming today is more complicated and that we need many more guardrails to get from a proposal to functional application but I cannot.
I'm reminded, again, that a Russian space engineer once told me to keep the interface simple and internals simpler. This makes everything simpler. Simple might break but it's simple to isolate and repair.