나는 틀렸었다

얼마 전 팟캐스트 ‘나는프로그래머다’의 페이스북 페이지에 블로그 게시물 하나가 소개되었습니다. 소개된 블로그 게시물의 제목은 ‘Anti-OOP : if 를 피하고 싶어서’이고 반복되는 분기문으로 작성된 코드에 공장(factory)를 사용한 리팩터링을 시도하는 것이 내용입니다. ‘나는프로그래머다’의 페이스북 게시물은 이 글이 작성되는 시점에 약 170개의 ‘좋아요’를 받았고 120회 이상 공유되었습니다. 공유된 게시물들에는 별도의 첨언이 없거나 짧고 긍정적인 동감 표시가 전부입니다.

저는 이것을 보고 놀랐습니다. 해당 블로그 게시물은 공장과 관련된 디자인 패턴들에 대한 몇 가지 잘못된 정보를 담고 있으며 ‘패턴 카탈로그 오류(디자인 패턴 중독자 참고)’를 저지릅니다. 그런데 그것들이 제가 놀란 이유는 아닙니다. 우선 놀라기 전에 ‘내용이 검토된 후 페이스북 페이지에 소개된 것일까?’하는 가벼운 의문이 들었습니다. 하지만 세부적인 내용의 맞고 틀림보다 게시물 전반을 관통하는 코드 개선의 노력에 초첨을 맞췄을 수도 있으니 심각하게 생각하지는 않았습니다. 제가 놀란 것은 많은 사람들의 관심을 받았음에도 불구하고 비판적인 시각에서 문제를 제기한 경우가 없었다는 것입니다.

단 하나의 이슈 제기가 있었는데 저와 함께 일하는 회사 동료인 정진욱님에 의한 것이었습니다. 공장 디자인 패턴들과 개방/폐쇄 원칙(open/closed principel) 해석에 대한 의견을 원 게시물에 댓글로 남기셨죠. 이슈 제기는 원글 작성자인 정명주님에 대한 비난의 의도를 담지 않습니다. 상대방과 의견을 나눔으로서 서로 좀 더 정확한 정보에 접근하자는 것이죠. 그리고 이것은 프로그래머에게 성장이라고 표현할 수 있습니다. 그러니까 의견 교환을 통해 함께 성장하자는 것이 의도라고 하겠습니다.

저는 페이스북에 정명주님의 블로그 게시물을 공유하면서 문제점이라고 생각하는 몇 가지를 지적하는 글을 작성했습니다. 정진욱님은 저의 글에 대해서도 저와 다른 의견 하나를 피력하셨습니다. 서로 의견을 주고 받다가 저는 공장 메서드 패턴(factory method pattern)에 대해 그동안 놓치고 있는 부분이 있었다는 것을 깨달았고 문서 몇 개를 더 읽고나서 생각을 정리할 수 있었습니다. 네, 저는 성장했습니다.

이번에는 공교롭게도 저와 정명주님이 정진욱님으로부터 지적을 받았는데 정진욱님이 원래 오지라퍼인 것은 아닙니다.

더 나은 결과물을 위해 고민하고 그 고민을 기록하고 공유하는 것은 아직 그 고민이 충분한 답에 접근하지 못한 상태라도 긍정적입니다. 공유된 기록을 통해 다른 사람들과 의견을 나누고 잘 못 알고있는 것들을 바로잡아 성장할 수 있는 좋은 기회입니다. 반대로 말해보면, 그렇게 하지 않으면 많은 성장의 기회를 놓치게 됩니다.

틀리는 것에 대해 두려워하지 마세요. 자신의 생각에 오류가 있음을 인지했음에도 불구하고 쉽게 인정하지 못하고 토론의 승리자가 되기 위해 발버둥치게 될까봐 두려워하세요. 그리고 권위를 믿지마세요. 존경하는 동료들과 대가들의 얘기들 조차 비판적인 시각을 유지하고 받아들이세요. 그들도 틀리고 다른 사람들의 의견을 들으며 바로잡습니다. 다른 생각을 가지고 있다면 주저하지 말고 얘기하세요. 공개된 곳일 수록 더욱 좋습니다. 회사 내에서라면 코드리뷰를 하세요.

경험상 이런 논의에서 지나친 예의차림은 주제에 대한 집중력을 떨어뜨리는 것 같습니다. 좋은 게 좋은 거라는 식으로 명확한 결론 없이 끝나버릴 위험이 있습니다. 논의 중에는 상대방에 대한 최소한의 존중 외에는 의견 전달에 집중하는 것이 좋다고 봅니다.

Advertisements

나는 틀렸었다”에 대한 1개의 생각

  1. 핑백: 2016.04.06 – Estel Castle

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중