brunch

You can make anything
by writing

C.S.Lewis

by 이경종 Nov 08. 2019

진인사대천명

개발결과를 기다리는 바람직한 자세

내일에 대해서는 아무것도 모른다. 우리가 할일은 오늘이 좋은 날이며 오늘이 행복한 날이 되게 하는 것이다
- 시드니 스미스 


실수로 가득 찬 삶이 아무것도 시도하지 않는 삶보다 더 명예롭고 가치 있다 - 조지 버나드쇼



사람의 일을 다 하고 천명을 기다린다는 의미를 가진 진인사대천명(盡人事待天命)이라는 구절은 중국 남송의 유학자 호인이 자신의 저서 '독사관견'에서 처음 사용했다. 호인은 '삼국지연의'에 등장하는 제갈량의 말, '사람의 일을 닦고 천명을 기다린다'는 의미를 가진 수인사대천명(修人事待天命)이란 말로부터 이 말을 가져왔다. 적벽대전을 승리로 이끈 제갈량은 관우에게 패퇴하는 조조를 화용도에서 기다리고 있다가 죽이라는 명령을 내린다. 관우는 조조에서 빚이 있었기 때문에 제갈량은 이 임무를 맡기려 하지 않았지만, 관우는 본인의 목을 걸고 임무를 자청한다. 제갈량은 관우가 조조를 만나더라도 죽이지 못하고 살려서 보내줄 것임을 알고 있었음에도 관우에게 일을 맡기게 되고, 관우는 결국 목숨을 구걸하는 조조를 그냥 살려서 보내게 된다. 관우가 어떻게 할지 미리 알았음에도 그에게 임무를 맡긴 이유에 대해 제갈량은 다음과 같이 말한다.


"일을 꾸미는 것은 사람이지만, 그것을 이루어주는 것은 하늘이다."


범인에게 있어 진인사(盡人事)부터 쉽지가 않다. 최선을 다해야 하는 것을 알고 있지만, 이론과 실천간의 간극은 너무나도 크다. 최선을 다하는 것보다 더 어려운 것은 바로 대천명(待天命)이다. 최선을 다했음에도 바라지 않는 결과가 나오는 경우 이를 받아들이기는 쉽지 않다. 일의 중함이 크면 클수록 최선을 다했다고 해서, 아무 걱정없이 결과를 기다리는 자세를 견지하기란 더욱 쉽지 않다. 


 회사에서 중요한 프로젝트를 맡아서 진행했고, 프로젝트의 성패를 결정짓는 중요한 공인 인증 테스트(Official Certification Test)에 소프트웨어 및 자료를 제출했다. 몇 주 동안 일에만 몰두했고, 내가 할 수 있는 최선을 다했다고 생각했다. 하지만 세상에 완벽한 소프트웨어란 없는 법, 시간이 지나면 크고 작은 결함이 드러나기 마련이다. 테스트 제출을 끝내고 며칠이 지난후 여유를 찾고 나니 몇 가지 문제점들이 눈에 띄었고, 현재 진행중인 인증 테스트에 문제가 없을지 걱정이 되기 시작한다. 이미 제출한 인증 테스트를 연기하거나 다시 시작할 수 없는 상황이다. 만약 소프트웨어 결함 때문에 인증을 통과하지 못 하는게 확실하다면 인증 테스트를 중지하는게 최선이지만, 이건 상황이 좀 애매하다. 문제가 있긴 한데, 인증 테스트 결과에 영향을 줄지 여부에 확신이 서지 않는다. 여러 분석과 검토를 통해 최종 결과를 기다리는 것이 최선이라고 결론을 내고 결과가 나올 때까지 잊어버리자고 마음먹었다. 허나 자꾸 부정적인 방향으로 생각이 쏠리는 것을 멈추기가 쉽지 않다. 이리 저리 생각에 생각이 꼬리를 물다보니, 내가 과연 일에 최선을 다한 것이 맞는지조차 약간의 의문마저 생기기 시작한다.


