...by Daniel Szego
"Simplicity is the ultimate sophistication."
Leonardo da Vinci

Wednesday, November 15, 2017

Notes on agile methodologies at Blockchain development

Agile, Scrum, DevOps, Lean development. These technologies are cool and they certainly offer advantages in a lot of different circumstances. However as soon as it is about Blockchain development these methodologies should be used with extreme caution, or rather not used at all. The problem is that public Blockchains has got a special characteristic, they work rather as trustware, in which practically different cryptographical and collaboration protocols are implemented. On the top, both smart contracts and classical protocols are immutable, meaning that change usually means hard-fork. However to realize a hard fork is actually not so easy, practically it requires the support from the whole community and all the miners, so it is an option only in a very few exceptional situation. As a consequence, developing on a public blockchain requires rather the conservative methodologies, like waterfall or V model, with a lot of unit testing, penetration testing code and formal verification.