차드 파울러 지음 | 인사이트 펴냄
개발자의 자기계발과 경력관리를 위해! 소프트웨어개발자 차드 파울러의 『사랑하지 않으면 떠나라』. 회사, 기술, 경제, 가치 등이 정신없이 바뀌는 오늘, 개발자로서 맞닥뜨리게 될 변화에 적절하게 대처할 수 있도록 인도한다. 이 책은 내일도 제대로 파악할 수 없는 상황을 끝없이 만나게 되는 개발자의 자기계발과 경력관리를 위한 52가지 가르침을 전하고 있다. 가르침마다 '실천하기'를 담아 우리가 일상생활에서 쉽게
분류 : IT개발자를 위한 자기계발서, 경력관리 지침서, 실용서
"사랑하지 않으면 떠나라"라는 쌩뚱맞은 제목의 이 책은 소프트웨어를 개발하는 업에 종사하는 사람을 위한 52가지 충고를 담고 있다. 주된 내용은 개발을 잘 하는 방법, 개발자로 성공하기 위한 방법(개발만 잘해서는 안 되기 때문), 협업 잘하기(협업은 매우 중요하다), 자기 브랜드 구축하기 등이다. "세계는 평평하다"라는 책을 읽어보면, 나의 경쟁상대는 이제는 인도나 중국의 이름 모를 신참 개발자 일수 있다 느낌이 팍팍 든다. 다시 말해서 이제는 세계의 모든 개발자들과 경쟁하는 시대가 된 것이다. 국내의 개발사들이 소프트웨어 개발을 해외로 아웃 소싱하는 일이 점차 일상화되는 시점에서 나의 경쟁력과 경력을 어떻게 잡아 나갈까 하는 물음이 든다면 이 책은 많은 도움이 될 것 같다. 저자는 인도에서 새로 개발팀을 구축하고, 본사와 시차가 다른 환경을 극복하며 효과적으로 협업하여 소프트웨어를 잘 개발하는 여러 노하우를 알려주고 있다. 책을 읽으며 줄 친 부분과 내 생각을 섞어가며 두서없이 써 내려 가 보겠다.
당신의 시장을 선택하라
- 수요와 공급 : 비주류 기술일수록 그 기술을 아는 해외 개발 회사 수가 적다. 경력을 집중해야 할 기술을 고를 때 공급 상승과 가격 하락이 경력 전망에 미치는 영향을 이해해야 한다. 닷넷 프로그래머라면 인력시장에서 파이선 프로그래머보다 더 많은 사람과 경쟁해야 할지도 모른다. 저임금 해외시장이 성장하면 고임금 개발자를 포함해 전반적인 수요가 늘 수 있다. 고급개발자들을 표준을 만들 수 있고 품질을 보증하며 기술적으로 지도를 해줄 수 있기 때문이다.
- 채용시 우리는 경험이 천편일률적인 사람보다는 다양한 ,아주 특이하더라도 응시자에게 더 많은 점수를 준 것 같다. 유능한 사람은 다양성을 찾는다. 그런 사람들을 새로운 것을 배우기 좋아하기 때문이다. 또한 이질적인 경험이나 환경을 통해 더 성숙하고 다재 다능한 소프트웨어 개발자가 되기 때문이다. 일자리를 구할 때 채용자의 레이더 화면에 보이려고 애쓰지만 말고, 실제로 거의 보수를 받을 수 없거나 전혀 없는 이런 비주류 기술에 자신을 투자해보는 건 어떨까? → 올 해는 내가 닷넷과 파이선을 배우려고 한다. 닷넷은 어느정도 가능할 것 같다. 이미 책 한 권을 충분히 보았고, 회사에서 세미나도 하고 있고, 세미나 프로젝트로 메신저를 만들기로 했으니 충분히 손에 익힐 수 있을 듯하다. 파이선을 공부하는 방법은? 현재 카멜레온 오픈소스 프로젝트를 고민하고 있다.
- 자신의 기술이 기술 플랫폼을 넘나들어야 한다. 기술은 단지 도구일 뿐이다.
- 가장 못하는 사람이 되라 : 이것은 가장 잘 하는 팀에서 일하라는 뜻이다. 누구와 일하느냐에 따라 기술이 엄청나게 늘거나 퇴보할 수 있다. → 높은 단계에 있는 것 처럼 보이는 오픈소스 프로젝트를 하나 골라라. 프로젝트의 할 일 목록이나 메일링 리스트 아카이브를 조사해 기능 구현이나 주요 버그 사항을 골라 해당 코드를 짜라 프로젝트 코드의 스타일을 흉내 내라. 만족하면 패치를 제출하라. 패치가 좋다면 받아들여 질 것이다. 이것을 반복하라.
자신에게 투자하라 / 실행하라
- 직장에서 자신의 업무 중 완전히 이해하지 못한 측면에 대해 생각해 보라. 프로젝트에 사용되는 도구 중에서 피상적으로 알고 있는 도구를 선택해 파고들어 보자. SVN, 쉘, 에디터 뭐든지? 도구나 프로세스를 개선하여 팀에 기여하자.
- 비지니스에서 수익을 내는 방법을 알자. 자신이 속한 조직이 돈만 쓰는 부서인지 아니면 수익을 내는 부서인가? 기본적인 재무에 대해서 알고 있나?
- 멘토를 찾아라. 멘토가 되어라. 가르쳐 봄으로써 자시의 지식 중 모호한 부분이 드러나고 그것을 분명히 인식할 수 있게 된다. 동호회, 포럼 활용
- 연습, 연습 또 연습 : 코딩 연습을 하는데 멋진 코드만 나온다면, 나는 지금 좀더 앞선 기술을 연마하는 것이 아니라 현재 갖고 있는 역량을 그냥 보여주는 것일 뿐이다. 간단한 프로그램을 골라 제한 조건을 두고 작성해 보라. http://codekata.pragprog.com/codekata
- 스프트웨어 프로세스가 성공적으로 만들어지려면 프로세스를 사용하는 사람들이 그 프로세스를 받아 들어야 한다. 이 프로세스에 대해 주인의식을 느끼는 가장 좋은 방법은 프로세스를 만드는 것을 같이 하는 것이다.
- 거인의 어깨위에서 : 프로젝트를 하나 골라 책 읽듯 읽는다. 장단점을 파악하고, 비평하고, 사용된 패턴을 찾아보고, 나쁜 점을 하나 찾아 본다.
- 마음 읽기 : 다음 프로젝트나 유지보수해야 할 시스템을 위해 사용자나 관리자가 요구할 것 같은 것에 대해 노트에 기록하라. 창의적이어야 한다. 사용자와 관리자의 관점에서 시스템을 보라.
- CIO에게 들은 진짜 충고 중 하나는 결코 편해지면 안된다는 것이다. 그는 매일 일어나면서 자신이 언제든지 현재 지위에서 떨어질 수 있다고 의도적으로 그리고 분명하게 상기한다고 고백했다. "그게 오늘일 수 있어요"
- 자신을 대신할 수 없다고 자만하는 것은 나쁜 징조다. 여러분을 대신할 수 없다면 그것은 여러분이 다른 사람이 할 수 없는 방식으로 일을 한다는 것을 의미한다. 각각의 코드나 일을 문서로 만들고, 자동화하거나 리팩터링해 팀원 누구나 쉽게 이해할 수 있게 하라.
- 유지보수가 자유와 창조를 위한 환경이 될 수 있다. 자신이 리펙토링 능력을 시험해 볼 기회다. 어떻게 하면 이 시스템이 우아해질 수 있을까?
- 신중하게 근무시간 계획을 세우라. 적게 일하면 더 많은 것을 성취할 것이다. 쉬어야 일도 더 즐겁다. 시간과 끝 시간에 엄격한 제한을 두면 자연히 시간을 더 효율적으로 조정한다.
- "아니오"라고 말할 용기 있는 팀원이 있고 그 말이 사실이라면, "예"라고 말할 때에는 그것이 거짓말이 아님을 알 수 있다.
마케팅은 높으신 분들만 하는 게 아니다.
- 일을 아주 잘 하는데 아무도 보지 않으면 정말 일을 잘 한것 일까? 누가 신경이나 쓸까? 아무도 안 쓴다.
- 지식 노동자의 질과 그들이 한 일의 품질을 객관적으로 측정할 방법은 없다. 회사에서 우성의 척도가 주관적이라면 그것은 무엇을 의미하는가? 그것은 여러분이 다른 어떤 사람의 인식에 의해서 항상 평가받는다는 것을 의미한다.
- 카테고리 : 가술적 숙련도, 팀워크, 사회 적응도, 의사소통 기술, 임무완수
- 소프트웨어 관련 문제를 토론할 때는 고객에게 약간 쉽게 이야기할 필요가 있다. 너무 기술적이지도 너무 우둔하지도 않게, 섬세하게 균형을 잡아야 한다.
- 의사소통, 특히 글쓰기를 통한 의사소통은 모든 훌륭한 아이디어가 반드시 통과하는 병목이다. 설명할 수 없으면 아무것도 아니다.
- 효과적이고 활발한 의사소통으로 맺어진 강력한 팀 관계는 더 좋은 소프트웨어를 더 빨리 전달하는데 기여한다. 대부분의 환경에서 중요한 프로젝트 결정은 커피를 마시며 쉬면서 가벼운 대화를 나눌 때 이루어진다.
- 다른사람들과 함께 일하고 싶어 하는 것이 자연스러운 인간의 성향임을 기억하라. 관계를 "인간적"으로 만들어야 한다. 음성 편지, 전자우편 또는 인스턴트 메시징이 아니라 진짜 사람이다. 직장동료에 대해 알라.
- 자신의 코드를 공개하라 : 회사가 여러분의 소프트웨어를 쓰지 않거나 들여다보지 않았더라도 스프트웨어를 만들고 발표했다는 사실은 그 자체로 눈에 뜬다. 오픈소스에 대한 기여는 실력을 실제로 보여주는 것이다.
- 남다르다는 것은 최고를 의미하는 것은 아니다.
- 어울리기 : 짧게 이야기하면 다음과 같다. 정말 좋은 사람들은 여러분이 그 사람들을 알고 싶어 하는 걸 꺼려하지 않는다. 사람들은 인정받기를 좋아하고 자기가 열정을 품은 주제에 대해 이야기하기를 좋아한다. 그 사람들이 전문가, 고수, 리더, 유명한 작가라는 사실이 때문에 다른 사람들과 사귀기를 좋아한다는 사실이 바뀌지 않는다. 그들 역시 사람이다.
자신의 강점을 유지보수하라
- 가치 경직성 : 가치 경직성이란 어떤 것의 가치를 너무 단호하게 믿어 그것에 대해 더 이상 객관적으로 의문을 품을 수 없을 때 생기는 현상이다. → 내가 가장 두려워하는 것 중에 하나다. 자신이 싫어하는 기술이 모두 나쁜 것이 아님을 배우고, 사실은 그 기술로도 좋은 코드를 개발할 수 있음을 배우는 것이 가장 중요하다.
- 적절한 기술을 골라 시간과 노력을 적절히 계속 투자해 기술 수준을 다른 사람들보다 높였을 수도 있다. 그러나 똑똑하고 지식이 있어도 다른 사람 돕기를 거절하면 쓸모 없는 사람이다.