Emphasizing the Early Phases of the Software Development Process Before Deploying Smart Contracts - Juan-Carlos Lopez-Pimentel; Carolina del-Valle-Soto; Leonardo J. Valdivia; Raul Monroy (IEEE Access)
Immutability is one of the main characteristics of Blockchain. However, most software development is not static. This dilemma, among others, has caused a new branch of blockchain-oriented software engineering. This paper emphasizes the importance of the early phases of software development before deploying blockchain-based software. It follows case-based research to illustrate the implications of smart contracts designed in the early phases without including all requirements. The paper presents a digital identity case designed within a microservice architecture. We show two stages: an initial design and an upgrading requirement, which causes considerable changes in the architecture. The case is analyzed from three different perspectives: 1) Economic, finding that re-deploying smart contracts does not implicate considerable cost; 2) Computational perspective, finding that it generates various implications: smart contract purpose duplication, storage wastage, failure to recognize the original smart contract, cascade dependency repercussion, and migration problems; and 3) Interconnected effect, a simple change, required for upgrading smart contracts, generates broad collateral repercussions in both on-chain (within the blockchain) and off-chain.