읽은기간: 2018.10.01 ~ 2018.10.15
개발자로서 읽어두면 정말 도움이 되는 책이라고 생각한다. 내가 하는 이 일에 대한 고찰과 의미를 다시 한번 생각하게 했다. 나는 어떤 동료인가? 나는 좋은 소프트웨어 개발자 인가? 라는 질문을 이 책을 읽으면서 여러번 내 자신에게 물었던 것 같다. 어떻게 보면 개발자라는 직업만이 장인 정신이 아니라 우리 삶을 대하는 태도부터 장인 정신이 필요할 것 같다는 생각이 들었다.
1부 이념과 태도
고참 개발자 새로운 현실
절차적인 관점에서의 애자일 원칙 기술적인 관점에서의 애자일 원칙 애자일을 따른다는 것 게임 체인저 피플 임파워먼트 프로페셔널의 진화 애자일 매니페스토 애자일 매니페스토의 원칙들 애자일 격변기 애자일 행오버 부분적인 전환 애자일 코치 새로운 기술적 실행 관례에 대한 거부감 소프트웨어 프로젝트를 바라보는 편협한 시각 나쁜 소식만 있는 것은 아니다 애자일과 소프트웨어 장인정신 요약
더 나은 비유 위키피디아에서의 정의 좀더 주관적인 정의 짧은 정의 정의 이상의 의미 공예, 사업, 엔지니어링, 과학 또는 예술 소프트웨어 장인정신의 토론 이력 소프트웨어 장인정신 모임 경계를 지나 장인 교환 프로그램 소프트웨어 장인 커뮤니티 소프트웨어 장인정신 매니페스토 매니페스토 ‘동작하는 소프트웨어뿐만 아니라, 정교하며 솜씨 있게 만들어진 작품을’ ‘변화에 대응하는 것뿐 아니라, 계속해서 가치를 더하는 것을’ ‘개별적으로 협력하는 것뿐만 아니라 프로페셔널 커뮤니티를 조성하는 것을’ ‘고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를’ 생산적 동반자 관계가 될 준비가 안 된 고객 매니페스토의 문제점 요약
내 커리어의 주인은 누구인가 고용자·피고용자 관계 끊임없는 자기계발 독서, 많은 독서 블로그 기술 웹사이트 팔로우할 리더 찾기 소셜미디어 끊임없는 훈련 카타 펫 프로젝트 오픈 소스 페어 프로그래밍 사회 활동: 다른 개발자들과 어울리기 ‘개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을’ 의도한 발견 일과 삶의 균형 시간 만들기 집중: 뽀모도로 기법 균형 요약
‘아니오’라고 말하는 방법 배우기 재앙의 기억 교훈 프로답게 행동하기 대안 제시 뜻밖의 실용적인 대안 깨어 있는 관리자 요약
동작하는 소프트웨어만으로는 부족하다 정원 돌보기 보이지 않는 위협 자신이 만든 소프트웨어에 인질이 되는 상황 평범한 개발자가 아닌 장인을 고용하라 시간에 대한 잘못된 인식 기술적 부채에 대한 이야기 우리는 올바른 것을 하길 원한다 시간적 여유가 없는 바쁜 팀 내겐 없는 여유, 다른 누군가에겐 있는 여유 단위 테스트 작성은 별개의 업무인가 효율적인 시간 활용 몇 개월 후 레거시 코드 태도의 변화 고객과 개발자 모두의 만족 요약
올바른 일 vs 올바른 실행 상황 논리 익스트림 프로그래밍의 역사 실행 관례와 가치 실행 관례를 통한 가치 창출 자동화된 테스트 테스트 먼저 테스트 주도 개발 지속가능한 통합 페어 프로그래밍 리펙토링 책임감 실용주의 요약
브라질 어느 십대 소년의 이야기 결단과 집중 어디로 가야 할지 모른다면 투자로서의 일터 당부의 말 자율성, 통달, 목적의식 회사 안에서의 커리어 요약
2부 완전한 전환
전형적인 채용 공고 인터뷰할 시간이 없다는 변명 틀에 박힌 직무 요건 참고 정보로 필요한 직무 요건 일은 단순히 일이 아니다 추천 채용 커뮤니티의 활용 효과적인 선별 조건의 정의 적극적인 리쿠르팅 요약
비즈니스 협상 생산적인 파트너십을 알아보는 방법 회사 입장에서의 관점 지원자 입장에서의 관점 바람직한 면접 방법 올바른 집중 마인드 맵핑 대화 페어 프로그래밍 면접 개인 컴퓨터를 지참한 면접 맞춤형 면접 번트 홈런 기존 팀을 위한 채용, 새로운 팀을 위한 채용 사전 면접용 코딩 시험 지원자와 회사 모두 면접을 어떻게 하는지 알아야 한다 개발자 채용 면접은 개발자가 보아야 한다 요약
똑똑한 척하는 면접관을 세운다 수수께끼식 질문을 던진다 답을 모르는 질문을 한다 지원자를 바보로 만든다 인터넷 접속을 막는다 종이에 코드를 작성하게 한다 알고리즘 문제를 낸다 전화 면접을 한다 요약
애자일 행오버: 낮은 사기 그저 ‘출퇴근’만 하는 개발자들로 인한 대가 낮은 수준의 동기가 만드는 제약 개발자들에게 열정을 불어넣기 요약
잘못된 방향으로 동기 부여하기 배움의 문화 만들기 북 클럽에 가입하기 테크 런치 진행하기 그룹 토론회에 참여하기 업무 교환하기 얼마 동안만 업무 교환하기 그룹 코드 리뷰하기 코딩 실습하기 사용할 기술은 가능한 자유롭게 선택하기 내부 학습 모임을 만들기 회사에서의 펫 프로젝트 시간을 허용하기 외부 기술 커뮤니티와 교류하기 아무도 참여하려 하지 않는다면 모범을 보여라 관심을 보이는 사람들에게 집중하라 강제하지 마라 모두를 변화시키려 들지 말라 모임에 대한 약속을 제때하라 허락을 구하지 마라 투덜대지 마라 리듬을 만들라 요약
회의론의 종류 준비 기술적 변화를 시작하는 방법 신뢰를 쌓으라 전문성을 확보하라 모범을 보여 사람들을 이끌라 신중하게 싸울 곳을 정하라 점진적으로 반복, 관찰, 수용하라 두려움과 자신감 부족 상사를 설득하는 방법 팀이 TDD를 수용하도록 설득하는 방법 회의론을 상대하는 방법 상아탑 아키텍트 권한과 책임 피해망상 이 모든 것을 다 챙겨야만 하는가 요약
품질은 선택사항이 아니다 좋은 품질은 비싸고 시간이 오래 걸릴까 테스트 주도 개발이 항상 필요할까 리펙토링 소프트웨어 개발 방법의 한 가지 예 비즈니스 돕기 단순하고 빠른 솔루션 소프트웨어 프로젝트는 우리를 위한 것이 아니다 비범함과 평범함 단순한 설계를 위한 네 가지 원칙 디자인 패턴 패턴을 위한 리펙토링 장인정신과 실용주의 요약
장인의 길 정직과 용기 커리어의 진전 다른 커리어 사다리 여정과 이정표 커리어 만들어 나가기 원하는 바를 모른다면 어떻게 해야 할까 다양성 소프트웨어 장인의 사명
부록 소프트웨어 장인정신에 대한 오해와 설명 소프트웨어 장인과 소프트웨어 개발자 장인정신 != 엘리트주의 견습생, 숙련공, 마스터 마스터 장인 근시안적 개념으로 보는 시선 장인정신과 XP 실행 관례와의 관계 애자일 코치와 관리자 소프트웨어 도제 제도 비유로 인한 문제