이런 상황은 흔히 일어날 수 있다. 사람의 과거는 시간이 갈수록 교묘하게 편집되는 것이기에 의심을 품으면 그 방향대로 각색이 되기 마련이다. 현재의 기준으로 과거를 보면 과거에는 찾을수 없었던 오류가 나올수 있다. 중요한 것은 순간순간 최선을 다하는 것인데, 현재에서 바라본 과거는 최선이 아닌 경우가 비일비재하다. 최선이라는 말 대신 진심이라는 말을 쓰는 건 어떨까? 그 순간의 최선은 먼 훗날 최선이 아니였음으로 귀결될 수 있지만, 그  순간의 진심은 시간이 지나도 언제까지나 변하지 않는다. 현재의 기준으로 과거를 바라보며 지금 상황이 최선이 아닌 것에 과거를 탓하지 말고, 진심을 다했는지 아니였는지만 생각해야 한다. 


자신이 관여하지 않은 일, 자신의 힘으로 전혀 개선 여지가 없는 이슈는 두말할 나위가 없다. 올해 상반기 내가 맡은 프로젝트의 소프트웨어 팀원들은 정말 죽을 각오로 최선을 다했다. 창사 이래 최대의 프로젝트를 수주했고, 그 프로젝트의 결과에 회사의 운명이 달려있었기에 프로젝트 시작부터 팀원들의 의지는 비장했다. 프로젝트가 성공적으로 완수되면 큰 포상을 약속한 경영진의 언사도 충분한 동기부여가 됐다. 결국 개발은 성공적으로 끝났다. 하지만 자축도 잠시, 생산에서 커다란 문제가 터졌다. 제품 출하를 하지 못한채 회사는 몇 주동안 품질문제를 해결해야만했다. 하드웨어 원자재 불량문제였고 소프트웨어로 100% 검출이 되지 않는 문제였기에 소프트웨어 팀에서 할 수 있는 것들에는 한계가 있었다. 개발은 일정내 완료했지만, 결국 제품을 약속된 일정에 고객사에 납품하지 못함으로써 프로젝트의 성공은 반쪽짜리가 되어버렸다. 결과적으로 원자재를 전량 교체함으로써 이슈는 일단락되었다. 하지만 이미 포상은 물 건너 갔고, 누구도 프로젝트를 성공이라고 말할수 없는 처지가 되어 버렸다. 이런 상황은 비일비재하다. 본인은 열심히 해서 성과를 내도, 조직의 다른 문제로 묻혀버리기 일쑤인 것이 개발의 일상사다. 쓰라린 가슴에 누구를 원망해봤자 득될 것은 하나 없다. 노력해서 얻은 성과에 대한 보상은 언젠가는 돌아온다고 믿고 마음을 비우는 것이 최선이다. 진심을 다했으면 현재의 결과에 일희일비하지 말자.


공자는 군자에 대해 말한다.

"군자는 걱정하지 않고 두려워하지 않는다."

제자 자우가 다시 물었다.

"근심하지 않고 두려워하지 않는다면 그것만으로 군자라고 할 수 있습니까?"

그러자 공자는 다음과 같이 대답했다.

"마음속 깊이 살펴보아 부끄러울 것이 없다면 무엇을 근심하고 무엇을 두려워하겠느냐?"


진인사(盡人事)는 사람과 일에 진심을 다하라는 것이지 최선의 결과를 내라는 것이 아니다. 최선의 결과는 대천명(待天命)에서 겸허하게 기다려야 한다. 조금 모자란 부분에 후회가 있을수도 있고, 미래의 결과에 걱정이 있을  수도 있다. 허나 공자의 말대로 내 마음속 부끄러움이 없다면 근심할 것도 두려워할것도 없다. 진심을 다한 일이 내 손을 떠난 후에는 그 결과를 담담히 기다리는 법을 배워야 한다.



작가의 이전글 좋은 코드, 나쁜 코드, 이상한 코드
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari