Applying Blockchain to Improve the Integrity of the Software Development Process
O’Connor, R. V.
Clarke, P. M.
Systems, Software and Services Process Improvement
260 - 271
Item Usage Stats
MetadataShow full item record
Communications in Computer and Information Science;1060
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.
Software development integrity
Test-driven software development
Published Version (Please cite this version)https://doi.org/10.1007/978-3-030-28005-5_20