alt

I recently received a curious request. A business partner of mine is in the process of bringing a machine that somebody conceived and prototyped in their garage. Their request was: can you wrap your head around this machine, and tell me how to make it, and how much it would cost? This is an activity for which I have no training and no experience, so I naturally said “Yes!”

I may be exaggerating a bit: I know how to build things, and I even understand to some degree the various manufacturing processes out there. Most importantly, I drank a lot of beers with graduate students and Ph.Ds. in Engineering, and osmosis is a thing.

So off I went; there was that initial moment of looking at a machine up close, then the realization of the incredible workmanship, ingenuity and effort its creator had put into it. Then there was the moment when I went: “What have I gotten myself into!” as I tried to wrap my head around what had to be done:

  • I had to describe the machine’s parts and assemblies and assemblies of assemblies.
  • I had to provide instructions on how to make each one of those
  • I had to collect enough information to estimate how long it would take to build each thing, and how much it would cost, possibly through many, sometimes alternate suppliers.

Most people would immediately reach for the comfort of a spreadsheet, with its neat rows and columns, and its deceptive promises of bringing order to chaos… but I have met the Beast, and It resides in every spreadsheet out there, dashing hopes and undetectably consuming revenues everywhere. I knew better than to submit to the slavery of cells and manual, unreproduceable, unverifiable labor.

A thought then butterflied at the edge of my awareness: “Parts within assemblies within assemblies within products.”

I then knew how to escape the terrible fate that is the Excel Hall of Mirrors. The tyranny it seeks to impose is that of rectangular rows and columns, like a military parade proclaiming the Zahlreich regime. This machine had hierarchy, and hierarchy is the shape of code.

The answer was then to describe the machine in software: to build a simple language that could capture what I needed, verified by the compiler (the Geometer of Computation). Code that would produce the structure of the machine in Platonic terms, to then be translated into the cave: a database, a printout, a bill of materials, a cost analysis. Code that I could test, gathering up costs, adding up material usage with unfailing mechanicism.

All the challenges in front of me succumbed to this approach: costs from different suppliers and different quantities? Check. Fabrication estimates from different fabricators and processes? Check.

Which brings me to the point I wanted to make: being able to write software is a superpower.