Synthetic biologists have failed to abstract away variation between labs - in people, equipment, location, environmental conditions - and this variance is reflected in the biology that operates within them. This isn’t a problem, it is the problem of synthetic biology. Until we break the necessity of learning the particulars of our execution environment, we can’t (effectively) share ways of doing things. Right now, it should be natural and expected to have a reproducibility crisis. The requirement for tacit knowledge for every single experiment extends so far that it has become an invisible requirement for biotechnology.
In other words, it is a programming environment with zero libraries where all compilation is done by hand, and there is no formal specification for the code, and every single CPU works differently. How can biology experiments become more like modern software engineering? I think it requires a few things:
In practice, this looks like formalizing protocols as code - because code is exactly how humans have effectively figured out how to communicate and abstract machine operations. Lots of people know this. But they lose the magic of what made it work in the world of computers. The magic of higher-level languages in code is that you can take a bunch of libraries written by a variety of people, then run it on almost any machine, and it works! Magical.
That means you can’t just have protocols as code that work on a single machine or architecture or lab. You can’t just have protocols as code in a way where people don’t actually share code to build on each other. You lose the magic. It’s not just about having an API to your fully automated lab. It’s about creating the experience around those APIs that just lets people do things.
The magic is writing a protocol, pulling a ton of dependencies - GoldenGate cloning, yeast transformation, plate reading - and instantly being able to execute that protocol locally or on an automated cluster elsewhere. Simplicity in use, sharable at the core, in a way that cannot be taken away by a single provider. Magical!