영화 ‘라이언 일병 구하기’ 에 업햄 상병으로 나오는 병사가 있다. (아는 사람은 아는 빡침의 3대 대장) 원래 전투병은 아니었지만, 짬밥으로 상병 계급을 가진 사람인데 원리원칙 고수자에 아군이 칼빵에 맞아 죽게 생겼는데 울고만 있다. 게다가 자기 일을 잘하는 것도 아니다. 맨날 허공에 총질만 해댈뿐인 인본주의자였으니까. (총알 아까워!!!)
어느 조직을 가나 비슷한 부류의 사람이 있다.
경력이 있다고 해도 이런 양반이랑 기획회의나 개발회의를 하다보면 알 수 있다. 굉장히 원론적인 주장만 하고, 타협이 없으며, 기계적인 중립을 추구한다. 게다가, 결국 본인이 주장하는 내용대로 진행되지 않으면 책임소재를 분명히 제시한다. ‘내 말 대로 안해서 사고 터지면 당신이 책임져.’ (해석: 내 책임 아니다. 난 반대했어.)
…이런식으로 회의할거면 뭣하러 ‘회의’씩이나 하나? 그냥 책임자로 볼 수 있는 사장시키는대로만 하지. 아직 몇몇은 타협이 없고 기계적인 중립은 그렇다 쳐도, 원론적인 주장은 괜찮은것 아닌가? 라고 반문 할 수 있겠다.
예를 들어보자.
(고객 정보의 보안에 대한 아이디어를 제시하는 회의 중이다.)
팀장 : 고객의 정보의 보안을 위해서는 필요한 정보만을 최소 유지하는것이 기본이다. 통신방법이나 데이터베이스 암호화 이전에 불필요한 정보를 분석하고 제외하는 작업을 먼저 진행해야한다.
팀원 : 현재 보관하고 있는 고객의 정보는 이름, 이메일, 전화번호, 카카오톡계정 이다. 우리측 서비스는 이메일과 메신저를 통해 정보가 제공되고 전화번호는 가입시 개인확인만을 위해서만 존재하므로 셋 중 전화번호는 제외해도 서비스에 큰 문제는 없을것 같다.
업햄 : 우리회사의 CSO(정보보안책임자)는 따로 있는데 그 분이 없이 이런 회의는 의미가 없다.
팀장 : 우리 회사는 CSO와 CEO(대표)가 겸임하고 있으므로 개발파트에서 논의 후 내용을 전달하는것이 합리적이다.
업햄 : 그것은 월권행위이다. 모든 결정은 과정에서 나오는 것이므로 CSO를 맡고있는 CEO와 함께 회의를 해야한다.
팀장 : 알았다. 하지만 CSO가 참석하기 전에 우리끼리 회의를 통해 정보를 정리할 필요가 있다.
업햄 : 하지만 대표님은 개발쪽 파트도 아니고 정식적으로 보안관련 지식이 많은것도 아니다. CSO부터 제대로 구성해야 한다.
팀장 : (????) 무슨 말인지 모르겠다. 일단 CEO가 CSO를 겸임하고 있다는거 부터가 문제라는 것인가?
업햄 : 우리회사에 CSO를 담당할 사람이 없다는 것을 말하는 것이다.
팀장 : ……그럼 CSO을 담당하는 사람이 없는 이시점에서 어떤식으로 보안에 대해 논의해야 하나.
업햄 : 그 건 내가 할 일이 아니다. 난 내 의견을 낸것 뿐이다. 그게 회의이지 않는가.
팀장 : 업햄상병 그럼 당신이 맡은 업무는 무엇인가?
업햄 : 고객 데이터베이스 설계 및 운용이다.
팀장 : 그럼 이제 니가 CSO 할래?
업햄 : 논점을 흐리지마라. 난 고객 데이터베이스 설계 운용 담당이지 CSO가 아니다. 우리에겐 보안에 대해 능통한 CSO라는 자리가 반드시 필요하다. 내 말에 틀린게 있으면 지적해 달라.
(실제로 2008년 직원수 20명 이내의 IT 회사에서 실제로 있었던 이야기를 각색한 내용이다.)
위의 대화에서 알수 있듯 빡침의 3대 요소를 모두 갖추고 있다.
1. 원론적인 주장
2. 타협이 없음
3. 기계적인 중립
4. 책임소재 요구
원론적으로 보면 맞는 얘기이긴 하다.
IT 서비스내의 고객정보보안은 매우 중요하고 민감한 이슈이며 이를 담당할 보안책임자 역시 법적으로도 정해놓아야 한다. 하지만 현실적으로 작은 기업에선 보안계통의 전문가가 없기 마련이고 그 책임자만 명시해 놓는 경우가 많다. (정부에서 제공하는 간단한 교육 수료과정도 사실은 큰 의미없다.)
그래서 책임자는 세워놓고 그 뒤에서 엔지니어들이 보안 관련 법령 혹은 기술력 맞게 최선의 대책을 마련하고 실행하는게 현실이다.
현실상황을 무시하면서 보안에 능통한 보안책임자를 요구하고, 그 외의 내용은 타협 시도 조차하지 않으며, 그 것은 내 책임이 아니라는것을 노골적으로 어필한다. 사실 저 회의에서 정말 원론적인 대안을 제시하는 쪽은 팀장이다.
업햄상병은 회의 이전에도 이미 불통인 사람으로 낙인 찍혀 있을 가능성이 매우 높다. 작은 기업에서는 (큰 기업도 부서단위로 일하다 보면 어쩔수없는 경우가 있다.) 모든 제반사항을 다 갖추고 일을 시작하는 경우는 단언컨데 일 시작 전에는 없다고 봐도 된다. 다 갖추고, 또 준비되었다 하더라도 일을 하다보면 새로운 빈틈이 생기는 게 다반사다.
그런 작은 빈틈을 보완(혹은 방지)하기 위해서 자신의 생각을 정리하고 대안을 제시할 회의를 한다. 회의는 모두의 생각을 귀로 듣고, 뇌로 분석해서, 목에서 걸러내어 표출하는 것이 상식이고 기본이다. 물론 그 내 생각이 다른 의견들 보다 최우선이고 제일 근본이 되는 말이라고 판단될 수 있다. 그렇다면 팀원을 설득시킬 수 있어야 한다.
위의 대화에서 업햄은 ‘ CSO가 필요하다. ‘ 라는 본인의 생각에 대해 ‘CSO가 없는 상황에서 회의를 하는것은 무의미하다’라는 의제가 아니라 ‘CSO가 없는 이 상황에서 문제점이 무엇인지’부터 의견을 개진했으면 훨씬 매끄러운 회의가 되었을거다.
자. 여기까지 얘기했으면 업햄이 영화뿐만 아니라 현실에서도 주위를 피곤하게 하는 일등공신에다가 이 글의 주제인 나쁜 프로그래머의 유형이라고 생각하게 됬으리라 믿는다.
하지만 이 글에서 말하는 나쁜 프로그래머는 저 업햄상병이 아니다. (두둥!!)
제목에서부터 스포일링을 했지만 주제는 ‘업햄상병 구하기’ 이다. 결론부터 말하자면, 저 업햄상병은 회사 조직뿐 아니라 개발조직에서도 매우 중요한 인력이다. (예상반응:뭐?!)
물론 주위사람들을 피곤하게 하는데 출중하지만, 그의 말은 근본적인 문제나 닥쳐 올 위기에 대해 지속적으로 경고한다. 결국 시간이 흐르고 나면 그의 말이 필요한 때가 반드시 온다. 저런 업햄상병을 분위기 파악 못하는놈, 뭣이 중헌지 모르는 놈으로 치부해버리는 개발자들이 가장 나쁜 개발자 라는것. 이것을 사실 이 글의 핵심이다.
위의 대화로 다시 돌아가 보자.
그는 이미 이 회의의 내용을 알고, 당장 닥친 문제보다는 근본적으로 해야하는 일을 경고하고 있다. CSO라는 자리는 물론 임원이 하면 좋지만, 보안을 담당하고 그에 맞는 지식이 충분한 사람을 구하는게 눈 앞의 문제해결만큼 중요하다는 걸 알고 있다.
(개발)조직내에서의 업햄상병 같은 인력은 스마트폰 의 알람역할을 수행한다. ‘저장공간을 거의 다 소비 해가고 있다. 혹은 데이터사용량이 매우 많아지고 있다.’ 라고 경고하지만, 사용자는 ‘이미 알고 있으니까 그만해!’라고 하곤 그냥 까먹고 사태가 벌어지고 나면 그제서야 깨닫는다.
“아… 맞다 데이터 경고 나왔는데 깜빡했네.”
조직 내에 업햄상병같은 인력을 두고 있다는것은 매우 좋은 일이며 중요한 사안이다. 이런 애들이 많다면 좀 곤란하겠지만 아예 없다면 문제가 닥쳐야지만 대처하는 식이 될 것이고, 결국엔 조직의 흐름이 이끌어 질수 밖에 없을 것이다.
원론적이고 기계적인 중립을 지키는 사람이 항상 옳지는 않다. 하지만 그들의 가치는 경고를 할 수있는 환경과 분위기가 된다면, 언제나 뭣이 중헌지 그때 그때 경고로서 계속 알림을 지속적으로 주게 될것이다.
프로그래머들은 단기프로젝트이든 장기이든 상상해서 설계하고 일을 시작하게 된다. 그 상상은 언제나 오류를 동반하고 있기에 오류를 추적하다 보면 나무가 아닌 가지에만 집중하게 되는 경우가 있다. 그런 상황에 있어 가지의 문제는 근본적으로 뿌리에서 오는 문제라는 것을 일깨워 주게 업햄상병과 같은 사람이다.
비록 사람 미치게 만들고 중요하지 않아보이는 것들을 주장하는 업햄의 말이지만, 그들의 의견을 기억하고 플랜을 제시하자. 경고를 배제한다고 해서 경고가 없어지는 것은 아니니깐.
처음에 말한 영화에서 업햄이 주장한 “포로를 이런식으로 살인하는것은 옳지않다.”라는 말은 당시 그 상황과 결과적으로 따져봤을 때엔 동료를 위험에 빠트리고 사람 환장하게 만들지만, 결국 그러한 포로에 대한 처우의 의견이 모여 인권보호 라는 거대한 숲을 만들게 되는것이다. 그리고 업햄이 삽질하는 것도 다 따져보면 업햄의 잘못이 아니다. (원래 걔는 전투병이 아니라고!!)
경고를 무시하지 말자.
그리고 그 경고에 대한 알림을 배제하지 말자.
정말 중요한것을 내가 모르고 있을수도 있다는 점을 항상 기억하자.