Behavioral Software Engineering by Mario Fusco
- 행동 소프트웨어 공학은 행동 경제학의 인지 편향을 소프트웨어 개발에 적용하여, 인간의 비합리적인 의사결정이 프로젝트에 미치는 영향을 분석합니다. 🧠
- **패터니시티(Apophenia)**는 무의미한 데이터에서 의미 있는 패턴을 찾으려는 경향으로, 소프트웨어 개발에서 버그 위치에 대한 직감, 무작위 변경이 버그를 유발했다고 믿는 것, 불필요한 최적화(플라시보 효과) 등으로 나타납니다. 🔍
- 벤치마킹 시 무작위 개선을 일반적인 시스템 개선으로 오해하거나, 사용자 만족보다 벤치마크 수치만을 위한 최적화(벤치마케팅), 미세 벤치마킹으로 전체 시스템을 놓치는 오류가 발생합니다. 📊
- 코브라 효과는 잘못된 측정 지표를 설정할 경우, 사람들이 실제 목표 달성보다는 그 지표를 개선하는 데만 집중하여 역효과를 내는 현상입니다. 🐍
- 패터니시티 방지를 위해 항상 측정하고, 노이즈를 고려하며, 회의적인 태도를 유지하고, 상관관계가 인과관계가 아님을 인지하며, 동료 검토와 '모른다'고 말할 수 있는 문화를 장려해야 합니다. ✅
- 앵커링 효과는 처음 접한 정보(앵커)에 과도하게 의존하여 의사결정을 내리는 경향으로, 버그 심각도 평가나 벤치마킹 결과 판단 시 초기 값에 묶여 더 나은 가능성을 놓칠 수 있습니다. ⚓
- 앵커링 효과를 완화하려면 독립적인 의사결정을 장려하고, 다른 의견에 대한 노출을 지연시키며, 역할 순환, 단일 값 대신 범위 설정, 과거 데이터를 활용해야 합니다. ⚖️
- **매몰 비용 오류(Sunk Cost Fallacy)**는 이미 투자한 시간이나 자원 때문에 비합리적임을 알면서도 실패하는 전략을 포기하지 못하는 경향입니다. 💸