"It is unwise to design your software for zero defects... especially for spacecraft software." ☛ Gerard Holzmann

The quote above is from an OOPSLA talk that you can find on InfoQ by Gerard Holzman.

I first came across Gerard Holzman in the early 90's while looking for ways to improve the quality of software I developed for distributing real-time updates across a network.   I found his book "Design And Validation Of Computer Protocols"  helpful, but what I found most interesting was the introduction chapter.   It starts as follows...

"The problem of designing efficient and unambiguous communication protocols existed long before the first computers were built."

He goes on to illustrate this point with discussions of communication problems solved with "protocol design" as far back as 458 B.C.  This chapter was fascinating, so much so that he subsequently wrote an entire book on the subject called "The Early History of Data Networks".   That is the book you should read... Communication challenges and "protocol" based solutions throughout human history.   Reading this books gives you the impression that there could be very little ground left to cover in protocol design when computers were invented.