So I am unsure such a improvement methodology has ever been carried out to such an excessive earlier than, so I believed I would doc it. Briefly, it is like test-driven triplet-programming improvement.
Quickly growing our alpha codebase, there have been 4 of us sitting round a desk within the workplace in Berlin. Three folks (Vitalik, Jeff and I) coder our personal clean-room implementation of the Ethereum protocol. Fourth was Christophe, our check grasp.
Our purpose was to have three absolutely suitable implementations in addition to a transparent specification by the tip of three days of considerable improvement. With distance, this course of often takes just a few weeks.
This time we would have liked to hurry it up; Our course of was quite simple. First we talk about the assorted modifications that break the consensus and describe them as formally as potential. Then, individually we go about coding all of the modifications collectively, racking our brains about potential clarifications to the specs as wanted. In the meantime, Christophe prepares and codes the exams, populating the outcomes both manually or with the implementation on the forefront (C++, sometimes :-P).
After a milestone’s value of modifications have been coded and exams written, every clean-room implementation is examined towards frequent check knowledge compiled by Christophe. The place issues are discovered, we debug in a gaggle. To this point, it has confirmed to be an efficient manner of rapidly producing well-tested code and, maybe extra importantly, in offering a transparent but formal specification.
Are there extra examples of such strategies taken to extremes?