Home 소프트웨어 장인 리뷰
Post
Cancel

소프트웨어 장인 리뷰

Desktop View

산드로 만쿠소 저자의 소프트웨어 장인을 읽었습니다. 기술서적이 아니라 자기계발서라서 부담없이 가볍게 읽을 수 있는 책입니다. 만 2년차인 지금은 저자의 경험에 크게 공감이 가지는 않았으나, 나중에 10년차의 시니어가 됐을 때 다시 읽으면 느끼는게 많을 것 같습니다.

책에서는 애자일 방법론과 TDD, XP 등의 기술적 관례들을 중요하게 여기고 있지만, 궁극적으로 말하고자 하는건 소프트웨어 개발자가 가져야할 마음가짐과 태도에 대해서입니다. 소프트웨어 장인정신에 대한 설명 중에서 제일 인상깊게 읽었던 것은 다음의 문장입니다.

장인은 일종의 삶의 철학이다. 우리의 삶 전체에 걸쳐서 최선을 다해 역량을 마스터할 과업으로 소프트웨어 개발을 선택한 것이다.

책을 읽다보면 저자의 개발에 대한 열정이 크게 와닿습니다. 그의 열정은 브라질 시골의 어린 시절부터 대성한 유럽의 개발자인 지금까지도 한결같아 보입니다.

누구나 처음 개발을 시작할 때는 호기심과 열정으로 가득했을 것입니다. 그러나 막상 시작하게된 회사 업무는 로망과 다르고, 일정에 쫓기고 사람에게 치이며 권태감이 올 수도 있습니다. 내가 짠 코드의 가치를 의심하기도 하고 말이죠. 그럼에도 포기하지 않고 다시 열정을 불태울 수 있는 이유는 매달 들어오는 월급…이 아닌 개발을 진정으로 즐기기 때문이라고 생각합니다.

우리는 주5일 9시에서 6시, 사람에 따라 그보다도 훨씬 많은 시간을 일에 투자합니다. 일생을 통틀어 계산해본다면 그 시간은 결코 그냥 흘러가도 좋을 것이 아닙니다. 이 아까운 시간들을 의미있게 보내려면 회사에서 하는 나의 업무를 진심으로 대해야 할 것입니다. 내가 만든 프로그램이 단지 값싼 소모성 상품이 아닌 혼이 담긴 작품이라고 생각해야 할 것입니다.

몇몇 개발자 또는 애자일 코치들이 소프트웨어 장인정신 커뮤니티가 엘리트 개발자들의 자발적인 모임이라고 하는 것에 놀랐다. 소프트웨어 장인정신이 엘리트 주의라고 생각한다면 이는 소프트웨어 장인을 오해하는 것이다. 소프트웨어 장인은 항상 다른 사람에게 배우려 하는 겸손할 사람이어야 하고 경험이 적은 개발자와 지식을 공유하기를 주저하지 않는 사람이어야 한다.

소프트웨어 장인이라는 공동체의 사람들은 대단한 경력과 실력을 가졌음에도 아주 열정적이고 배움의 자세를 갖췄으며 겸손하기까지 합니다. 실제 업무현장에서 일하다보면 모두가 그들처럼 이상적인 개발자의 모습을 하고 있지는 않습니다. 물론 저자도 그걸 알고 있으며 수없이 겪어봤을 것입니다. chapter5에서는 저자의 유쾌하지 않았던 프로젝트경험에 대한 얘기가 나옵니다. chapter14에서는 개발팀에 변화를 도입할때 마주치는 빌런(?)들을 나열해놓기도 했습니다. 하지만 저자는 그들과 소통하고 때로는 싸우기까지 하는 것을 꺼리지 않는 것처럼 보였습니다. 엘리트라는 특권의식에 사로잡히지 않고 이렇게 회사 사람들과 진심으로 마주 대하는 것이 저자의 대단한 점이라고 생각합니다.

사실 개발자는 권위적인 엘리트와는 반대로 자유분방한 느낌이 있긴 합니다. 저는 그래서 이 직업을 좋아합니다.

업무현장에서 일할 때의 어려움에 대해서 얘기했는데, 짧은 경력이지만 제가 업무를 하면서 가장 어렵다고 느낀 것은 사람들의 방어적인 태도였습니다. 비개발자가 관리자일 때, 또는 현업일때, 아니면 디자이너 혹은 기획자일 때, 그들은 개발자가 하는 업무를 잘 이해하지 못할 수도 있습니다. 어려운 용어들이 많이 나와서 이해하기 힘들고, 괜히 불필요한 절차를 시간들여 하는 것 같기도 합니다. 그들이 일을 안하기 위해 어려운 용어로 자신에게 혼란을 준다고 생각할 수도 있습니다. 이에 개발자는 설명해봤자 소용없다고 느끼고 소통을 포기할 수도 있습니다. 그래서 저는 협업을 하면서 팀원들끼리 신뢰관계를 쌓는 것이 상당히 중요하다고 생각합니다. 그러한 과정들이 소모적이라며 등한시하면 좋은 프로젝트 결과물은 나오지 않을 것입니다. 부디 방어적인 태도를 버리고 열린 마음으로 서로의 말에 귀를 기울였으면 합니다.

책에서는 개발자뿐만이 아니라 비개발자인 관리자와 면접관에게도 많은 얘기를 해주고 있습니다. 개발자 뿐만 아니라 개발자와 함께 일하는 직군들도 이에 대해 함께 고민해보셨으면 합니다. 갑자기 예전에 표지를 보고 호기심이 들었던 책이 생각나서 찾아왔습니다.

Desktop View

이 책도 읽어보고 리뷰를 작성할 날이 왔으면 좋겠습니다. 다음에는 자료구조 책으로 다시 찾아오겠습니다.

맥북m1에 오라클DB 설치하는 법

동적인 웹 페이지를 만들기 위한 JAVA 웹 프로그래밍 기술