직업을 대하는 태도
개발자는 내가 가져왔던 여러 직업들 중 하나다. 그리고 평생 업으로 삼을 듯하다. 그렇기에 직업을 대하는 나의 태도 또한 달라져야만 했다. 이전에 다른 일들을 하며 수동적인 태도를 가지는 문제가 있었다. 삶에 대한 나의 태도 또한 비슷하게 변해갔다. 이 태도는 나의 자존감을 서서히 갉아 먹었고, 삶의 의미를 잃게 만들었다.
나의 문제가 일반적인 성향이라고 볼 수도 있다. 하지만 타인에게도 비슷한 문제가 있다고 나 또한 그래도 괜찮다는 것은 내 가치관과 맞지 않다. 문제를 해결하기 위해(정확히는 현실 도피) 퇴사를 했다. 휴식기를 보내던 중 개발자라는 직업을 알게 됐다. 그동안에 고민했던 내 가치관과 적합하기에 선택했다. 또 개발자라는 직업을 통해 역으로 얻고 싶은 삶의 태도가 있었다. 바로 환경을 바꿔 반강제적으로 나를 능동적인 사람으로 만드는 것이다. 직업적으로 얻고 싶은 확고한 가치와 태도가 있기 때문에 '소프트웨어 장인'은 꼭 한번은 읽고 넘어가야겠다는 생각이 컸다. 다른 개발자들(나보다 역량이 좋고 고 우수한)은 어떠한 태도로 이 직업을 대하는 것인 지 확인해보고 싶었다.
소프트웨어 장인
이 책을 통틀어 저자가 말하고자 하는 바는 프로그래머의 프로페셔널한 태도이다. 먼저 프로페셔널(professional)이란 단어의 사전적 의미를 알아보자.
사전에 나온 의미를 보면 프로페셔널이란 전문직 종사자를 뜻한다. 흔히 전문직이라고 하면 의사, 대학교수, 변호사 등 고도의 지식 습득이 필요한 직업을 일컫는다. 이러한 의미에서 봤을 때 프로그래머는 프로페셔널과 거리가 있어 보인다. 그리고 이 관점에 힘을 보태는 것은 누구나 프로그래밍을 할 수 있게 만든 도구들 덕분에 양산된 코더들이다.
현대에 와서 코더란 흔히 단순하게 주어진 요구사항의 기능만 구현하는 프로그래머를 비하하는 용어를 말한다. 이들은 문제에 대해 적극적인 태도 보단 소극적인 태도를, 의견을 피력하기 보단 타인의 의견에 동조만 하기를, 주어진 요구사항을 고민해 예외 케이스를 찾기 보단 기획자를 탓하며 가시적으로 보이는 부분만 코딩을 한다. 흔히들 3차 산업혁명에서의 공장 노동자와 비교하곤 한다.
저자는 이러한 코더들의 태도를 지양하고 프로페셔널한 태도를 지향하자고 외친다. 저자가 말하는 프로페셔널한, 즉, 소프트웨어 장인이 추구하는 가치는 다음과 같다.
- 동작하는 소프트웨어뿐만 아니라, 정교하고 솜씨 있게 만들어진 작품을,
- 변화에 대응하는 것뿐만 아니라, 계속해서 가치를 더하는 것을,
- 개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을,
- 고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를
또한 저자는 앞서 말한 가치와 더불어 장인이 가져야 할 태도를 말한다.
- 커리어의 주인은 나 자신 - 고객과의 관계가 어떻든 생산적인 동반자가 될 것
- 끊임없는 자기계발과 훈련 - 다독, 다작, 펫 프로젝트, 카타, 오픈소스, 페어 프로그래밍
- 사회활동 - 장인은 장인을 서로를 피드백하며 발전한다.
- 의도한 발견 - 무지는 창피가 아니라 기쁨이다.
- 일과 삶의 균형 - 프로페셔널로서의 삶이 건강해야 가족의 삶도 건강해진다.
책의 구조는 크게 1부와 2부로 나뉜다. 1부에선 앞서 말한 가치관 및 태도와 같은 이념과 사상에 대해 이야기 한다. 2부에선 1부에서 얘기한 이념을 자신의 경험을 토대로 풀어간다. 다소 추상적이던 얘기들을 실제 경험에 빗대어 풀어가기 때문에 많은 개발자들이 공감했을 것이다. 저자가 이야기한 경험들 중 가장 인상 깊었던 한 가지만 추려보자.
저자는 한 때 대형 이동 통신사에서 근무한 적이 있었다. 해당 회사는 3개국에 동시 서비스를 하기 위한 개발을 진행 중이었다. 촉박한 일정과 더불어 요구사항이 매주 추가됐다. 평일, 주말할 것 없이 야근을 하며 몇 달을 보내고 서비스 출시일이 됐다. 서비스는 구동된 지 30분이 채 안돼서 다운됐다. 서버의 복구와 다운이 5일 동안 계속해서 반복되고 고객들로부터 항의가 빗발쳤다.
저자는 이 경험을 '재앙의 기억'이라고 표현한다. PM에게 일정의 빠듯함을 표현하긴 했지만 명확하게 '아니오'라고 말하진 못했다. 문제 발생 이후 대책회의에서 PM의 의견과는 다르게 여러 대안들이 존재했었다고 한다. 그렇기에 저자가 '재앙의 기억'이라고 표현하는 듯하다. 개발팀 중 누군가 강하게 '아니오'를 외쳤으면 문제가 이렇게 커지지 않았을 것이라는게 저자의 생각이다. 더불어 저자는 이와 같은 온건한 태도가 장인정신에 엇나간다고 말한다.
저자가 겪은 경험은 사실 개발자라는 직업뿐만 아니라 다양한 직업에서 겪을 수 있는 것이다. 하지만 '아니오'라고 강하게 말할 수 있는 것은 결코 쉬운일이 아니다. 그럼에도 불구하고 저자는 장인 정신을 가지고 있다면 고객에게 원활한 서비스를 제공하기 위해 자신의 의견을 충분히 피력해야 한다고 한다. 이런 경험들을 통해 저자는 외부의 부당한 지시에 아니오라고 당당하게 말하고, 애자일한 방식의 프로그래밍을 하지 않는 팀에 TDD와 페어 프로그래밍 등 실제로 유용하고 실천할 수 있는 방법들을 설파한다. 또 장인을 채용하기 위한 전략, 장인 한명이 팀에 미칠 수 있는 영향 등을 자신의 경험을 토대로 얘기한다.
아직 1년차 주니어 개발자로서 책에서 이야기한 저자의 경험을 완전히 공감하진 못했다. 다만 개발자로서, 한 명의 인간으로서 어떻게 살아야할 지에 대한 방향성을 고민하는 계기가 됐다. 목표가 있다면 연차별로 재독을 하는 것이다. 초심을 잃지 않기 위해, 후에 어떤 개발자로 살아갈 지는 모르겠지만 언젠가 내가 엇나간다는 생각이 들때 재독을 하며 지금의 마음을 잃지 않았으면 좋겠다.
삶의 장인
책을 읽고 크게 두 가지의 생각을 하게 됐다.
프로그래머라는 직업을 통해 얻고 싶은 가치
이전 직업도 프로그래머와 같은 기술자(engineer)였다. 여기서도 장인이 있었다. 하지만 집단의 분위기 속에서 장인정신은 비웃음거리였고 긁어 부스럼을 만든다는 취급을 받는 경우가 많았다. 대부분의 사람들은 수면위로 문제가 떠오르지만 않으면 어떻게 되든 상관없다고 생각하며 수면 아래에 곯아 터져버린 수 많은 문제들을 외면했었다.
당시의 나 또한 장인들을 보고 "일이 좋고 열심히 하는 구나. 근데 열심히 한다고 돈을 더주는 것도 아닌데 왜 최선을 다하지?"라고 생각하며 종종 그 분들의 노력을 속으로 비웃었다. 내가 했던 생각 중 가장 부끄러운 생각이지 않았나 싶다. 하지만 이 책과 최근에 겪은 경험들을 통해 다른 가치관을 가지게 됐다.
OOP에서 인터페이스를 구현한 구현체는 인터페이스로부터 영향을 받지만 역으로 영향을 끼치진 못한다. 이건 결과론 적인 얘기이고 실제로 개발중엔 필요에 따라 상호간에 영향을 끼친다. 수 많은 고민의 과정을 거쳐 잘 다듬어진 인터페이스는 확장성에 유리하고, 일관된 방식으로 프로그래밍을 할 수 있게 도와준다.
나의 삶도 객체지향적으로 생각해 볼 수 있다. 나(ego)의 가치관이 인터페이스다. 직업을 가진 자신, 감정을 표현하는 자신, 타인과의 관계에서 빚어진 자신 등은 모두 구현체이다. 모든 구현체(여러 모습의 나)는 인터페이스(가치관)와 개발중(현재)에 끊임 없는 상호작용을 한다. 다양한 구현체와 상호작용 할 수록 나의 인터페이스는 다듬어지고 앞으로 살아가면서 마주할 다양한 변화에 유연하게 대응할 수 있게 도와준다. 다양한 구현체로써 겪는 경험은 추상화된 가치관의 계층에선 절대로 얻을 수 없는 것들이다. 변화한 가치관과 함께 앞으론 장인의 자세로 직업을 대하고자 한다.
프로페셔널은 어디에나 존재한다
주변을 보면 가족에게 헌신하는 사람, 우정과 사랑을 중요시하는 사람, 배움을 중요시하는 사람 등 다양한 종류의 사람이 있다. 그리고 각자의 역할에 최선을 다하는 사람들은 여러 분야에서 빛을 발한다. 가정에 최선을 다하는 사람은 일반적으로 회사에서도 평판이 좋다. 자기 자신을 따뜻하게 돌볼 줄 아는 사람은 타인에게도 따뜻한 마음을 전한다.
장인은 직업적으로만 존재하는 것이 아니다. 부모로서, 자녀로서, 친구로서, 연인으로서, 감정을 표현하는 자신으로서, 어떤 행위를 하는 나로서 등등 장인 정신은 어디에나 존재할 수 있다. 좁은 생각에 갇혀 자신의 직업에만 장인 정신을 깃들이는 것이 좋은 삶이라고 볼 수 있을까? 장인 정신은 직업에서만 발휘 되는 것이 아니다. 장인정신은 우리의 모든 역할에 중요한 요소다. 우리는 각자의 역할에 최선을 다할 때 가장 빛이 난다.
'서평' 카테고리의 다른 글
서평 - 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.11.05 |
---|---|
서평 - 휴식의 철학 (0) | 2023.07.16 |