Understanding the motivations, challenges and needs of Blockchain software developers: a survey
Tóm tắt
The blockchain technology has potential applications in various areas such as smart-contracts, Internet of Things (IoT), land registry, supply chain management, storing medical data, and identity management. Although GitHub currently hosts more than six thousand active Blockchain software (BCS) projects, few software engineering researchers have investigated these projects and their contributors. Although the number of BCS projects is growing rapidly, the motivations, challenges, and needs of BCS developers remain a puzzle. Therefore, the primary objective of this study is to understand the motivations, challenges, and needs of BCS developers and analyze the differences between BCS and non-BCS development. On this goal, we sent an online survey to 1,604 active BCS developers identified by mining the GitHub repositories of 145 popular BCS projects. The survey received 156 responses that met our criteria for analysis. The results suggest that the majority of the BCS developers are experienced in non-BCS development and are primarily motivated by the ideology of creating a decentralized financial system. Although most of the BCS projects are Open Source Software (OSS) projects by nature, more than 93% of our respondents found BCS development somewhat different from a non-BCS development as BCS projects have higher emphasis on security and reliability than most of the non-BCS projects. Other differences include: higher costs of defects, decentralized and hostile environment, technological complexity, and difficulty in upgrading the software after release. These differences were also the primary sources of challenges to them. Software development tools that are tuned for non-BCS development are inadequate for BCS and the ecosystem needs an array of new or improved tools, such as: customized IDE for BCS development tasks, debuggers for smart-contracts, testing support, easily deployable simulators, and BCS domain specific design notations.
Tài liệu tham khảo
Abran A, Moore JW, Bourque P, Dupuis R, Tripp L (2004) Software engineering body of knowledge. IEEE Computer Society, Angela Burgess
Adhami S, Giudici G, Martinazzi S (2018) Why do businesses go crypto? An empirical analysis of initial coin offerings. Journal of Economics and Business
Arkin B, Stender S, McGraw G (2005) Software penetration testing. IEEE Secur Priv 3(1):84–87
Armstrong JS, Overton TS (1977) Estimating Nonresponse Bias in Mail Surveys. J Market Res 14(3):396–402
Azaria A, Ekblaw A, Vieira T, Lippman A (2016) Medrec: Using blockchain for medical data access and permission management. In: International Conference on Open and Big Data (OBD). IEEE, pp 25–30
Beier ME, Ackerman PL (2005) Age, ability, and the role of prior knowledge on the acquisition of new domain knowledge: promising results in a real-world learning environment. Psychol Aging 20(2):341
Benjamini Y, Hochberg Y (1995) Controlling the false discovery rate: a practical and powerful approach to multiple testing. Journal of the royal statistical society. Series B (Methodological) 57(1):289–300
Bosu A, Carver J, Guadagno R, Bassett B, McCallum D, Hochstein L (2014a) Peer impressions in open source organizations: a survey. J Syst Softw 94 (0):4–15
Bosu A, Carver JC (2014b) Impact of developer reputation on code review outcomes in oss projects: an empirical investigation. In: Proceedings of the 8th ACM/IEEE international symposium on empirical software engineering and measurement. ACM, pp 33
Bosu A, Carver JC, Bird C, Orbeck J, Chockley C (2017) Process aspects and social dynamics of contemporary code review: insights from open source development and industrial practice at microsoft. IEEE Trans Softw Eng 43(1):56–75
Brooke S (2018) The ins and outs of testing blockchain apps. https://jaxenter.com/ins-outs-testing-blockchain-apps-146447.html
Campion S, Messinger D (2013) System and method for distributed software testing. US Patent 8,621,434
Chakraborty P, Shahriyar R, Iqbal A, Bosu A (2018) Understanding the software development practices of blockchain projects: a survey. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement, ESEM ’18, pp 28:1–28:10
Chen C, Qi Z, Liu Y, Lei K (2017) Using virtualization for blockchain testing. In: International conference on smart computing and communication. Springer, pp 289–299
Chess B, McGraw G (2004) Static analysis for security. IEEE Secur Priv 2 (6):76–79
Chuen DLK (2015) Handbook of digital currency: bitcoin, innovation, financial instruments, and big data. Academic Press, New York
Clack CD, Bakshi VA, Braine L (2016) Smart contract templates: foundations, design landscape and research directions. arXiv:1608.00771
Clarke EM, Wing JM (1996) Formal methods: State of the art and future directions. ACM Comput Surv (CSUR) 28(4):626–643
Cohen J (1960) A coefficient of agreement for nominal scales. Educ Psychol Meas 20(1):37–46
Cryptocurrency market capitalization (2019) https://www.coinmarketcap.com/. Accessed: 2019-01-15
Dahlander L, Mckelvey M (2005) Who is not developing open source software? non-users, users, and developers. Econ Innov Technol 14(7):617–635
David PA, Shapiro JS (2008) Community-based production of open-source software: What do we know about the developers who participate?. Inf Econ Policy 20 (4):364–398. Empirical Issues in Open Source Software
De Filippi P, Loveluck B (2016) The invisible politics of bitcoin: Governance crisis of a decentralized infrastructure. Internet Policy Rev 5(4):529–546
Deci E, Ryan RM (1985) Intrinsic motivation and self-determination in human behavior. Springer Science & Business Media, Berlin
Delmolino K, Arnett M, Kosba A, Miller A, Shi E (2016) Step by step towards creating a safe smart contract: Lessons and insights from a cryptocurrency lab. In: International conference on financial cryptography and data security. Springer, pp 79–94
Destefanis G, Marchesi M, Ortu M, Tonelli R, Bracciali A, Hierons RM (2018) Smart contracts vulnerabilities: a call for blockchain software engineering?. In: Proceedings of the 2018 international workshop on blockchain oriented software engineering. IEEE, Campobasso, pp 19–25
Documentation BD (2018) Mainnet, bicoin main network. https://bitcoin.org/en/glossary/mainnet. Accessed: 2018-01-04
Elliott MR, Davis WW (2005) Obtaining cancer risk factor prevalence estimates in small areas: combining data from two surveys. J Royal Stat Soc: Ser C (Appl Stat) 54(3):595–609
Fanning K, Centers DP (2016) Blockchain and its coming impact on financial services. J Corp Account Financ 27(5):53–57
Galati F (2019) Blockchain as a process: Ideologies and motivations behind the technology. https://medium.com/coinmonks/blockchain-as-a-process-ideologies-and-motivations-behind-the-technology-c25219d87881/
Garfinkel SL (1996) Public key cryptography. Computer 29(6):101–104
Gilbertson T, Vroegindewey L (2017) Larry’s cryptocoin risk. https://www.coindevelopmentindex.com/
Hars A, Ou S (2001) Working for free? motivations of participating in open source projects. In: 2001. Proceedings of the 34th annual Hawaii international conference on system sciences. IEEE, pp 9–pp
Hennessey BA, Amabile TM (1998) Reality, intrinsic motivation, and creativity. Am Psychol 51:1153–1166
Herndon JB (2018) Comparing and linking survey data: Considerations for working with multiple data sources. https://www.nidcr.nih.gov/grants-funding/grant-programs/behavioral-social-sciences-research-program/comparing-and-linking-survey-data
Hertel G, Niedner S, Herrmann S (2003) Motivation of software developers in open source projects: an internet-based survey of contributors to the linux kernel. Res Policy 32(7):1159–1177
Hildenbrandt E, Saxena M, Rodrigues N, Zhu X, Daian P, Guth D, Moore B, Park D, Zhang Y, Stefanescu A et al (2018) Kevm: a complete formal semantics of the ethereum virtual machine. In: 2018 IEEE 31st computer security foundations symposium (CSF). IEEE, pp 204–217
Hitka M, Balážová ž (2015) The impact of age, education and seniority on motivation of employees. Bus: Theory Pract 16:113
Howell ST, Niessner M, Yermack D (2018) Initial coin offerings: Financing growth with cryptocurrency token sales. Technical report, National Bureau of Economic Research
Huh S, Cho S, Kim S (2017) Managing iot devices using blockchain platform. In: 2017 19th International Conference on Advanced Communication Technology (ICACT). IEEE, pp 464–467
Humphrey SE, Nahrgang JD, Morgeson FP (2007) Integrating motivational, social, and contextual work design features: a meta-analytic summary and theoretical extension of the work design literature. J Appl Psychol 92(5):1332
Iansiti M, Lakhani KR (2017) The truth about blockchain. Harv Bus Rev 95 (1):118–127
IBM Corp. Released (2017) IBM SPSS Statistics for Windows, Version 25.0. Armonk, NY: IBM Corp.
Jacobovitz O (2016) Blockchain for identity management
Jakobsson M, Juels A (1999) Proofs of work and bread pudding protocols. In: Secure information networks. Springer, pp 258–272
Jiang B, Liu Y, Chan W (2018) Contractfuzzer: Fuzzing smart contracts for vulnerability detection. In: Proceedings of the 33rd ACM/IEEE international conference on automated software engineering. ACM, pp 259–269
Kononenko O, Baysal O, Godfrey MW (2016) Code review quality: how developers see it. In: 2016 IEEE/ACM 38th international conference on software engineering (ICSE). IEEE, pp 1028–1038
Korpela K, Hallikas J, Dahlberg T (2017) Digital supply chain transformation toward blockchain integration. In: Proceedings of the 50th Hawaii international conference on system sciences
Krafft PM, Della Penna N, Pentland AS (2018) An experimental study of cryptocurrency market dynamics. In: Proceedings of the 2018 CHI conference on human factors in computing systems, CHI ’18, pp 605:1–605:13
Lakhani KR, Wolf RG (2003) Why hackers do what they do: Understanding motivation and effort in free/open source software projects. MIT Sloan Working Paper 4425–03
Landis JR, Koch GG (1977) The measurement of observer agreement for categorical data. Biometrics 33(1):159–174. http://www.jstor.org/stable/2529310
Lee A, Carver JC, Bosu A (2017) Understanding the impressions, motivations, and barriers of one time code contributors to floss projects: a survey. In: Proceedings of the 39th international conference on software engineering, ICSE ’17. IEEE Press, Piscataway, pp 187–197. https://doi.org/10.1109/ICSE.2017.25
Lohr SL, Rao J (2000) Inference from dual frame surveys. J Am Stat Assoc 95(449):271–280
Lu CJ, Shulman SW (2008) Rigor and flexibility in computer-based qualitative research: Introducing the coding analysis toolkit. Int J Multiple Res Approaches 2 (1):105–117
Luu L, Chu DH, Olickel H, Saxena P, Hobor A (2016) Making smart contracts smarter. In: Proceedings of the 2016 ACM SIGSAC conference on computer and communications security. ACM, pp 254–269
Mcdonald MP (2007) The true electorate: a Cross-Validation of voter registration files and election survey demographics. Publ Opin Q 71(4):588–602
Meece JL, Glienke BB, Burg S (2006) Gender and motivation. J Sch Psychol 44(5):351–373
Mockus A, Fielding RT, Herbsleb JD (2002) Two case studies of open source software development: Apache and mozilla. ACM Trans Softw Eng Methodol 11 (3):309–346
Murphy-Hill E, Zimmermann T, Nagappan N (2014) Cowboys, ankle sprains, and keepers of quality: How is video game development different from software development?. In: Proceedings of the 36th international conference on software engineering. ACM, pp 1–11
Nakamoto S (2008) Bitcoin: A peer-to-peer electronic cash system
Narayanan A, Bonneau J, Felten E, Miller A, Goldfeder S (2016) Bitcoin and cryptocurrency technologies: a comprehensive introduction. Princeton University Press, Princeton
Nikolic I, Kolluri A, Sergey I, Saxena P, Hobor A (2018) Finding the greedy, prodigal, and suicidal contracts at scale. arXiv:1802.06038
Overflow S (2017) Stack overflow annual developer survey. https://insights.stackoverflow.com/survey/
Palladino S (2017) The parity wallet hack explained. https://blog.zeppelin.solutions/on-the-parity-wallet-multisig-hack-405a8c12e8f7
Park D, Zhang Y, Saxena M, Daian P, Roṡu G. (2018) A formal verification tool for ethereum vm bytecode. In: Proceedings of the 2018 26th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering. ACM, pp 912–915
Peters GW, Panayi E (2016) Understanding modern banking ledgers through blockchain technologies: Future of transaction processing and smart contracts on the internet of money. In: Banking beyond banks and money. Springer, pp 239–278
Porru S, Pinna A, Marchesi M, Tonelli R (2017) Blockchain-oriented software engineering: challenges and new directions. In: Proceedings of the 39th international conference on software engineering companion. IEEE Press, Buenos Aires, pp 169–171
Posel D, Devey R (2006) The demographics of fathers in south africa: an analysis of survey data, 1993–2002 Baba: men and fatherhood in South Africa, pp 38–52
Raghunathan TE, Xie D, Schenker N, Parsons VL, Davis WW, Dodd KW, Feuer EJ (2007) Combining information from two surveys to estimate county-level prevalence rates of cancer risk factors and screening. J Am Stat Assoc 102 (478):474–486
Reijers W, Coeckelbergh M (2018) The blockchain as a narrative technology: Investigating the social ontology and normative configurations of cryptocurrencies. Phil Technol 31(1):103–130
Roberts JA, Hann IH, Slaughter SA (2006) Understanding the motivations, participation, and performance of open source software developers: a longitudinal study of the apache projects. Manag Sci 52(7):984–999
Rosenthal JA (1996) Qualitative descriptors of strength of association and effect size. J Soc Serv Res 21(4):37–59
Rosenthal R (1994) Parametric measures of effect size. In: Cooper H, Hedges LV (eds) The Handbook of Research Synthesis. Russell Sage Foundation, New York, pp 231–244
Ross J, Irani L, Silberman MS, Zaldivar A, Tomlinson B (2010) Who are the crowdworkers?: Shifting demographics in mechanical turk. In: CHI ’10 Extended abstracts on human factors in computing systems, CHI EA ’10, pp 2863–2872
Sadana R, Mathers CD, Lopez AD, Murray CJ, Iburg K (2002) Comparative analyses of more than 50 household surveys on health status. In: Lopez AD (ed) Summary Measures of Population Health: Concepts, Ethics, Measurement and Applications. World Health Organization, Geneva, pp 369–386
Schenker N, Gentleman JF, Rose D, Hing E, Shimizu IM (2016) Combining estimates from complementary surveys: a case study using prevalence estimates from national health surveys of households and nursing homes. Public Health Reports
Shapiro SS, Wilk MB (1965) An analysis of variance test for normality (complete samples). Biometrika 52(3/4):591–611
Simmons GJ (1979) Symmetric and asymmetric encryption. ACM Comput Surv (CSUR) 11(4):305–330
Snow J, Mann M (2013) Qualtrics survey software: handbook for research professionals. Qualtrics Labs, Inc
Stallman R (2003) Free software foundation (fsf)
Stewart KJ, Gosain S (2006) The impact of ideology on effectiveness in open source software development teams. Mis Quarterly 30(2):291–314
Stoykov L, Zhang K, Jacobsen HA (2017) Vibes: fast blockchain simulations for large-scale peer-to-peer networks. In: Proceedings of the 18th ACM/IFIP/USENIX Middleware Conference: Posters and Demos. ACM, pp 19–20
Suiche M (2017) Porosity: a decompiler for blockchain-based smart contracts bytecode. DEF CON 25
Swan M (2015) Blockchain: Blueprint for a new economy. ”O’Reilly Media Inc.”
Technologies P (2017) A postmortem on the parity multi-sig library self-destruct. https://paritytech.io/a-postmortem-on-the-parity-multi-sig-library-self-destruct/
Underwood S (2016) Blockchain beyond bitcoin. Commun ACM 59(11):15–17
Von Krogh G, Haefliger S, Spaeth S, Wallin MW (2012) Carrots and rainbows: Motivation and social practice in open source software development. MIS quarterly 36 (2):649–676
Wan Z, Lo D, Xia X, Cai L (2017) Bug characteristics in blockchain systems: a large-scale empirical study. In: 2017 IEEE/ACM 14th international conference on Mining software repositories (MSR). IEEE, pp 413–424
West J, Gallagher S (2006) Challenges of open innovation: the paradox of firm investment in open-source software. R & D Manag 36(3):319–331
Wiki B (2018a) Hardfork. https://bitcoin.org/en/glossary/hard-fork. Accessed: 2018-01-04
Wiki B (2018b) Testnet. https://en.bitcoin.it/wiki/Testnet. Accessed: 2018-01-04
Yamane T (1973) Statistics: An introductory analysis
Ye Y, Kishida K (2003) Toward an understanding of the motivation open source software developers. In: Proceedings of the 25th international conference on software engineering. IEEE Computer Society, pp 419–429
Zheng Z, Xie S, Dai HN, Wang H (2016) Blockchain challenges and opportunities: A survey. Work Pap.–2016