품목정보
발행일 | 2015년 09월 25일 |
---|---|
쪽수, 무게, 크기 | 328쪽 | 500g | 148*225*14mm |
ISBN13 | 9791186659489 |
발행일 | 2015년 09월 25일 |
---|---|
쪽수, 무게, 크기 | 328쪽 | 500g | 148*225*14mm |
ISBN13 | 9791186659489 |
1부 이념과 태도 1장 21세기의 소프트웨어 개발 고참 개발자 새로운 현실 2장 애자일 절차적인 관점에서의 애자일 원칙 기술적인 관점에서의 애자일 원칙 애자일을 따른다는 것 게임 체인저 피플 임파워먼트 프로페셔널의 진화 애자일 매니페스토 애자일 매니페스토의 원칙들 애자일 격변기 애자일 행오버 부분적인 전환 애자일 코치 새로운 기술적 실행 관례에 대한 거부감 소프트웨어 프로젝트를 바라보는 편협한 시각 나쁜 소식만 있는 것은 아니다 애자일과 소프트웨어 장인정신 요약 3장 소프트웨어 장인정신 더 나은 비유 위키피디아에서의 정의 좀더 주관적인 정의 짧은 정의 정의 이상의 의미 공예, 사업, 엔지니어링, 과학 또는 예술 소프트웨어 장인정신의 토론 이력 소프트웨어 장인정신 모임 경계를 지나 장인 교환 프로그램 소프트웨어 장인 커뮤니티 소프트웨어 장인정신 매니페스토 매니페스토 ‘동작하는 소프트웨어뿐만 아니라, 정교하며 솜씨 있게 만들어진 작품을’ ‘변화에 대응하는 것뿐 아니라, 계속해서 가치를 더하는 것을’ ‘개별적으로 협력하는 것뿐만 아니라 프로페셔널 커뮤니티를 조성하는 것을’ ‘고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를’ 생산적 동반자 관계가 될 준비가 안 된 고객 매니페스토의 문제점 요약 4장 소프트웨어 장인의 태도 내 커리어의 주인은 누구인가 고용자?피고용자 관계 끊임없는 자기계발 독서, 많은 독서 블로그 기술 웹사이트 팔로우할 리더 찾기 소셜미디어 끊임없는 훈련 카타 펫 프로젝트 오픈 소스 페어 프로그래밍 사회 활동: 다른 개발자들과 어울리기 ‘개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을’ 의도한 발견 일과 삶의 균형 시간 만들기 집중: 뽀모도로 기법 균형 요약 5장 영웅, 선의 그리고 프로페셔널리즘 ‘아니오’라고 말하는 방법 배우기 재앙의 기억 교훈 프로답게 행동하기 대안 제시 뜻밖의 실용적인 대안 깨어 있는 관리자 요약 6장 동작하는 소프트웨어 동작하는 소프트웨어만으로는 부족하다 정원 돌보기 보이지 않는 위협 자신이 만든 소프트웨어에 인질이 되는 상황 평범한 개발자가 아닌 장인을 고용하라 시간에 대한 잘못된 인식 기술적 부채에 대한 이야기 우리는 올바른 것을 하길 원한다 시간적 여유가 없는 바쁜 팀 내겐 없는 여유, 다른 누군가에겐 있는 여유 단위 테스트 작성은 별개의 업무인가 효율적인 시간 활용 몇 개월 후 레거시 코드 태도의 변화 고객과 개발자 모두의 만족 요약 7장 기술적 실행 관례 올바른 일 vs 올바른 실행 상황 논리 익스트림 프로그래밍의 역사 실행 관례와 가치 실행 관례를 통한 가치 창출 자동화된 테스트 테스트 먼저 테스트 주도 개발 지속가능한 통합 페어 프로그래밍 리펙토링 책임감 실용주의 요약 8장 길고 긴 여정 브라질 어느 십대 소년의 이야기 결단과 집중 어디로 가야 할지 모른다면 투자로서의 일터 당부의 말 자율성, 통달, 목적의식 회사 안에서의 커리어 요약 2부 완전한 전환 9장 인재 채용 전형적인 채용 공고 인터뷰할 시간이 없다는 변명 틀에 박힌 직무 요건 참고 정보로 필요한 직무 요건 일은 단순히 일이 아니다 추천 채용 커뮤니티의 활용 효과적인 선별 조건의 정의 적극적인 리쿠르팅 요약 10장 소프트웨어 장인 면접하기 비즈니스 협상 생산적인 파트너십을 알아보는 방법 회사 입장에서의 관점 지원자 입장에서의 관점 바람직한 면접 방법 올바른 집중 마인드 맵핑 대화 페어 프로그래밍 면접 개인 컴퓨터를 지참한 면접 맞춤형 면접 번트 홈런 기존 팀을 위한 채용, 새로운 팀을 위한 채용 사전 면접용 코딩 시험 지원자와 회사 모두 면접을 어떻게 하는지 알아야 한다 개발자 채용 면접은 개발자가 보아야 한다 요약 11장 잘못된 면접 방식 똑똑한 척하는 면접관을 세운다 수수께끼식 질문을 던진다 답을 모르는 질문을 한다 지원자를 바보로 만든다 인터넷 접속을 막는다 종이에 코드를 작성하게 한다 알고리즘 문제를 낸다 전화 면접을 한다 요약 12장 낮은 사기의 대가 애자일 행오버: 낮은 사기 그저 ‘출퇴근’만 하는 개발자들로 인한 대가 낮은 수준의 동기가 만드는 제약 개발자들에게 열정을 불어넣기 요약 13장 배움의 문화 잘못된 방향으로 동기 부여하기 배움의 문화 만들기 북 클럽에 가입하기 테크 런치 진행하기 그룹 토론회에 참여하기 업무 교환하기 얼마 동안만 업무 교환하기 그룹 코드 리뷰하기 코딩 실습하기 사용할 기술은 가능한 자유롭게 선택하기 내부 학습 모임을 만들기 회사에서의 펫 프로젝트 시간을 허용하기 외부 기술 커뮤니티와 교류하기 아무도 참여하려 하지 않는다면 모범을 보여라 관심을 보이는 사람들에게 집중하라 강제하지 마라 모두를 변화시키려 들지 말라 모임에 대한 약속을 제때하라 허락을 구하지 마라 투덜대지 마라 리듬을 만들라 요약 14장 기술적 변화의 실행 회의론의 종류 준비 기술적 변화를 시작하는 방법 신뢰를 쌓으라 전문성을 확보하라 모범을 보여 사람들을 이끌라 신중하게 싸울 곳을 정하라 점진적으로 반복, 관찰, 수용하라 두려움과 자신감 부족 상사를 설득하는 방법 팀이 TDD를 수용하도록 설득하는 방법 회의론을 상대하는 방법 상아탑 아키텍트 권한과 책임 피해망상 이 모든 것을 다 챙겨야만 하는가 요약 15장 실용주의 장인정신 품질은 선택사항이 아니다 좋은 품질은 비싸고 시간이 오래 걸릴까 테스트 주도 개발이 항상 필요할까 리펙토링 소프트웨어 개발 방법의 한 가지 예 비즈니스 돕기 단순하고 빠른 솔루션 소프트웨어 프로젝트는 우리를 위한 것이 아니다 비범함과 평범함 단순한 설계를 위한 네 가지 원칙 디자인 패턴 패턴을 위한 리펙토링 장인정신과 실용주의 요약 16장 소프트웨어 장인으로서의 커리어 장인의 길 정직과 용기 커리어의 진전 다른 커리어 사다리 여정과 이정표 커리어 만들어 나가기 원하는 바를 모른다면 어떻게 해야 할까 다양성 소프트웨어 장인의 사명 부록 소프트웨어 장인정신에 대한 오해와 설명 소프트웨어 장인과 소프트웨어 개발자 장인정신 != 엘리트주의 견습생, 숙련공, 마스터 마스터 장인 근시안적 개념으로 보는 시선 장인정신과 XP 실행 관례와의 관계 애자일 코치와 관리자 소프트웨어 도제 제도 비유로 인한 문제 |
.
어떻게 하면 더 나은 프로그래머가 될 수 있을까? 하는 질문에 답을 주는 책이다.
당연하게 생각하고 그냥 받아들였던 예전 방법들이 뒤에 큰 문제를 일으킬 수 있음을 알고는 있지만, 시간과 경제적인 면에서의 지원이 없이는 불가능하다고 생각했다.
그러나, 이 책에서는 꼭 그런 지원이 필요한 곳이 아닌 부분에서도 전반적인 가치를 상승시킬 수 있는 시각이나 방법론을 제시하고 있다. 그 중 몇몇은 당장 적용 실행보아도 될만한 것이 많다.
.
.
페어 프로그래밍
현실적으로는 불가능하겠지만, 좋은 솔루션임은 확실한 것 같다.
페어 프로그래밍을 하면 코드가 작성되자마자 그 품질에 대해 바로 피드백을 받을 수 있다. 개발자가 테스트를 작성하거나 변수 이름을 짓는 순간 다른 개발자가 즉시 “이 부분은 이해가 안됩니다. 어떤 의미죠? 변수명을 notLoggedIn 이 아니라 guest로 바꾸면 어떨까요? 이 메서드는 하나가 너무 많은 일을 합니다. 몇 가지 private 메서드로 분할하면 어떨까요?”라고 말하며 유지보수 용이성과 명료성에 대해서 피드백을 한다.
페어 프로그래밍을 현실적으로 적용하려면 여유로운 개발자 인력풀이 필요하겠지만, 각자의 능력을 업 시키기 위해서나 전체적으로 코딩 표준을 정의하고 팀 차원의 스킬이 누적될 수 있는 최선의 방법인 듯 하다.
.
.
잘못된 면접 방식
똑똑한 척하는 면접관을 세운다.
수수께끼 질문을 던진다.
답을 모르는 질문을 한다.
지원자를 바보로 만든다.
인터넷 접속을 막는다.
종이에 코드를 작성하게 한다.
알고리즘 문제를 낸다.
전화면접을 한다
면접에서 진정 보고 싶은 것은 그 지원자가 할 수 있는 최선의 모습이다. 테스트를 어떻게 하는지, 리펙토링을 어떻게 하는지, 좋은 네이밍을 할 줄 아는 지를 평가해야 한다.
형식적인 채용 공고와 면접 방식은 진짜 무능력자도 언제든 다른 회사로의 이직이 가능함을 나타내는 것이기도 하다.
.
.
프로풰셔날하게 장인 정신을 가지고 만들어진 코드는 당당하게 밖으로 내놓을 수 있지 않을까??
더 나은 개발자가 되어 더 좋은 코드를 전달하고 싶다면 장인정신을 갖기를 바란다.
.
글을 시작하기 전에 고백할 것이 있다. IT 기술에 관심은 많지만, 소프트웨어의 기본이라 할 수 있는 코딩은 초보 수준의 블록코딩과 파이썬의 아주 기본 단계를 독학으로 시작했다 그대로 접은, 그야말로 왕초보 코더라는 것을 미리 밝힌다.
그럼에도 나는 이 책에서 얻게될지 모를 장인 정신에 잔뜩 기대를 품고 있었다. Geek이라는 이미지가 있지만, 어쨌든 뚝딱뚝딱 뭔가를 만들어내는 사람들 아닌가? 텍스트로 된 명령어들의 향연으로 2D, 3D 기반의 프로그램을 만들거나 어쨌든 구동하는 어플리케이션이 그들의 머리와 눈과 손에서 나오는 과정은 코알못에게는 그저 신기할 따름이다.
그 끝판왕 중에 한 명인 산드로 만쿠소가 이야기하는 소프트웨어 장인정신에 대한 호기심은 어쩌면 당연한 수순이었던 것 같다. (산드로 만쿠소의 업계 내 영향력은 잘 모른다. 그저 이 책을 통해 그가 뿜어내는 장인으로서의 에너지에 홀딱 빠져 내 뇌피셜로 정의한 끝판왕이다.)
기업들은 단순히 특정 분야만이 아닌 다방면에 걸친 전문가를 찾고 있다. 코드를 잘 작성하는 것은 소프트웨어 프로페셔널이 가져야 할 최소한의 요건이다. 그에 더해 오늘날에는 테스트, 분석, 비즈니스에 대한 이해, 커뮤니케이션 능력, 보다 외향적인 성격을 소프트웨어 프로페셔널에게 요구한다. 41p
소프트웨어 분야 뿐만이 아니다. 다방면에 걸친 전문가는 이제 시대가 원하는 인재상이다. 특정 업무를 잘하는 것은 빼어난 단일 실력만을 요구하지 않는다. 그것과 관련된 배경 지식, 사회성, 적극성 등이 동시에 요청된다. 참고로 이 책은 커리어를 시작하는 사람들을 위한 책이 아니다. 때문에 다른 책들에 비해 다소 높은 직업적 윤리성을 요청하는 면이 있다. 제목조차 소프웨어 장인이 아닌가?
소프트웨어 프로페셔널이 할 수 있는 최대의 실수는 자신이 모르는 것을 모른다고 받아들이지 않는 것이다. 모르고 있다는 것을 인지하지 못한 상태를 '2단계 무지'라고 한다. 아직 배울 내용이 많음을 인정하는 것은 성숙하다는 증거이고 마스터가 되기 위한 첫걸음이다. 95p
장인으로서의 첫걸음은 모르는 것이 있고, 배울 것이 많다는 것을 인정하는 것이다. 배움은 그 사람이 어떤 수준의 지식을 가지고 있는지와 관계없이 정말 중요한 것 같다. 높은 자리에 올라가 관리자의 입장이 되어갈수록 자기가 알고 있는 경험과 지식이 전부라 생각하고, 오만해지기 쉽다.
꼭 경험이 많은 프로페셔널만 블로그를 만들어야 한다고는 생각하지 않는다. 모든 소프트웨어 개발자는 경험 수준과 관계없이 블로그가 있어야 한다고 본다. 경험과 발견을 공유함으로써 훌륭한 프로페셔널 커뮤니티를 이루는 데 도움이 되어야 한다. … 우선 블로그는 우리의 배움과 자기계발에 대한 기록의 장으로 두는 게 좋다. … 나 자신을 위한 기록이 가장 우선이다. 유익한 글을 많이 올리는 경험 많은 개발자들도 과거에 같은 주제에 대해 이미 많은 글을 써보았기 때문에 오늘날 좋은 글이 나올 수 있었던 것이다. 현재 배우는 것이 무엇이든 글로 써서 기록을 남기는 것은 가치가 있다. 84p
꾸준히 기록하는 것의 중요성에 대해 저자는 강조한다. 내가 지금 현재 남기는 글들이 완벽하지 않아도 좋다. 어차피 블로그를 기록장으로 쓰기로 생각했다면, 완전하지 않아도 어떤 식으로든 남기자. 그 불완전한 기록들이 모여서 더 나은 아이디어를 위한 단초가 되고, 꽤 괜찮은 글쓰기의 기초가 될테니까.
커리어에서 옳고 그른 것은 없다. 지식은 영원하고 돈과 안정은 영원할 수 없다는 것만 마음에 새기고 있어야 한다. 어떤 이유에서든 직장을 떠날 때 남는 것은 오로지 지식과 경험뿐이다. 항상 배우고 더 나은 소프트웨어 장인이 되는 것에 집중한다면, 단순히 돈만 좇을 때보다 좋은 직장을 얻기가 오히려 더 수월하다. 172p
직장 생활에서 돈 이외에 지식과 경험을 쌓을 수 있다는 것은 직장을 다닐 때는 잘 몰랐다. 그저 수동적으로 해내야 업무였기에 당시에는 그저 생존을 위한 퀘스트같았는데... 직장을 나와서 의외의 순간, 의외의 장소에서 그 때 익혔던 스킬들을 사용하는 나 자신을 발견했다. 당시에는 하기 싫어서 괴로움에 몸부림쳤지만, 그것 또한 해내고 나니 나름의 자산이 되어있었다. 이제 와서 직장을 선택할 때 내가 어떤 경험을 하게되고, 어떤 것을 배울수 있을지 고려하지 않았던 혹은 그런 안목이 없던 과거의 내 자신이 아쉽게만 느껴진다.
소프트웨어 장인의 공식은 이 분야의 장인을 꿈꾸는 자에게만 적용되는 것은 아니다. 어느 분야이든 프로페셔널로서 일을 하고자 하는 자라면 저자가 말한 팁들을 찬찬히 생각하고 실행할 시도를 해보아야 한다.
요즘같은 세상에 직업윤리가 어디있냐? 열정 페이를 요구하는 세상에 휘둘리지 않겠다고 말하는 사람도 많을 것이다. 실제로 사회는 순진하고 어린 인력들에게 희망고문을 하며 노동을 착취하기도 한다.
그럼에도 내 일을 사랑하고 계속해서 해나가길 희망하고, 그 분야에서 장인되기를 원한다면 이런 장인 장신은 필요하지 않을까?
대신 저자가 말한대로 좀 더 똑똑하고, 현명하게, 일하자. 나에게 집중하고, 내가 가진 것을 배우고, 가르치고, 공유하자.
소프트웨어 장인은 자신만의 사명이 있다. 더 나아지는 데 집중하고, 계속해서 자신의 커리어에 투자하며, 배우고, 가르치고, 공유한다. 그가 맡은 고객에게 항상 가치를 전달할 수 있도록 해야 한다. 322p
* 본 글을 길벗출판사에서 도서를 협찬받아 쓴 서평입니다.
#소프트웨어장인 #산드로만쿠소 #길벗 #오독완 #오독완챌린지3기#서평단 #도서협찬 #서평 #장인정신
이 책은 10대 때부터 개발을 통하여 수익을 얻었던, 개발을 하며 정말 산전수전을 다 겪었던 소프트웨어 장인인 저자가 또 다른 소프트웨어 장인을 만들기 위하여 사고방식을 전파해주는 책이다. 이 책을 읽고 나서 지금까지 내가 했던 모든 잘못된 생각들이 싹 씻겨 내려가며 모두 잘못된 것임을 깨달을 수 있었다.
비전공자에, 이제 막 복수 전공을 도전하고 있는 학생이며, 성격이 많이 급한 편이다 보니 나는 사실 지금까지 배운 내용을 뇌에 쑤셔박기도 급급했으며 프로젝트 하나를 만드는데도 잘 풀리지 않아 최근 소위 말하는 '현타'가 심하게 와버린 상황이었다. 하지만 이 책은 '급할수록 돌아가라'는 말을 다시 한 번 뇌리에 각인시켜 주었다. 테스트를 꾸준히 해주며 개발해야하고, 개발자가 아니라도 같은 배를 탄 동업자들과 끊임없는 소통을 하며 개발을 진행해야 한다는 점이 이 책의 주안점이다.
물론 인생사 새옹지마다 보니, 내가 나중에 정말 개발자를 하고 있을지는 나도 모르겠다. 하지만 만약 개발자가 된다면 이 책에서 배운 내용을 일을 그만두는 그 순간까지 가슴에 품고 있을 것이다. 만약 나와 같이 본인이 '조급한 개발자'라고 생각한다면, 이 책을 통하여 여유를 찾고 사고 방식을 한 번 바꿔 보는 것은 어떨까?