Applying Blockchain to Improve the Integrity of the Software Development Process


Creative Commons License

Yilmaz M., Tasel S., Tuzun E., Güleç U., O’Connor R. V., Clarke P. M.

26th European Conference on Systems, Software and Services Process Improvement, EuroSPI 2019, Edinburgh, England, 18 - 20 September 2019, vol.1060, pp.260-271 identifier identifier

  • Publication Type: Conference Paper / Full Text
  • Volume: 1060
  • Doi Number: 10.1007/978-3-030-28005-5_20
  • City: Edinburgh
  • Country: England
  • Page Numbers: pp.260-271
  • Keywords: Software production, Blockchain, Software development integrity, Test-driven software development, IOT
  • TED University Affiliated: No

Abstract

© Springer Nature Switzerland AG 2019.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.