2019년 11월 18일 월요일

소프트웨어 장인 책 메모

소프트웨어 장인

첫 전자책으로 구매한 책이다. 출퇴근 시간 지하철에서 읽었으며, 가볍게 읽기 좋았다.
책은 개발자의 태도에 대해서 써있다. 애자일,TDD, 페어프로그래밍의 도입과 적용에 대해 강조하고 있다. (실제 직접 사용,적용하려면 해당 주제에 대한 책을 구매해야할 것 같다.)
팀을 이끌 때 도움이 될 만한 글이 많은 것 같다.

  • 일을 어떻게 했느냐는 일을 해낸 것만큼이 중요하다.
  • 소프트웨어 장인정신은 소프트웨어 개발자가 스스로가 선택한 커리에 책임을 가지고, 지속적으로 새로 운 도구와 기술을 익히며 발전겠다는 마음가짐이다.
  • 코드도 처음 발견했을 때보다 더 깨끗하게 관리해야한다.
  • 시간이 없다는 말 은 더 이상 변명이 될 수 없다. 우리는 항상 시간이 있다. 우리는 모두 정히 같은 시간 만큼의 시간이 주어진다. 차이점은 우리가 그 시간을 어떻게 쓰느냐일 뿐이다.
  • 의도한 대로 동작할 수 없거나, 실행 불가능한 무리한 일정에 대해서 "아니오" 라고 답하는 것은 우리의 의무다.
  • 자동화된 테스를 만들고 활용하는 데 능숙한 개발라면 코드 디버깅을 해야 하는 상황이 매우 드물다.
  • 유지보수가 쉬운 깨끗한 코드는 개발속도를 높이고 버그가 만들어질 가능을 낮춘다. 이것이 리펙토링 의 비즈니스적인 가치다.
  • Git에 익숙한지? Git이 이미 설치되어 있는지? 컴퓨터 설정이 어떻게 되어 있는지? 어떤 도구를 선호하는지? 프로젝트를 금방 시작할 수 있는지? 테스팅/목업 프레임워크가 이미 모두 가지고 있고 사용할 수 있게 설정되어 있는지? 업무 외 시간에도 코딩을 하는 개발자라면 이러한 것들이 항상 준비되어 있어야한다.
  • (그룹코드리뷰하기) 특정 코드 부분이 개선의 여지가 많은지 아니면 모범사례로 공표할만큼 훌륭한지를 놓고서 동료들간에 논쟁한다.
  • 펫프로젝트에서는 자기 자신이 상사이고 다음 피처가 뭐가 될지, 그 피처를 어떻게 만들지 마음대로 결정할 수 있다. 더욱 중요한 것은 일정 데드라인이 없다.
  • 당신의 열정과 변화 의지에 모두 관심을 가질 것으로 기대하긴 어렵다. 변화를 수용하는 사람들에게 집중하자.
  • 단순한 설계를 위한 네가지 원칙
    • 모든 테스트의 통과
    • 중복의 최소화
    • 명료성의 최대화
    • 구성요소의 최소화