# Software Engineering Applications Enabled by Blockchain Technology: A Systematic Mapping Study
## 5 Discussion
### Theoretical Contributions and Research Implications
At first glance, one may argue that the subtle notion of trust in agile practices contradicts the trustless nature of blockchain technology. Agile software development relies on trust among developers, between developers and the product owner, and between the product owner and business stakeholders. This implies no control of the work done but transparency, communication, accountability and collective responsibility [14]. On the other hand, researchers point out that blockchain is trustless [64], which means that there is no need to trust participants, as the system is secure even in the presence of Byzantine participants. In other words, blockchain could enable collective trust on the basis of mutual distrust, the so-called trustless trust [65]. Therefore, blockchain transforms the trust notion from trusting peers to trusting the system. Researchers can further contribute to this topic by mapping, comparing and discussing other blockchain principles with agile principles. Regarding the selection of blockchain platforms, the main items that should be considered are the network permission and smart contracts support [66]. Our findings indicate that most of the studies use smart contracts to enhance the automation of SDLC activities. Therefore, the most used blockchain platforms by the selected studies are Ethereum and Hyperledger Fabric due to their ability to execute code. Ethereum is a permissionless blockchain platform that can be accessed and verified by anyone, whereas Hyperledger Fabric is a permissioned blockchain platform that allows only a set of predefined participants to join the network [60]. Due to the differences in network permission, we perceive Ethereum as more suitable for the open-source ecosystem with diverse contributors. For instance, in [52] authors use blockchain for managing open-source packages. Making information such as packages and their dependencies, available on a public ledger increases the chances for code reuse. Additionally, Ethereum can be adopted in crowdsourcing projects in which the requestor delegates specific development or testing tasks to the general public, and any developer or tester can compete to solve the task and get the reward. If the collaborators are known, for instance, different departments or teams in a distributed organization, and they need to share software-related information, e.g., [48], a blockchain platform with permissioned accessibility, such as Hyperledger Fabric is more appropriate. As blockchain technology is continuously evolving, we expect blockchain 4.0 platforms that incorporate artificial intelligence to expand the impact of blockchain on SE practices [9]. Researchers can compare the features of different blockchain platforms and discuss their applicability to SE use cases. Furthermore, practitioners should consider implementation costs, governance, regulative compliance, and efficiency limitations. A few limitations of blockchain-oriented SE applications have been mentioned in one of our studies [48]. These are large setup overhead (blockchain infrastructure setup and cryptographic tools need to be installed in each node) and storage overhead (the same information is replicated in each node). The impact of these limitations on software development efficiency should also be investigated. Future research can be devoted to the investigation of these open issues to guide implementation efforts of blockchain-oriented SE applications. Finally, the emerging field of blockchain-oriented SE introduces the need for professionals with well-defined skills in both blockchain and software engineering [6], in order to ensure that blockchain applications satisfy the requirements of software engineering.