개발 과정에서의 인지 편향: 실제 환경에서 나타나는 방식

게시 됨: 2023-03-17
cognitive bias dev 1

오늘날 우리가 살고 있는 세상은 대량 데이터 수집 및 처리를 기반으로 합니다. 어느 시점에서 기업은 충분한 양의 데이터 세트와 올바른 처리를 통해 고객에 대한 믿을 수 없을 정도로 가치 있는 통찰력을 발견하고 잠재적으로 이를 활용할 수 있음을 발견했습니다. 일상 생활에서 현대 기술에 의존하는 사람들에게는 우리가 하는 거의 모든 일이 어떤 식으로든 추적되고 측정되는 것처럼 느껴집니다. 이제 우리는 모든 소스에서 들어오는 데이터의 압도적인 공급을 보유하고 있습니다. 결국 이 모든 정보는 단일 처리 지점인 우리의 두뇌에서 끝나야 합니다. 정보의 세계는 빠르게 성장하고 있으며 인간의 두뇌는 그에 맞춰 적응하고 성장하기 위해 할 수 있는 모든 일을 하고 있지만, 할 수 있는 일이 너무 많습니다.

인지 편향이란 무엇입니까?

인지 편향을 입력하십시오. SimplyPsychology(2021)의 Ruhl은 인지 편향을 "기억, 주의 및 기타 정신적 실수와 관련된 문제에서 발생하는 사고의 무의식적 오류"라고 설명합니다. 그녀는 이것이 "우리가 살고 있는 놀랍도록 복잡한 세상을 단순화하려는 두뇌의 노력의 결과"라고 설명합니다. 다시 말해, 우리에게 지속적으로 새로운 정보가 제공될 때 우리의 두뇌는 모든 것이 이해되도록 돕기 위해 가정을 함으로써 이를 효율적으로 처리하려고 시도합니다. 그 중 일부는 정확하지 않습니다.

인지 편향은 소프트웨어 엔지니어링에서 어떻게 나타납니까?

기술이 기하급수적으로 발전하는 소프트웨어 엔지니어링의 맥락에서 이를 고려하면 엔지니어는 자신이 구축한 시스템을 유지 관리하고 업데이트할 수 있도록 신속하게 학습해야 합니다. 생산적인 속도를 유지하려면 확실하게 아는 것은 시간이 걸리고 제한적이기 때문에 가정을 하는 것이 불가피합니다. 따라서 어떤 가정이 만들어지고 있는지 식별하고 신중하게 고려할 수 있는 것은 엔지니어의 업무의 일부가 됩니다. 이는 일반적으로 솔루션 설계 프로세스 중에 수행되며 실패한 결과에 대한 잠재적 비용 분석이 수반됩니다. 그러나 이러한 방식으로 만들어진 가정과 인지 편향으로 인한 가정의 차이점은 하나는 의식이 있고 다른 하나는 무의식이라는 것입니다. 따라서 후자를 방지하기 위해서는 그 존재를 인식해야 합니다.

엔지니어로서 자신의 인지 편향을 식별할 수 있는 능력은 비용이 많이 드는 실수를 방지하는 데 도움이 되므로 매우 강력할 수 있습니다. 그러나이 기술을 구축하는 방법을 아는 것은 공학보다 심리학에 더 묶여 있기 때문에 자연스럽게 오지 않을 수 있습니다. 고맙게도 이 분야에서 상당한 양의 연구가 이루어졌으며 대중에게 공개되었습니다. 조직은 이 정보를 사용하여 실수를 피할 수 있도록 엔지니어가 따라야 할 유용한 개발 사례를 설계하고 구현할 수 있습니다.

Chattopadhyay et al. (2020)는 오레곤 대학의 A Tale from the Trenches: Cognitive Biases and Software Development라는 연구를 1년에서 23년 사이의 경력을 가진 스타트업의 개발자들과 함께 수행했습니다. 여기에는 개발자가 자신의 생각을 큰 소리로 말하고 표현하면서 일상 업무를 수행하는 것을 관찰하는 것이 포함되었습니다. 본질적으로 동료 개발자 대신 조용한 연구원이 있는 경우를 제외하고는 쌍 프로그래밍 연습입니다. 연구원들은 10명의 다른 개발자를 관찰한 후 인지 편향 범주 목록과 그 결과로 발생한 실수의 예를 정리했습니다(아래 표 참조).

