"no one wrote any unit tests and the majority of developers weren’t aware of good practices."
Early in my career (80s), as I said most programmers automated their tests, but they decide what unit tests they needed. Most tests were behavioral, not unit level. I myself rarely write unit tests. Here is what I personally do (with great success): https://pddev.blogspot.com/
And indeed in the 80s there was no discipline about it: success entirely rested with the team and the team's leadership. Some teams had "a good project manager" or "a great tech lead", and others did not. The one with good leadership were successful and the others failed. And you are right about very large teams (>20). (But one can easily scale to many teams if one has good leadership.)
The PMI, RUP, and then XP, Scrum, and SAFe communities have tried to replace good leadership with cookbook processes, but that does not work. What _does_ work is sharing concepts - patterns - about things. Lean and Flow are an example of this. One does not "implement" a pattern: one learns the pattern and then applies the pattern's core idea, by defining one's own approach or process.