연사는 먼저 실수의 정의를 ‘의도하지 않은 행동 또는 결과’로 명확히 합니다. 그리고 실수가 소프트웨어 개발 분야뿐만 아니라 의료 분야(의료 과실로 인한 피해)나 영국 우체국 스캔들(결함 있는 소프트웨어로 인한 수많은 사람의 피해 및 투옥)과 같은 다양한 영역에서 심각한 결과를 초래할 수 있음을 사례를 들어 설명합니다. 중요한 것은 실수가 발생한 이후의 대응입니다. 연사는 심리학자 레온 페스팅거(Leon Festinger)의 ‘인지 부조화(Cognitive Dissonance)’ 이론을 통해 이를 설명합니다. 인지 부조화는 현실이 우리의 기대와 일치하지 않을 때 발생하는 정신적 불편함을 의미합니다. 페스팅거의 1950년대 종말론 추종자 연구에서 나타났듯이, 종말이 오지 않았을 때 일부는 자신의 잘못을 인정했지만, 대다수는 자신들이 세상을 구했다고 합리화하며 현실을 왜곡했습니다. 이러한 인지 부조화를 줄이는 방법은 두 가지입니다: 자신의 행동을 현실에 맞춰 수정하거나, 현실을 자신의 신념에 맞춰 왜곡하는 것입니다. 연사는 특히 경험이 많고 숙련된 전문가일수록 자신의 실수를 인정하는 데 따르는 정신적 불편함이 크기 때문에, 현실을 왜곡하거나 외부 요인을 탓하는 두 번째 선택지를 무의식적으로 택하는 경향이 있다고 지적합니다.
그렇다면 이러한 실수를 어떻게 건설적으로 다룰 수 있을까요? 연사는 세 가지 핵심 방안을 제시합니다. 첫째, 캐럴 드웩(Carol Dweck)이 제시한 ‘성장형 사고방식(Growth Mindset)’을 채택하는 것입니다. 이는 자신의 능력과 기술이 고정된 것이 아니라 노력과 학습을 통해 얼마든지 발전할 수 있다는 믿음입니다. 성장형 사고방식을 가진 사람들은 실수를 성장의 기회로 인식하고, 이를 통해 배우려 하지만, 고정형 사고방식을 가진 사람들은 실수를 자신의 능력에 대한 위협으로 간주하여 회피하려 합니다. 둘째, ‘과학자처럼 행동하라’는 원칙입니다. 개발자는 자신의 솔루션을 실제 환경에서 테스트하고, 이론이 통하지 않는 지점을 찾아 개선하며, A/B 테스트나 문제 분할을 통해 다양한 해결책을 비교하는 등 과학적인 접근 방식을 취해야 합니다. 셋째, ‘안전한 문화 구축’입니다. 팀 리더나 회사의 경영진은 직원들이 실수에 대해 자유롭게 이야기하고 공유할 수 있는 안전한 환경을 조성해야 합니다. 실수를 인정하는 것은 부끄러운 일이 아니라, 다른 사람들이 배울 수 있는 기회임을 명확히 해야 합니다. 또한, 실수로부터 얻은 교훈은 간단하고, 쉽게 구현 가능하며, 모든 팀원이 접근할 수 있도록 공유되어야 합니다. 노력에 대한 가치를 인정하고, 실험을 장려하는 문화는 실수를 통한 학습을 촉진합니다.
강연 말미에 연사는 스쿠터 프로젝트에서 발생했던 구체적인 실수들을 다시 한번 되짚으며 교훈을 강조합니다. 첫째, 익숙하지 않은 기술(Golang)을 사용하여 실험했는데, 이는 안정적인 솔루션 제공을 위해서는 피해야 할 행동이었습니다. 둘째, 코드 리뷰를 소홀히 하여 코드 품질 관리에 실패했습니다. 셋째, 기능이 전체 비즈니스와 다른 마이크로서비스에 미치는 영향을 충분히 이해하지 못했습니다. 이러한 반성을 통해 연사는 실수를 인정하고, 이를 학습의 기회로 삼으며, 성장형 사고방식을 받아들이고, 인지 부조화에 대한 인식을 통해 더 나은 선택을 할 것을 제안하며 강연을 마무리합니다. 그는 ‘Black Box Thinking’과 ‘Mistakes Were Made’와 같은 관련 서적을 추천하며, 실수를 통해 배우는 문화의 중요성을 다시 한번 강조합니다.