소프트웨어 장인

84page

오래 전에 작성했던 코드를 지금에 와서도 고칠 부분이 없어 보인다면, 그것은 그동안 배운 것이 없다는 뜻이다.

1부 이념과 태도

1장 21세기의 소프트웨어 개발

고참 개발자

새로운 현실

2장 애자일

절차적인 관점에서의 애자일 원칙

기술적인 관점에서의 애자일 원칙

애자일을 따른다는 것

게임 체인저

피플 임파워먼트

프로페셔널의 진화

애자일 매니페스토

애자일 매니페스토의 원칙들

애자일 격변기

애자일 행오버

부분적인 전환

애자일 코치

새로운 기술적 실행 관례에 대한 거부감

소프트웨어 프로젝트를 바라보는 편협한 시각

나쁜 소식만 있는 것은 아니다

애자일과 소프트웨어 장인정신

요약

3장 소프트웨어 장인정신

더 나은 비유

위키피디아에서의 정의

좀더 주관적인 정의

짧은 정의

정의 이상의 의미

공예, 사업, 엔지니어링, 과학 또는 예술

소프트웨어 장인정신의 토론 이력

소프트웨어 장인정신 모임

경계를 지나

장인 교환 프로그램

소프트웨어 장인 커뮤니티

소프트웨어 장인정신 매니페스토

매니페스토

‘동작하는 소프트웨어뿐만 아니라, 정교하며 솜씨 있게 만들어진 작품을’

‘변화에 대응하는 것뿐 아니라, 계속해서 가치를 더하는 것을’

‘개별적으로 협력하는 것뿐만 아니라 프로페셔널 커뮤니티를 조성하는 것을’

‘고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를’

생산적 동반자 관계가 될 준비가 안 된 고객

매니페스토의 문제점

요약

4장 소프트웨어 장인의 태도

내 커리어의 주인은 누구인가

고용자?피고용자 관계

끊임없는 자기계발

독서, 많은 독서

블로그

기술 웹사이트

팔로우할 리더 찾기

소셜미디어

끊임없는 훈련

카타

펫 프로젝트

오픈 소스

페어 프로그래밍

사회 활동: 다른 개발자들과 어울리기

‘개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을’

의도한 발견

일과 삶의 균형

시간 만들기

집중: 뽀모도로 기법

균형

요약

5장 영웅, 선의 그리고 프로페셔널리즘

‘아니오’라고 말하는 방법 배우기

재앙의 기억

교훈

프로답게 행동하기

대안 제시

뜻밖의 실용적인 대안

깨어 있는 관리자

요약

6장 동작하는 소프트웨어

동작하는 소프트웨어만으로는 부족하다

정원 돌보기

보이지 않는 위협

자신이 만든 소프트웨어에 인질이 되는 상황

평범한 개발자가 아닌 장인을 고용하라

시간에 대한 잘못된 인식

기술적 부채에 대한 이야기

우리는 올바른 것을 하길 원한다

시간적 여유가 없는 바쁜 팀

내겐 없는 여유, 다른 누군가에겐 있는 여유

단위 테스트 작성은 별개의 업무인가

효율적인 시간 활용

몇 개월 후

레거시 코드

태도의 변화

고객과 개발자 모두의 만족

요약

7장 기술적 실행 관례

올바른 일 vs 올바른 실행

상황 논리

익스트림 프로그래밍의 역사

실행 관례와 가치

실행 관례를 통한 가치 창출

자동화된 테스트

테스트 먼저

테스트 주도 개발

지속가능한 통합

페어 프로그래밍

리펙토링

책임감

실용주의

요약

8장 길고 긴 여정

브라질 어느 십대 소년의 이야기

결단과 집중

어디로 가야 할지 모른다면

투자로서의 일터

당부의 말

자율성, 통달, 목적의식

회사 안에서의 커리어

요약

2부 완전한 전환

9장 인재 채용

전형적인 채용 공고

인터뷰할 시간이 없다는 변명

틀에 박힌 직무 요건