바이어스 범주 편향
선입견 확인, 선택적 지각 P1은 다른 데이터 구조가 데이터 쿼리 API에 더 적합할 때 지속적으로 해시맵을 추가했습니다.
소유권 IKEA 효과, 엔다우먼트 효과 P8은 Bootstrap 프로젝트에서 미리 만들어진 CSS 파일 대신 이전 CSS 파일을 재사용하기로 결정했습니다.
정착 고정 및 조정, 신념 보존, 제멜바이스 반사, 고정 P9는 환경을 다시 로드해야 할 때 함수 정의를 변경하는 데 집중했습니다.
기본값으로 리조트 기본, 현상 유지, 매몰 비용 P2는 새 코드 파일을 열고 사용하지 않은 템플릿 코드를 파일 맨 위에 보관했습니다.
낙천주의 원자가 효과, 천하무적, 소망적 사고, 지나친 낙관주의, 과신 P4는 새로 통합된 맵 코드를 자랑스러워했지만 인쇄된 후 오류가 발생했습니다.
편의 과장 할인, 시간 기반 편향, 인색한 정보 프로세스, 대표성 P2는 그의 현재 요구 사항을 해결하는 지나치게 장황한 코드를 만들었지만 향후 진행 속도를 늦추는 스파게티 코드가 되었습니다.
잠재 의식 행동 오해의 소지가 있는 정보, 유효성 효과 P6은 시스템 전체에서 오류를 일으키는 핵심 종속성 파일 대신 오류 메시지에 나열된 파일을 수정하는 데 중점을 두었습니다.
행복한 무지 정상 효과 P10은 습관적으로 모든 컴파일러 경고를 무시하고 빌드 실패의 원인을 자세히 설명하는 새로운 예외를 알아차리지 못했습니다.
피상적 선택 대비 효과, 프레이밍 효과, 후광 효과 P4는 문서에서 함수를 먼저 검토하지 않고 구문에 직접 복사하여 붙여넣었습니다.
메모리 편향 우선 순위 및 최근성, 가용성 P1은 코드 구조를 쉽게 기억할 수 있었기 때문에 최근 작업에서 잘 작동하는 디자인 패턴을 재사용했습니다.
2020년 5월 23~29일 Chattopadhyay et al.의 "A Tale in the Trenches: Cognitive Biases and Software Development"에서 재작성했습니다. https://dl.acm.org/doi/pdf/10.1145/3377811.3380330에서 검색

악순환을 방해하는 편향 이해

나는 개발자로서 내 자신의 경험에서 이러한 실수 중 일부를 확실히 인식했습니다. 누군가 나에게 왜 그런 실수를 저질렀는지 묻는다면 인지 편향이 무엇인지 알기도 전에 "이것이 올바른 방법이라고 생각했기 때문입니다."라고 말할 것입니다. 무의식적인 행동에 관해서는 그것이 어디에서 왔는지 또는 심지어 존재하는지 이해하기 어렵습니다. 현재로서는 순진하고 무해해 보이지만 시간이 지남에 따라 이러한 실수는 나쁜 습관이 형성되고 끊기 어려워짐에 따라 심각한 부정적인 영향을 초래할 수 있습니다. 확인하지 않은 상태로 두면 점점 더 많은 버그가 시스템에 도입되고 이러한 버그를 수정하는 데 리소스가 소모되며 잠재적으로 잘못된 방식으로 악순환이 발생합니다.

조용한 연구자처럼 외부 관점을 가지면 이러한 행동을 훨씬 더 쉽게 발견할 수 있습니다. 관찰자가 이러한 행동이 존재한다는 것을 알고 그것을 보았을 때 지적할 수 있는 권한이 주어진다면 훨씬 더 도움이 됩니다. 이러한 실수는 궁극적으로 비즈니스에 영향을 미치기 때문에 빠른 속도로 생산하는 이러한 효과를 이해하는 것은 조직의 몫입니다. 이러한 이해는 적절한 절차 및 교육 구현에 대한 투자를 정당화할 수 있습니다. 나는 소프트웨어 개발에서 인지 편향이 어떻게 나타나는지에 대해서만 집중했지만 다른 부서에서도 이러한 현상이 어떻게 발생할 수 있는지 상상할 수 있습니다. 본질적으로 자신의 업무에서 생산적이기를 원하는 사람은 누구나 인지 편향을 이해함으로써 이익을 얻을 수 있습니다.

이와 같은 팀 문화 내에서 경력을 쌓는 데 관심이 있으십니까? 새로운 기회에 대해 가장 먼저 알아보려면 아래의 채용 공고를 확인하십시오.


nhu 누 트란”>
누 트란

Nhu Tran은 Rewind의 소프트웨어 개발자입니다. Tran은 설계에서 개발, 구현, 테스트에 이르기까지 소프트웨어 개발의 전체 수명 주기에 익숙한 숙련된 프로그래머입니다. 그녀가 스크린 앞에 있지 않을 때 Tran은 겨울에 산을 파고들거나 여름에 아늑한 글램핑 시설을 짓는 것을 볼 수 있습니다.

이 주제에 대한 통찰력을 제공한 Rewind의 친구들에게 특별한 감사를 드립니다.
공유하다
트위터
공유하다
0