The Ethereum Development Process | Ethereum Foundation Blog

So I’m not sure if this kind of development methodology has ever been applied to such an extreme. So I thought I’d document it. In a nutshell, it’s like test-driven triplet programming development.

The four of us sat around a table in our Berlin office while rapidly developing the Alpha codebase. Three people (Vitalik, Jeff, and myself) are implementing the Ethereum protocol in our own clean rooms. The fourth person was Christophe, a master of testing.

Our goal was to have three fully compatible implementations and a clear specification by the end of three days of substantial development. In remote locations, this process usually takes several weeks.

This time we needed to do it quickly. Our process was very easy. First, discuss the various changes that break the consensus and explain them as formally as possible. We then proceed to code the changes independently and concurrently, raising our heads for possible clarifications to the specification as needed. Christoph, on the other hand, invents and codes the tests and enters the results either manually or using the most advanced implementation (C++, usually :-P).

After milestone changes are coded and tests are written, each cleanroom implementation is tested against common test data compiled by Christoph. If you find any issues, debug them as a group. So far, this has proven to be an effective way to quickly produce well-tested code, and perhaps more importantly, provide a clear, unambiguous formal specification. is.

Are there any other examples of such extreme techniques being used?

Related Article


Leave a Comment