산드로 만쿠소 /길벗 출반사 / 2015.09.25


  • [ 배경 ]
    • 지인의 추천으로 프로그래머 삶의 정신을 이야기하는 소프트웨어 장인이라는 책을 추천받았습니다. 책을 읽으면서 감명 깊은 곳이 여러 부분 있어서 이렇게 블로그에 책을 정리하게 되었습니다. 책의 목차에 대해서 설명드리겠습니다.
  • 1부 이념과 태도
    • 1장 21세기의 소프트웨어 개발
    • 2장 애자일
    • 3장 소프트웨어 장인정신 4장 소프트웨어 장인의 태도
    • 5장 영웅, 선의 그리고 프로페셔널리즘
    • 6장 동작하는 소프트웨어
    • 7장 기술적 실행 관례
    • 8장 길고 긴 여정

  • 2부 완전한 전환
    • 9장 인재 채용
    • 10장 소프트웨어 장인 면접하기
    • 11장 잘못된 면접 방식
    • 12장 낮은 사기의 대가
    • 13장 배움의 문화
    • 14장 기술적 변화의 실행
    • 15장 실용주의 장인정신
    • 16장 소프트웨어 장인으로서의 커리어

  • [ 과정 ]
    • 이책은 평범한 개발자가 수십 년 동안 개발 현장을 누비면서 겪은 경험담과 조언이 녹아있습니다. 요약하자면 애자일과 소프트웨어 장인 정신에 대해 언급하고 있습니다. XP, 스크럼 등 애자일 방법론들에 대해 자세히 알게 되는 계기가 되었습니다.
    • 책을 읽으면서 그저 시키는 대로 따라 하는무늬만 개발자가 아닌, 고객을 만족시키면서 스스로 자부심을 가질 만한 코드를 짜야겠다는 생각이 들었습니다. 대장장이가 온 힘을 다해 공예품을 만들듯이 개발자도 부끄럽지 않은 소프트웨어를 만들어야 한다고 저자는 말합니다. 유지보수가 어렵고 알아보기 힘든 쓰레기가 아닌, 장인의 작품으로 만드는 것이 우리의 사명이라고 강조합니다. 
    • '애자일이라 쓰고 무한 수정이라고 읽는다'라고 말할 정도로, 고객과의 피드백 루프가 생각처럼 되지 않을 수도 있고, 테스트 코드를 먼저 작성하는 TDD나 팀원과 짝을 지어 코딩하는 페어 프로그래밍이 한국 정서나 상황에는 맞지 않을 수 도 있습니다. 또한 적극적인 마인드로 이를 수행 하려는 사람이 없다면 더욱 힘들 수 있습니다. 때문에 장인정신의 중요성은 잘 알고 동의하지만, 이를 적용하라면 변수가 많기 때문에 쉽지 않은 것이 현실입니다.

    • 그렇지만 현실이 이상과 다르다고 도입이 어렵다고 손 놓고 포기하는 것이 아니라는 게 저자의 생각입니다. 저자 역시 이를 해결하기 위한 보다 나은 코드, 개발 문화와 환경을 개선하기 위해 노력하는 것이 장인의 역할이 아닐까? 생각이 듭니다. 곁에 두고 싶은 책이었습니다.

 


  • [ 결과 ]
    • 장인은 일종의 삶의 철학이다.
    • 우리의 삶 전체에 걸쳐서 최선을 다해 역량을 마스터할 과업으로
    • 소프트웨어 개발을 선택한 것이다.

  • [ 성과 ]
    • 제가 느끼는 유지보수가 쉬운 코드는 담당자가 아닌 다른 개발자가 보더라도 소설책 읽듯이 읽히고 전체적인 구조가 한눈에 보이고 추가 비즈니스 로직이나 모듈이 쉽게 만들어지는 코드라고 생각했습니다. 

    • 코드상에서 이게 가능하려면 코드 컨벤션이 지켜져야 하며, 해당 코드를 관리하는 팀 구성원 모두가 개발 문화를 긍정적으로 생각하며 서로 피드백을 주며 피드백 내용을 주기적으로 업데이트해야 한다고 생각합니다.
    • 개발 문화의 구체적인 예시를 들자면 '자동화'라는 키워드가 생각납니다. 단기적으로는 자동화를 하기 위해 개발 비용이 많이 들 수 있지만 장기적으로는 개발 코스트가 적게 듭니다. 요즘 스타트업이나 핫한 IT 개발 회사들은 CI/CD, 코드 품질 툴, 코드 관리 툴인 git, gitlab, jenkis, 아틀란트사의 버킷 등을 사용하는 이유가 여기 있다고 생각합니다.  

    • 자동화 툴을 사용함으로써 언제든지 이전 버전으로 복귀, 배포, 브랜치와 별도 개발 등이 가능해짐에 따라 프로젝트 안에 공동작업 시 충돌이 최소화되고 이슈 단위별 브랜치를 생성하기에 개발 의존석이 적어집니다. 즉,
      개발 코스트가 적어지고 코드 생산성이 증가합니다. 
      버그를 수정하고 배포 브랜치에 머지하면 자동으로 배포 환경까지 release 되는 구조가 그 예시입니다. 

+ Recent posts