Applying Blockchain to Improve the Integrity of the Software Development Process
MetadataShow full item record
CitationYilmaz, M., O'Connor, R. V., Clarke, P. M., Tuzun, E., Gulec, U., O'Connor, R. V., Clarke, P. M., ... 26th European Conference on Systems, Software and Services Process Improvement, EuroSPI 2019. (January 01, 2019). Applying Blockchain to Improve the Integrity of the Software Development Process. Communications in Computer and Information Science, 1060, 260-271.
Software development is a complex endeavor that encompasses application and implementation layers with functional (refers to what is done) and non-functional (how is done) aspects. The efforts to scale agile software development practices are not wholly able to address issues such as integrity, which is a crucial non-functional aspect of the software development process. However, if we consider most software failures are Byzantine failures (i.e., where components may fail and there is imperfect information on which a component has failed.) that might impair the operation but do not completely disable the production line. In this paper, we assume software practitioners who cause defects as Byzantine participants and claim that most software failures can be mitigated by viewing software development as the Byzantine Generals Problem. Consequently, we propose a test-driven incentive mechanism based on a blockchain concept to orchestrate the software development process where production is controlled by a similar infrastructure based on the working principles of blockchain. We discuss the model that integrates blockchain with the software development process, and provide some recommendations for future work to address the issues while orchestrating software production.