
소프트웨어 장인을 한단어로 요약하면 ‘열정’이다
가는 모든 직장, 프로젝트 하나하나가 투자이다. 커리어의 큰 목표를 향해 다가가는 단계다.
이 책은 인재를 채용하는 방법에 대해서도 기술한다. 나중에 팀 리더가 되어서 팀 운영, 면접을 해야할때 한번 더 읽으면 좋을 것 같다.
감상평 :
본격적으로 신입 자바 개발자가 되기 전에 개발자가 무엇인지에 대해 알 수 있었던 좋은 책이었다. 코딩은 혼자 하는게 아니라 여럿이서 하는 것이다. 고객을 만족시키는 전문가가 되고 싶다고 동기부여가 되었다.
1 소프트웨어 개발
개발자들은 다음과 같은 여럿을 할 수 있어야한다.
- 고객과 대화하기
- 테스트 / 배포 자동화하기
- 전체 비즈니스에 영향을 미칠 기술 선정하기
- 지리적으로 분산된 팀들과 협업하기
- 고객을 도와 필요한 작업을 정의하기
- 우선순위 선정하기
- 진척 상황 보고하기
- 변경사항과 기대일정 관리하기
- 잠재 고객 및 파트너에게 제품 소개하기
- 사전 영업 활동 지원하기
- 개발 일정과 비용 산출하기
- 채용 면접하기
- 아키텍처 설계하기
- 비기능적 요구사항과 계약 조건(SLAS) 검토하기
- 사업 목표 이해하기
- 주어진 여건에서 최적의 결정하기
- 새로운 기술 주시하기
- 더 나은 업무 방식 찾기
- 고객에게 가치 있는 상품이 전달되고 있는지 고민하기
애자일 매니페스토
https://agilemanifesto.org/iso/ko/manifesto.html
애자일 소프트웨어 개발 선언
애자일 소프트웨어 개발 선언 우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게
agilemanifesto.org
위의 애자일 매니페스토와 함께, 열두 원칙들이 있다.
2 소프트웨어 장인정신
소프트웨어 장인정신이란?
소프트웨어 장인정신은 소프트웨어 개발의 프로페셔널리즘에 대한 것이다.
즉 이는 마음가짐이자 삶의 자세이다. 커리어에 주인의식을 가지고 프로페셔널하게 행동한다. 다른 개발자들에게 배우고 지식을 나눈다.
소프트웨어 장인정신 매니페스토
동작하는 소프트웨어뿐만 아니라, 정교하고 솜씨 있게 만들어진 작품을,
변화에 대응하는 것뿐만 아니라, 계속해서 가치를 더하는 것을,
개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을,
고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를,
이 앞의 항목들(일반 굵기)을 추구하는 과정에서, 다음 항목들(볼드체)이 꼭 필요함을 의미한다.
‘동작하는 소프트웨어뿐만 아니라, 정교하고 솜씨 있게 만들어진 작품을, ’
- 소스 코드는 예측 가능하고 유지보수될 수 있는 상태여야 한다. 그래야 애플리케이션을 수정하고 진화한다.
‘변화에 대응하는 것뿐만 아니라, 계속해서 가치를 더하는 것을, ’
- 계속 가치를 더한다는 의미는 신규 기능 추가, 버그 수정만 뜻하지는 않는다. 코드를 깔금히 정리하고 구조를 개선하며 확장성을 높이고, 테스트 가능하게 하고, 쉽게 유지보수 할 수 있게 하는 것을 포함한다.
- 소트프웨어 생명을 늘리며 변화에 빠르게 대응할 수 있도록 유지하는 것이 주요 목표다. 그래서 좋은 설계, 자동화된 테스트 기술이 필요.
- 보이스카웃이 캠핑 장소를 처음 발견했을 때보다 더 깨끗하게 남겨두라는 규율이 있다. 코드도 처음 발견했을때 보다 더 깨끗하게 관리해야 한다. - 로버트 마틴
‘개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을, ’
- 멘토링과 공유
‘고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를,’
- 우리는 고용자/피고용자 관계가 아니다. 적극적으로 프로젝트의 성공에 기여한다. 질문하고 비즈니스 이해하고, 개선사항 제시하고 고객과 동반자 관계이어야 한다 . 그리고 고용주를 잘 고르자.
3 소프트웨어 장인의 태도
끊임없는 자기계발
독서, 많은 독서
블로그
기슬 웹사이트
팔로우할 리더 찾기
계속 훈련
카타
펫 프로젝트
오픈 소스
페어 프로그래밍
4 영웅, 선의, 프로페셔널리즘
실패할 것 같은데, 성공해서 영웅이되겠다는 말도 안되는 생각 하지말기
‘아니오’라고 못하는 것은 선의가 아니다. 정확히 정보 전달하고 요구해라.
프로페셔널리즘은 나와 다른사람들에게 정직함을 의미.
‘아니오’라고 할때 대안을 제시하면 좋다. 대안을 모르면 최선의 노력을 한다고 보여주기, 문제 대응이 어떻게 되는지 공유하기.
실용 주의 장인정신
kent beck's four rules of simple design

- 모든 테스트의 통과
- 중복의 최소화
- 명료성의 최대화
- 구성 요소의 최소화
위의 내용 말고도 이 책에는 높은 품질의 코드의 중요성, 커리어 정하기, 채용 방법, 면접자로서의 태도 등에 대해 많은 토픽이 있다.