실수에 관한 관점 I
앱을 만드는 사람으로서 실수를 한다는 것은 앱이 에러를 내서 사용자에게 불편을 끼치는 일을 의미한다. 작게는 다음 단계 버튼을 눌렀는데, 눌러도 다음 단계로 가지 않는 주문서라든가, 아니면 사용자가 길게 글이나 요청서를 넣었는데 저장되지 않고 에러가 나서 다시 써야 하는 일이 될 수도 있다. 사용자의 입장에서는 보통 화가 나는 일이 아니다. 이 앱은 다시는 안 쓸 거라는 다짐을 하고 앱을 핸드폰에서 지워버릴 수도 있고, 앱 스토어나 다른 곳에 가서 우리 앱이 엉망이라고 리뷰를 남길 수 도 있다. 이러면 내가 한 작은 실수가 회사에 정말 큰 손해를 불러올 수도 있다. 가령, 회사에서 큰돈을 주고 인스타그램이나 구글에 앱 광고를 해서 사용자들이 물 밀듯이 밀려오는데, 가입신청 버튼을 누르면 계속 에러가 난다? 이러면 수천만 원의 광고료도 버리고 앱의 평판도 나빠진다. 그래서 앱을 만드는 사람들은 쓴 코드를 몇 번씩 테스트한다. 그리고 웬만큼 자신감이 있으면 본인이 쓴 코드를 앱에 적용시키는 것이다. 버튼을 하나 만들거나, 웹사이트의 색을 하나 바꿀 때도, 개발자가 코드를 쓰고, 개발자 동료들이 쓴 코드를 봐주고 수정도 하고, 다른 품질관리 사람들이 테스트도 하고, 여러 가지 절차를 거쳐서 나온다. 그래도 실수는 나오게 마련이다.
내가 쓴 코드가 에러가 나거나 그로 인해 회사에 막대한 손해를 불러와도 여기서는 실수 때문에 직장을 잃는 일은 별로 들어본 적이 없다. 보통 누가 실수를 하면, 어떻게 하면 다음에는 이런 실수를 하지 않을 수 있을까에 더 집중한다. 아무리 낮은 직급의 직원이라도 보통 실수를 한 사람이 주도가 되어 조사를 한다. 우리가 이런 작업을 Post-mortem, 즉 사후조사 라고 한다. 사건이나 문제가 생겼을 때 왜 이런 문제가 발생했는지, 어떤 문제가 발생했는지 또 무엇을 개선해야 다시는 이런 일이 생기지 않을지에 관한 리포트이다. 이것은 한 사람을 자책하는 것과는 많이 다르다. 앞에서도 말했듯, 새 프로그램이 정착하기 위해서는 한 사람의 노력이 필요한 게 아니다. 실수가 생겨도 마찬가지다. 코드를 쓴 사람은 한 부분에 불과하다. 코드를 봐준 사람들, 테스트 한 사람들, 또 얼마나 큰 문제였냐에 따라서 전체적으로 새 프로그램을 도입하는 과정이 도마에 오를 수 있다. 우선 문제를 일으킨 사람이 주도가 되어 리포트를 씀으로 그것으로 반성의 시간과 약간의 송구스러운 마음은 가질 수 있겠으나 이 리포트를 발간한 후에 이 사람은 이 분야의 나름대로의 전문가가 되는 것이다. 회사의 입장에서 이런 사람을 내 보낼 이유가 없다. 물론 문제가 어떤 사람의 나쁜 의도에서 시작되었거나, 몇 번이나 비슷한 문제를 일으켰으면 당연히 해고의 이유가 될 수 있다. 그러나 그런 경우가 아니라면 해고로 이어지는 일은 극히 드물다.
이렇게 실수를 탓하지 않고, 남의 탓을 하지 않는 문화가 있어서 그런지, 여기에서는 사람들이 별로 두려움 없이 일을 진행한다. '혹시 문제가 생겨도 한번 해보자.' 이런 식으로 프로젝트도 진행이 되고, 개발자들도 약간의 위험은 감소하고라도 한번 해보자라는 생각을 많이 한다. 물론 본인이 일하는 회사가 돈을 거래하는 앱을 만들거나 중요한 문서 등이 오고 가는 한 치의 실수도 용납할 수 없는 정확성을 요하는 곳이라면 당연히 이런 문화는 있을 수도 또 있어서도 안된다. 이런 경우가 아니라면, 여기서는 웬만한 위험을 감수하고 도전한다.
이런 문화가 바탕이 되니 발전과 혁신이 금방 이루어지는 것은 어쩌면 자연스러운 일이다. 많은 일들이 복잡한 결제 절차나 높은 사람들의 허가 없이 팀의 결정하에 이루어지는 경우가 많다. 위에서부터 차례로 결제를 받고 결정을 하는 회사들을 다니다가 실리콘밸리에 오면 이렇게 마구 결정되고 빨리 회전하는 프로젝트 사이클에 놀라고 적응 못하는 사람들도 많다. “그냥 한번 해보자!”라고 하는 것도 연습이 필요하고 적응이 필요하다. 그리고 이런 일이 가능한 것은 회사나 주위 동료들의 신뢰가 바탕이 되어서 그렇다. 본인이 결정을 내리고 잘못되면 내가 다 책임을 져야 한다라고 생각하면 어떤 결정도 쉽게 내릴 수가 없다. ‘우리가 낸 결정’ 또는 ‘다수가 찬성한 일'이라고 생각되면 아무래도 결정이 쉽고 책임 부담도 적어진다. 또 이렇게 낸 결정이다 보니까 우리도 더 그 결정의 결실이 좋게 되는 것을 바라고 열심히 일한다. 좋지 않은 결과가 나오면 팀이 모두가 다 책임을 지고 다음에는 어떻게 해야 더 좋은 결과가 나올까를 고민한다.
이런 문화가 다 좋은 것만은 아니다. 그러나 내가 처음 실리콘밸리에서 일하기 시작했을 때는 신선한 충격으로 다가온 것은 사실이다. 다음에는 이런 '실수해도 괜찮아!' 또는 '그냥 한번 해보자!'가 낳은 문제점에 대해서 이야기할 예정이다.
대문사진은 Photo by Santa Barbara on Unsplash