Melvin Edward Conway is an American computer scientist, computer programmer, and hacker who coined what is now known as Conway's law: "Organizations, who design systems, are constrained to produce designs which are copies of the communication structures of these organizations."[1] The adage remains relevant in modern software engineering and is still being referenced and investigated.[2][3]
Apart from the above, Conway is perhaps most famous for developing the concept of coroutines. Conway coined the term coroutine in 1958 and he was the first to apply the concept to an assembly program.[4] He later authored a seminal paper on the subject of coroutines, titled "Design of a Separable Transition-diagram Compiler",[5] which included the first published explanation of the concept.[4] In this paper, he proposed organizing a compiler as a set of coroutines, which allows using separate passes while debugging and then running a single pass compiler in production. Another famous paper is his 1958 proposal of an UNCOL,[6] a Universal Computer Oriented Language, which attempted to provide a solution to economically produce compilers for new programming languages and computer architectures.
Conway wrote an assembler for the Burroughs model 220 computer called SAVE. The name SAVE was not an acronym, but a feature: programmers lost fewer punched card decks because they all had "SAVE" written on them.[7]
His work on Pascal compiler for Rockwell Semiconductor (an immediate-turnaround Pascal trainer for the Rockwell AIM-65) led to an arrangement between Apple and Think Technologies (where he served as a principal) under which the latter produced the original (1984) Mac Pascal and Apple II Instant Pascal.
In the 1970s, he was involved with the MUMPS (Massachusetts General Hospital Utility Multi-Programming System) medical programming language standard specification for the National Bureau of Standards.[8] He also wrote a reference book on MUMPS in 1983.[9]
Conway was granted a US patent in 2001 on "Dataflow processing with events", concerned with programming using graphical user interfaces. The patent expired in 2019.[10]
In 2002, Conway obtained a teacher license for high school math and physics in Massachusetts. He taught at Chelsea High School from 2002 to 2006.[11]
In 2024, Conway published an article called NEEDED: SYSTEMS THINKING IN PUBLIC AFFAIRS which summarizes his view that in order to understand human systems, one must focus on networks first, rather than actors. He posits that this is the barrier to building systems that are in alignment with human needs at scale.
[…] organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.
The word "coroutine" was coined by M. E. Conway in 1958, after he had developed the concept, and he first applied it to the construction of an assembly program. […] The first published explanation of the coroutine concept appeared much later in Conway's article "Design of a Separable Transition-Diagram Compiler," […]
The name 'SAVE' didn't stand for anything; it was just that you lost fewer card decks and listings because they all had SAVE written on them.
MUMPS, an acronym for Massachusetts General Hospital Utility Multi-Programming System, is a high-level, interactive computer programming language […] Part I of this Standard, the MUMPS Language Specification, MDC/28, was prepared by Melvin E. Conway under Contract No. 5–35770 with the National Bureau of Standards.
In 2002 I obtained a license to teach high school math and physics in Massachusetts, and I taught at Chelsea High School from 2002 to 2006.