3 분 소요

nudge

Introduction

회사에서 동료들과 설문조사에서 설문 문항에 따라 사람들의 설문에 대한 답변이 달라지는 현상에 대한 얘기를 한적이 있다. 동료는 이러한 현상을 넛지라고 하였고 넛지라는 책을 추천해 주었다. 나도 TV에서 들어봤던 책이기도 하고 이런 사회적 현상을 책으로 어떻게 풀어썼는지 궁금하기도 하였다. 그래서 올해의 두번째 교양서적으로 이 책을 선택하여 읽게 되었다.

인간과 이콘

이 책은 가장 먼저 인간과 이콘을 구분하는 것으로 시작한다. 이콘은 우리가 흔히 말하는 천재, 즉 완벽한 인간을 말한다. 이콘은 어떠한 유혹에도 가장 합리적이고 이상적인 결과를 만들어 낸다. 반면에 인간은 수많은 유혹에 흔들리며 언제나 합리적이고 이상적인 선택을 하지 못하는 사람들을 얘기한다.

만약에 세상에 이콘들만 존재한다면 사회적 넛지는 불필요할 것이고, 우리가 겪고 있는 많은 사회적 문제들은 발생하지 않았을 것이다. 하지만 우리는 인간이고 완벽하지 않기 때문에 적절하게 통제되고 올바른 선택을 할 수 있도록 유도 되어야 한다고 말하고 있다.

두가지 주장

우리는 인간이다. 그래서 자기통제 문제를 가지고 있으며 수많은 유혹에 빠지기 쉽다. 많은 정책들과 학자들은 우리가 인간임을 간과하고 이상적인 정책을 펼치고 논문을 작성한다. 그러다 보니 수많은 오류가 발생하고 예상치 못한 곳에서 새로운 문제점이 발생하게 되는 것이다.

이 책에서는 우리가 인간이기 때문에 필요한 두가지를 아래와 같이 주장한다.

사소해 보이는 사회적 상황들이 사람들의 행동에 막대한 영향을 미칠 수 있다.

넛지는 보이지 않는 듯해도 어디에서나 존재한다. 적절성의 여부를 떠나서 선택 설계는 도처에 만연해 있으며 불가피하기 때문에 우리의 결정에 아주 큰 영향을 끼친다.

자유주의적 개입주의가 결코 모순이 되지 않는다.

선택 설계자들은 자유를 보호하는 동시에 사람들의 삶을 개선시키는 방향으로 넛지를 가할 수 있다.

소프트웨어 개발에서의 넛지

나는 이 책에서 제공하는 저축과 대출, 사회보장제도 등의 예시 뿐만 아니라 소프트웨어 개발에서도 넛지자유주의적 개입주의가 많은 도움을 줄 수 있을 것이라 생각한다.

아래 예시는 내가 생각하는 개발에서의 넛지 중 일부분을 적은 것이다.

요구사항

소프트웨어 개발을 하면서 심심치 않게 겪는 일이 이해관계자가 요구사항을 말할 때 정확히 무엇을 하고 싶은지 설명하지 못하는 경우가 많다는 것이다.
이는 요구사항이 복잡한 경우에 더 많이 발생하는데 이때 개발자는 자신이 가진 개발경험을 토대로 이해관계자들에게 넛지를 가할 수 있다.

이해관계자는 이콘이 아니기 때문에 자신이 요구하는 항목들이 정말로 필요하고 변경되지 않을 것임을 확신하지 못할 수 있다. 또 그 요구사항을 명확하게 전달하지 못하기도 한다. 애자일 방법론이라는게 그래서 나온 것이지 않을까 라는 생각이 든다.

개발자는 이해관계자의 모호한 부분을 발견하고 조언을 주거나 개발자가 생각하는 좋은 방향으로 요구사항을 조정할 수 있게끔 일종의 넛지를 가할 수 있다. 이를 통해 모든 요구사항이 명확해지고 개발 후 수정요청이 없어진다고 할 순 없지만 이러한 간섭(?)이 좀더 바람직한 방향을 제시해 줄 수 있을 것이다.

프레임워크

최근 새롭게 나오거나 기존의 프레임워크들은 경량화 되고 자유도를 많이 증가시키는 추세로 가고 있다. 좋은 현상이라 생각한다. 작고 경량화 될 수록 생산성이 좋아지고 더욱더 발전할 수 있다고 믿기 때문이다. 하지만 프레임워크에 대해 잘 알고 경험이 많은 개발자들에게는 좋은 현상이지만 처음 프레임워크를 접하는 개발자들은 이콘이 아니기 때문에 이러한 자유로움은 어떻게 개발을 할지 막막함을 느낄 수 있는 벽이 될 수 있다. 그래서 나는 프레임워크가 자율성을 추구하지만 새롭게 이 프레임워크를 접하는 개발자들을 위한 일종의 넛지가 필요하다고 생각한다.

현재 나는 Spring 프레임워크를 사용해서 개발을 하고 있기 때문에 Spring 프레임워크를 얘를 들어 보겠다.
최근 Spring에서는 Bean의 주입을 개발자에게 모두 일임하는 방식을 제공하고 있다. 이는 사용자 입장에서 필요한 Bean들만 주입하면 되므로 아주 가벼운 어플리케이션을 만들 수 있다. 하지만 처음 Spring을 접하는 사람들은 도데체 어떤 Bean을 주입을 해야 될지 감을 잡기 어려울 것이다. 오히려 어플리케이션 개발에 필요할 것 같은 디폴트 Bean들을 제공한 후 필요한 Bean들을 사용자가 추가할 수 있는 방식이 더 좋을 것이다.
반면 Spring을 오랜기간 사용해온 개발자들은 이러한 Spring의 움직임이 반가울 것이다. 이전에 기본으로 제공하던 Bean들로 인해 빌드시간이 오래 소요되거나 원하는 기능으로 대체하기 위해서 기존의 Bean들을 교체하는데 많은 비용을 투자해야 하기 때문이다.

이 책에서 말하는 자유주의적 개입주의는 신입 또는 주니어 개발자가 프레임워크의 사용에 어려움을 덜 수 있도록 디폴트 설정을 제공함으로써 넛지를 가하고, 시니어 개발자의 경우에는 원하는 방향으로 프레임워크를 다룰 수 있도록 자유로움을 제공하는 것이다. 즉, 무조건 경량화하고 자유도를 높인 후 개발자가 알아서 공부해서 사용하게끔 강조한 프레임워크가 좋은 프레임워크가 아니라 개발자가 상황에 맞게 적절한 선택을 할 수 있도록 도움을 줄 수 있는 프레임워크가 좋은 프레임워크라 생각한다.

Wrap up

이 책은 넛지가 사회, 경제적인 부분에서 어떻게 영향을 미치는 지에 대해 예를 들어 설명해 주고 있다. 나는 여기서 말하는 넛지가 내가 지금 몸담고 있는 소프트웨어 개발에서도 어떻게 작용하고 있는지 또는 작용하면 좋을 지에 대해 생각할 수 있어서 좋았다. 내가 사용하고 있는 프로그램이나 언어들이 선택 설계자에 의해 어떻게 사용되기를 유도되고 있는지 생각해 보는 것도 재미있을 것 같다.