더북(TheBook)

옳은 일을 하라

소프트웨어 개발자는 기술적으로, 윤리적으로 어려운 문제에 자주 부딪힌다. 전문가가 되고 싶다면 이 두 가지 면을 모두 고려해서 옳은 선택을 해야 한다. 보통 기술 문제는 윤리 문제에 비해 더 객관적이므로 해결 방안이 여러 개 있을 때 최선의 안을 고르는 것도 쉬운 편이다. 하지만 윤리 문제는 때로 정답이 없다. 간혹 명확한 답을 내지 못할 때도 있다.

소프트웨어 개발자는 고객을 최우선으로 두고 자신이 옳다고 생각하는 방향으로 일을 진행하면서 어려움을 느끼는 경우가 많다. 때로 이러한 신념을 지키느라 불이익을 감수해야 하는 경우도 있다.

나는 소프트웨어 개발자 겸 작가로 활동하는 밥 마틴Bob Martin을 참 좋아하는데 그가 거절을 주제로 쓴 좋은 글(http://simpleprogrammer.com/ss-no)을 소개하고 싶다. 그는 개발자와 상사의 관계를 의사와 환자의 관계에 빗대어 이야기했다. 팔을 다친 환자가 너무 아프니까 팔을 잘라 달라고 의사에게 요구한다고 생각해보라. 당연히 의사는 “안 된다.”라고 할 것이다. 하지만 이와 비슷한 상황이 개발자와 상사 간에 일어난다면? 현실 속 개발자는 상사가 화낼 것을 두려워하며 코드를 절단해버린다.

전문가는 필요할 때 “아니요.”라고 말할 줄 알아야 한다. 상대가 고용주라 하더라도 말이다. 밥 마틴은 전문가라면 어떤 희생을 감수하고라도, 설사 해고되는 한이 있더라도 넘지 말아야 할 선이 있다고 이야기한다. 눈앞의 득실만 따져보면 잃는 게 많은 것처럼 보인다. 하지만 장기적으로는 꾸준히 옳은 쪽을 선택할 때 더 많은 것을 얻는다. 그리고 그래야 편안히 숙면을 취할 수 있다.

전문가는 일의 우선순위를 정할 줄도 알아야 한다. 비전문가는 일의 우선순위를 스스로 결정하지 못하고 끊임없이 다른 사람에게 의존하느라 쓸데없는 부분에 시간을 허비한다. 반면 전문가는 해야 할 일을 가늠하고 우선순위를 정한 뒤 업무에 착수한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.