Mapeamento Sistemático sobre Vieses Cognitivos no Desenvolvimento de Software
Resumo
Visando entender de quais formas os vieses cognitivos podem ocorrer no desenvolvimento de software, este mapeamento sistemático da literatura trata de investigar os impactos desses vieses cognitivos, apontando quais são os principais tipos, em quais situações eles ocorrem, os problemas que eles causam e seus possíveis métodos de mitigação. Foram identificados mais de 40 vieses cognitivos, alguns problemas e possíveis mitigações no desenvolvimento de software ao longo de suas fases.
Referências
Aranda, J. and Easterbrook, S. (2005). Anchoring and adjustment in software estimation. In Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering ESEC/FSE-13. ACM Press.
Bina, S. and Browne, G. J. (2018). Information avoidance in requirements determination for systems development. In 24th Americas Conference on Information Systems 2018: Digital Disruption, AMCIS 2018. Association for Information Systems.
Borowa, K., Zalewski, A., and Kijas, S. (2021). The influence of cognitive biases on architectural technical debt. In 2021 IEEE 18th International Conference on Software Architecture (ICSA). IEEE.
Brenner, R. (2019). Balancing resources and load: Eleven nontechnical phenomena that contribute to formation or persistence of technical debt. In 2019 IEEE/ACM International Conference on Technical Debt (TechDebt). IEEE.
Browne, G. J. and Parsons, J. (2012). More enduring questions in cognitive is research. Journal of the Association for Information Systems, 13(12):2.
Browne, G. J. and Ramesh, V. (2002). Improving information requirements determination: a cognitive perspective. Information & Management, 39(8):625–645.
Calikli, G. and Bener, A. (2013). An algorithmic approach to missing data problem in modeling human aspects in software development. In Proceedings of the 9th International Conference on Predictive Models in Software Engineering, pages 1–10.
Calikli, G. and Bener, A. (2015). Empirical analysis of factors affecting confirmation bias levels of software engineers. Software Quality Journal, 23(4):695–722.
Calikli, G., Bener, A., and Arslan, B. (2010). An analysis of the effects of company culture, education and experience on confirmation bias levels of software developers and testers. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering ICSE '10. ACM Press.
Chattopadhyay, S., Nelson, N., Au, A., Morales, N., Sanchez, C., Pandita, R., and Sarma, A. (2020). A tale from the trenches: Cognitive biases and software development. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. ACM.
Chotisarn, N. and Prompoon, N. (2013a). Forecasting software damage rate from cognitive bias in software requirements gathering and specification process. In 2013 IEEE Third International Conference on Information Science and Technology (ICIST), pages 951–956. IEEE.
Chotisarn, N. and Prompoon, N. (2013b). Predicting software damage rate from cognitive bias in software design process.
Cohen, J. (1960). A coefficient of agreement for nominal scales. Educational and Psychological Measurement, 20(1):37–46.
Davern, M., Shaft, T., and Te’eni, D. (2012). Cognition matters: Enduring questions in cognitive is research. Journal of the Association for Information Systems, 13(4):1.
de Graaf, K. A., Liang, P., Tang, A., and van Vliet, H. (2014). The impact of prior knowledge on searching in software documentation. In Proceedings of the 2014 ACM symposium on Document engineering DocEng '14. ACM Press.
Dennis, A., Robert, L., Curtis, A., Kowalczyk, S., and Hasty, B. (2012). Research note— trust is in the eye of the beholder: A vignette study of postevent behavioral controls’ effects on individual trust in virtual teams. Information Systems Research, 23:546–558.
Fagerholm, F., Felderer, M., Fucci, D., Unterkalmsteiner, M., Marculescu, B., Martini, M., Tengberg, L. G. W., Feldt, R., Lehtelä, B., Nagyváradi, B., and Khattak, J. (2022). Cognition in software engineering: A taxonomy and survey of a half-century of research. ACM Computing Surveys, 54(11s):1–36.
Fink, L. and Pinchovski, B. (2020). It is about time: Bias and its mitigation in time-saving decisions in software development projects. International Journal of Project Management, 38(2):99–111.
Gigerenzer, G. and Gaissmaier, W. (2011). Heuristic decision making. Annual review of psychology, 62(1):451–482.
Gren, L. and Svensson, R. B. (2021). Is it possible to disregard obsolete requirements? a family of experiments in software effort estimation. Requirements Engineering, 26(3):459–480.
Huang, Y., Leach, K., Sharafi, Z., McKay, N., Santander, T., and Weimer, W. (2020). Biases and differences in code review using medical imaging and eye-tracking: genders, humans, and machines. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM.
Kahneman, D. and Tversky, A. (1972). Subjective probability: A judgment of representativeness. Cognitive psychology, 3(3):430–454.
Kitchenham, B. and Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering. 2.
Lavazza, L., Liu, G., and Meli, R. (2020). Productivity of software enhancement projects: an empirical study. In IWSM-Mensura.
Mohan, K. and Jain, R. (2008). Using traceability to mitigate cognitive biases in software development. Communications of the ACM, 51(9):110–114.
Mohanani, R. (2016). Implications of requirements engineering on software design: A cognitive insight. In 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C), pages 835–838. IEEE.
Mohanani, R., Salman, I., Turhan, B., Rodríguez, P., and Ralph, P. (2018). Cognitive biases in software engineering: a systematic mapping study. IEEE Transactions on Software Engineering, 46(12):1318–1339.
Ralph, P. (2011). Toward a theory of debiasing software development. In Research in Systems Analysis and Design: Models and Methods, pages 92–105. Springer Berlin Heidelberg.
Ralph, P. (2013). Possible core theories for software engineering. In 2013 2nd SEMAT Workshop on a General Theory of Software Engineering (GTSE). IEEE.
Ralph, P., Chiasson, M., and Kelley, H. (2016). Social theory for software engineering research. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering. ACM.
Rüping, A. (2017). Decisions among teams. In Proceedings of the VikingPLoP 2017 Conference on Pattern Languages of Program VikingPLoP. ACM Press.
Salman, I., Rodriguez, P., Turhan, B., Tosun, A., and Gureller, A. (2020). What leads to a confirmatory or disconfirmatory behaviour of software testers? IEEE Transactions on Software Engineering.
Shepperd, M., Mair, C., and Jørgensen, M. (2018). An experimental evaluation of a debiasing intervention for professional software developers. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing. ACM.
Shmueli, O., Pliskin, N., and Fink, L. (2015). A position paper proposing behavioral solutions to challenges in software development projects. In Lecture Notes in Business Information Processing, pages 94–99. Springer International Publishing.
Shmueli, O., Pliskin, N., and Fink, L. (2016). Can the outside-view approach improve planning decisions in software development projects? Information Systems Journal, 26(4):395–418.
Siau, K., Wand, Y., and Benbasat, I. (1997). The relative importance of structural constraints and surface semantics in information modeling. Information Systems, 22(23):155–170.
Silverman, B. G. (1990). Critiquing human judgment using knowledge-acquisition systems. AI Magazine, 11(3):60–60.
Sommerville, I. and Rodden, T. (1996). Human, social and organisational influences on the software process. Software Process, 4:89–100.
Spadini, D., Çalikli, G., and Bacchelli, A. (2020). Primers or reminders the effects of existing review comments on code review. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. ACM.
Stacy, W. and MacMillan, J. (1995a). Cognitive bias in software engineering. Communications of the ACM, 38(6):57–63.
Stacy, W. and MacMillan, J. (1995b). Cognitive bias in software engineering. Communications of the ACM, 38(6):57–63.
Stefi, A. and Hess, T. (2015). To develop or to reuse? two perspectives on external reuse in software projects. In Lecture Notes in Business Information Processing, pages 192–206. Springer International Publishing.
Tang, A. (2011). Software designers, are you biased? In Proceeding of the 6th international workshop on SHAring and Reusing architectural Knowledge SHARK '11. ACM Press.
van der Linden, D., Williams, E., Hallett, J., and Rashid, A. (2022). The impact of surface features on choice of (in)secure answers by stackoverflow readers. IEEE Transactions on Software Engineering, 48(2):364–376.
Wyrich, M., Preikschat, A., Graziotin, D., and Wagner, S. (2021). The mind is a powerful place: How showing code comprehensibility metrics influences code understanding. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE). IEEE.