Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Conway, M.E.: How do committees invent. Datamation 14, 28–31 (1968)
Clarke, P., O’Connor, R.V., Yilmaz, M.: In search of the origins and enduring impact of agile software development. In: Proceedings of the 2018 International Conference on Software and System Process, pp. 142–146. ACM (2018)
Clarke, P., O’Connor, R.V., Leavy, B.: A complexity theory viewpoint on the software development process and situational context. In: Proceedings of the International Conference on Software and Systems Process, pp. 86–90. ACM (2016)
Verona, J.: Practical DevOps. Packt Publishing Ltd., Birmingham (2016)
Beck, K.: Test-Driven Development: by Example. Addison-Wesley Professional, Boston (2003)
Hayes, W., Lapham, M.A., Miller, S., Wrubel, E., Capell, P.: Scaling agile methods for department of defense programs. Technical report, Carnegie Mellon University, Pittsburgh, USA (2016)
Lamport, L., Shostak, R., Pease, M.: The byzantine generals problem. ACM Trans. Program. Lang. Syst. (TOPLAS) 4, 382–401 (1982)
Zyskind, G., Nathan, O.: Decentralizing privacy: using blockchain to protect personal data. In: IEEE Security and Privacy Workshops, pp. 180–184. IEEE (2015)
Zhang, Y., Wen, J.: An IoT electric business model based on the protocol of bitcoin. In: 2015 18th International Conference on Intelligence in Next Generation Networks, pp. 184–191. IEEE (2015)
Vandervort, D.: Challenges and opportunities associated with a bitcoin-based transaction rating system. In: Böhme, R., Brenner, M., Moore, T., Smith, M. (eds.) FC 2014. LNCS, vol. 8438, pp. 33–42. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44774-1_3
Herbert, J., Litchfield, A.: A novel method for decentralised peer-to-peer software license validation using cryptocurrency blockchain technology. In: Proceedings of the 38th Australasian Computer Science Conference (ACSC 2015), vol. 27, p. 30 (2015)
Peters, G.W., Panayi, E.: Understanding modern banking ledgers through blockchain technologies: future of transaction processing and smart contracts on the internet of money. In: Tasca, P., Aste, T., Pelizzon, L., Perony, N. (eds.) Banking Beyond Banks and Money. NEW, pp. 239–278. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-42448-4_13
Devine, P.: Blockchain learning: can crypto-currency methods be appropriated to enhance online learning? (2015)
Sharples, M., Domingue, J.: The blockchain and kudos: a distributed system for educational record, reputation and reward. In: Verbert, K., Sharples, M., Klobučar, T. (eds.) EC-TEL 2016. LNCS, vol. 9891, pp. 490–496. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-45153-4_48
Zheng, Z., Xie, S., Dai, H., Chen, X., Wang, H.: An overview of blockchain technology: architecture, consensus, and future trends. In: IEEE International Congress on Big Data (BigData Congress), pp. 557–564. IEEE (2017)
Conoscenti, M., Vetro, A., Martin, D., J.C.: Blockchain for the internet of things: a systematic literature review. In: IEEE/ACS 13th International Conference of Computer Systems and Applications (AICCSA), pp. 1–6. IEEE (2016)
Novo, O.: Blockchain meets IoT: an architecture for scalable access management in IoT. IEEE IoT J. 5, 1184–1195 (2018)
Fernández-Caramés, T.M., Fraga-Lamas, P.: A review on the use of blockchain for the internet of things. IEEE Access 6, 32979–33001 (2018)
Porru, S., Pinna, A., Marchesi, M., Tonelli, R.: Blockchain-oriented software engineering: challenges and new directions. In: 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C), pp. 169–171. IEEE (2017)
Marchesi, M.: Why blockchain is important for software developers, and why software engineering is important for blockchain software (keynote). In: International Workshop on Blockchain Oriented Software Engineering (IWBOSE), p. 1. IEEE (2018)
Destefanis, G., Marchesi, M., Ortu, M., Tonelli, R., Bracciali, A., Hierons, R.: Smart contracts vulnerabilities: a call for blockchain software engineering? In: International Workshop on Blockchain Oriented Software Engineering (IWBOSE), pp. 19–25. IEEE (2018)
Wohrer, M., Zdun, U.: Smart contracts: security patterns in the ethereum ecosystem and solidity. In: International Workshop on Blockchain Oriented Software Engineering (IWBOSE), pp. 2–8. IEEE (2018)
Beller, M., Hejderup, J.: Blockchain-based software engineering. In: 41st International Conference on Software Engineering (ICSE). New ideas and Emerging Results (NIER) track (2019)
Bartoletti, M., Pompianu, L.: An empirical analysis of smart contracts: platforms, applications, and design patterns. In: Brenner, M., et al. (eds.) FC 2017. LNCS, vol. 10323, pp. 494–509. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70278-0_31
Yilmaz, M., O’Connor, R.V., Collins, J.: Improving software development process through economic mechanism design. In: Riel, A., O’Connor, R., Tichkiewitch, S., Messnarz, R. (eds.) EuroSPI 2010. CCIS, vol. 99, pp. 177–188. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15666-3_16
McHugh, O., Conboy, K., Lang, M.: Agile practices: the impact on trust in software project teams. IEEE Softw. 29, 71–76 (2012)
Yang, Y., Wang, Q., Li, M.: Process trustworthiness as a capability indicator for measuring and improving software trustworthiness. In: Wang, Q., Garousi, V., Madachy, R., Pfahl, D. (eds.) ICSP 2009. LNCS, vol. 5543, pp. 389–401. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-01680-6_35
O’Connor, R.V., Elger, P., Clarke, P.M.: Continuous software engineering–a microservices architecture perspective. J. Softw.: Evol. Process 29, e1866 (2017)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Yilmaz, M., Tasel, S., Tuzun, E., Gulec, U., O’Connor, R.V., Clarke, P.M. (2019). Applying Blockchain to Improve the Integrity of the Software Development Process. In: Walker, A., O'Connor, R., Messnarz, R. (eds) Systems, Software and Services Process Improvement. EuroSPI 2019. Communications in Computer and Information Science, vol 1060. Springer, Cham. https://doi.org/10.1007/978-3-030-28005-5_20
Download citation
DOI: https://doi.org/10.1007/978-3-030-28005-5_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-28004-8
Online ISBN: 978-3-030-28005-5
eBook Packages: Computer ScienceComputer Science (R0)