참고 정보로 필요한 직무 요건

일은 단순히 일이 아니다

추천 채용

커뮤니티의 활용

효과적인 선별 조건의 정의

적극적인 리쿠르팅

요약

10장 소프트웨어 장인 면접하기

비즈니스 협상

생산적인 파트너십을 알아보는 방법

회사 입장에서의 관점

지원자 입장에서의 관점

바람직한 면접 방법

올바른 집중

마인드 맵핑 대화

페어 프로그래밍 면접

개인 컴퓨터를 지참한 면접

맞춤형 면접

번트 홈런

기존 팀을 위한 채용, 새로운 팀을 위한 채용

사전 면접용 코딩 시험

지원자와 회사 모두 면접을 어떻게 하는지 알아야 한다

개발자 채용 면접은 개발자가 보아야 한다

요약

11장 잘못된 면접 방식

똑똑한 척하는 면접관을 세운다

수수께끼식 질문을 던진다

답을 모르는 질문을 한다

지원자를 바보로 만든다

인터넷 접속을 막는다

종이에 코드를 작성하게 한다

알고리즘 문제를 낸다

전화 면접을 한다

요약

12장 낮은 사기의 대가

애자일 행오버: 낮은 사기

그저 ‘출퇴근’만 하는 개발자들로 인한 대가

낮은 수준의 동기가 만드는 제약

개발자들에게 열정을 불어넣기

요약

13장 배움의 문화

잘못된 방향으로 동기 부여하기

배움의 문화 만들기

북 클럽에 가입하기

테크 런치 진행하기

그룹 토론회에 참여하기

업무 교환하기

얼마 동안만 업무 교환하기

그룹 코드 리뷰하기

코딩 실습하기

사용할 기술은 가능한 자유롭게 선택하기

내부 학습 모임을 만들기

회사에서의 펫 프로젝트 시간을 허용하기

외부 기술 커뮤니티와 교류하기

아무도 참여하려 하지 않는다면

모범을 보여라

관심을 보이는 사람들에게 집중하라

강제하지 마라

모두를 변화시키려 들지 말라

모임에 대한 약속을 제때하라

허락을 구하지 마라

투덜대지 마라

리듬을 만들라

요약

14장 기술적 변화의 실행

회의론의 종류

준비

기술적 변화를 시작하는 방법

신뢰를 쌓으라

전문성을 확보하라

모범을 보여 사람들을 이끌라

신중하게 싸울 곳을 정하라

점진적으로 반복, 관찰, 수용하라

두려움과 자신감 부족

상사를 설득하는 방법

팀이 TDD를 수용하도록 설득하는 방법

회의론을 상대하는 방법

상아탑 아키텍트

권한과 책임

피해망상

이 모든 것을 다 챙겨야만 하는가

요약

15장 실용주의 장인정신

품질은 선택사항이 아니다

좋은 품질은 비싸고 시간이 오래 걸릴까

테스트 주도 개발이 항상 필요할까

리펙토링

소프트웨어 개발 방법의 한 가지 예

비즈니스 돕기

단순하고 빠른 솔루션

소프트웨어 프로젝트는 우리를 위한 것이 아니다

비범함과 평범함

단순한 설계를 위한 네 가지 원칙

디자인 패턴

패턴을 위한 리펙토링

장인정신과 실용주의

요약

16장 소프트웨어 장인으로서의 커리어

장인의 길

정직과 용기

커리어의 진전

다른 커리어 사다리

여정과 이정표

커리어 만들어 나가기

원하는 바를 모른다면 어떻게 해야 할까

다양성

소프트웨어 장인의 사명

부록 소프트웨어 장인정신에 대한 오해와 설명

소프트웨어 장인과 소프트웨어 개발자

장인정신 != 엘리트주의

견습생, 숙련공, 마스터

마스터 장인

근시안적 개념으로 보는 시선

장인정신과 XP

실행 관례와의 관계

애자일 코치와 관리자

소프트웨어 도제 제도

비유로 인한 문제

Comments