Mel Conway’s career in IT began in 1956 with punched cards and vacuum-tube computers. From that time to now, his primary interest has been simplifying the process of building software. In 1963 two papers introduced four innovations that radically simplified the construction of COBOL compilers and that were adopted by several computer manufacturers.
The thesis of his 1968 paper on the design process has come to be known as “Conway’s Law.”
In the 1970’s he consulted to hospitals and medical schools on computer-based systems for medical records. As an independent contractor he built interactive digital-to-video viewers for CAT and PETT scanners for three medical institutions. As a result of these innovations he was invited to describe his work at two radiology conferences.
In 1982 he co-founded a startup that built Macintosh Pascal for Apple based on his design, unique for immediate turnaround and source-level debugging in a computer with limited memory.
He has derived a set of design principles for building tools that simulate a hands-on experience for application construction, and in 2001 he was issued a patent for a system design based on this research.
Currently he is applying these ideas to building distributed applications.
Imagine you’re a potter making your bowls on a wheel in your studio. Now imagine that your craft has a different workflow: you make your bowls by writing scripts that are executed by a bowl-making machine on the other side of the world without your participation. That’s the difference between a tightly coupled craft (your hands on the working material) and a loosely coupled craft (feedback too weak or too late to guide the process).
The craft of the potter involves a tightly coupled feedback loop. Our craft as programmers at best involves loose coupling.
Test-Driven Development is a step toward tightening up the feedback loop that guides coding. Now imagine what might be different if our craft were so tightly coupled that our relationship with our software were more like the potter’s hands-on relationship with the clay.
My research examines how we can make application development a tightly coupled craft by exploiting the human’s tight hand-eye-brain feedback loop. I’ll report a set of design principles, demonstrate a proof-of-concept “hands-on” application-construction tool, and show how building with live data using such a tool can alter the dynamics of the construction process. Then I’ll suggest how adopting processes built on these ideas can further draw domain experts into the application-development process.