티스토리 뷰

1장. 들어가는 글

원제: Apprenticeship Pattern, 2010년 초판, 인사이트

저자: 데이브 후버 / 애디웨일 오시나이 (Dave H. Hoover / Adewaile Oshiney)


1. 프로그래머의 길, 멘토에게 묻다: 1장 요약 <들어가는 글>

2. 프로그래머의 길, 멘토에게 묻다: 2장 요약 <잔을 비우다>

3. 프로그래머의 길, 멘토에게 묻다: 3장 요약 <긴 여정을 걷다>

4. 프로그래머의 길, 멘토에게 묻다: 4장 요약 <정확한 자기 평가>

5. 프로그래머의 길, 멘토에게 묻다: 5장 요약 <끊임없는 학습>

6. 프로그래머의 길, 멘토에게 묻다: 6장 요약 <학습 과정의 구성>

7. 프로그래머의 길, 멘토에게 묻다: 7장 요약 <맺는 글>

 

"기술을 습득하고 수련하는 것은 사람에게 천성은 아니며 그것 자체가 수련해야 할 또 하나의 기술임을, 소프트웨어 분야에서 일어난 장인정신 운동으로 말미암아 우리는 알게 되었습니다." -워드 커닝햄 (서평 중에서)
  • 견습과정은 기예를 통달하겠다는 필생의 열정을 서서히 불어넣는다는 점에서 중요하다. 이는 끊임없이 배우고자 하는 열정을 점점 쌓이게 하며, 그런 과정 속에서 견습생은 탁월한 개발자가 될 수 있다. - 피트 맥브린(Software craftmanship)
  • 저자는 새로운 언어를 배울 때마다 부서도 괜찮은 장난감을 만들며 익혔다.
  • 실력자들에게 무지를 드러내는 것은 꼭 필요하다.
  • 자신이 새롭게 습득하는 정보는 블로그에 기록했다. 기록하며 무지를 드러내기로 마음먹었다.
  • 소프트웨어 장인정신이란 무엇인가?

전통적인 장인정신

  • 기예, 장인정신, 견습생, 숙련공, 마스터가 있다.
  • 마스터는 작업장을 소유, 절대적인 권위를 지님
  • 엄격한 계층제도 하에 마스터 밑에는 숙련공들이 있음
  • 이들은 마스터로 인정받기 위해 '걸작' 만드는 것을 목표로 하는 장인들
  • 숙련공은 떠돌아다니며 다른 곳으로 기술을 전파하는 유일한 수단
  • 견습생들을 관리하기도
  • 견습생들은 마스터 밑에서 년씩 일하기도 . 분야의 기본적 기술과 가치를 이해했음을 증명하면 숙련공이

현실의 소프트웨어 세계

  • 하지만 위와 같은 체계는 지금과는 너무 다름
  • 이런 모델을 현대 사회의 변두리로 밀려나게한 실수를 반복하며 안됨
  • 과거를 단지 모방하기 보다는, 자유롭게 개선할 있는 현대적인 작업장 개념을 추구해야함

 

이 책에서 이야기하는 소프트웨어 장인정신의 비전

    • 고도로 숙련된 개인의 내재된 가치의 정수
    • 우리가 장차 출현하기를 고대하는 공동체에 대한 표현
    1. 실패를 통한 성장: 개인에게 일정한 재능이 주어졌다는 통념과 반대된다.
    2. 자기성찰: 부족함을 발견하고 변화해간다.
    3. 실용적: 오늘 일을 마무리하기 위해서라면 이론적인 순수함이나 앞날의 완벽한 준비는 기꺼이 양보하는 태도(독단적이기보다 실용적)
    4. 공유: 우리가 가진 지식을 쌓아두기만하고 희소하게 만들기 보다는 공유한다.
    5. 실험정신: 자신이 틀렸다고 증명된다해도 기꺼이 실험해보고자 하는 자세.
    6. 자신에 대한 책임감: 자신의 운명을 지배하고 책임지고자 하는 태도
    7. 그룹보다는 개인: 우리가 추구하는 변화는 세상이 아니라 우리 안에 있음, 따라서 책은 개인의 역량을 향상시키는 방법에 초점을 맞춤
    8. 다양성을 포용: 개발자, 공학자 등의 여러 스펙트럼을 존중
    9. 역량 중심: 높은 역량을 보유하는 것이 '올바른' 프로세스를 적용하는 것보다 중요

 

견습생이 된다는

    • 당신이 발전해 가면서 나은 방법을 찾아 가는, 그리고 좋고 세련되고 빠른 방법을 배우도록 만드는 사람, 회사 혹은 상황을 찾는 상태이자 과정
    • 우리는 세련된 겉모습보다 배움에 가치를 두고, 도전을 즐기고, 실수를 숙련에 이르는 수단으로 이용하도록 가르친다.
    • 견습과정의 방햐이나 진도는 당신이 정하겠지만, 멘토가 있는지 여부와 멘토의 수준 역시 당신의 장인정신에 영속적인 영향 미칠 것이다.
    • 당신이 어떻게 배워 나가고 있는지 알려면 무엇보다도 스스로를 키우는 법을 배워야 할 것이다. 이처럼 당신 자신과 성장의 필요성에 집중하는 것이 곧 견습생이 된다는 것의 요체다.

숙련공이 된다는

    • 당신이 여러 단계를 거쳐 발전해 간다 해도, 지난 단계에서 지녔던 특성은 그대로 계속 당신에게 남아있다.
    • 따라서 견습생과 마찬가지로 숙련공과 마스터도 자기 분야에서 배우고 성장하기 위한 내적 집중은 계속 유지할 것이다.
    • 숙련공에게는 집중해야 사안이 가지 추가된다. 바로 분야 전문가들을 잇는 연결이자 커뮤니케이션 통로다.
    • 전통적으로 숙련공은 여러 마스터들 사이를 옮겨다녔다.

마스터가 된다는

    • 견습생이나 숙련공이 맡던 역할은 물론이고, 스프트웨어 개발 분야 전체를 발전시켜 나가기 위한 일에 초점을 맞추게 된다.
    • 절정의 기술과 테크닉의 습득은 단지 시작일 뿐이다. 마스터는 그런 기술을 다른 이들의 역량을 향상시킬 있는 확대경으로 변화시켜야 한다.
    • 요약하면 마스터들은 우수한 기술을 습득하고 사용하고 공유하는 것을 소프트웨어 장인에게 가장 중요한 일로 여긴다.

 

"우리는 견습 개발자들을 양성하는 필요한 시간을 감수해야 한다. 왜냐하면 우리가 당면한 문제는 희소함이 아니라 풍부함에 있기 문이다. (중략) 오늘날 개발자들은 필요 이상으로 많지만, 좋은 개발자는 부족하다." - 피트 맥브린 (Software Craftmanship) p.93

 

견습과정은 전문적인 소프트웨어 개발자가 되는 법을 배우는 길이며, 이는 당신이 찾을 있는 가장 숙련된 소프트웨어 개발자처럼 되는 법을 배우는 길이다. 그러려면 좋은 교사를 찾고 곁에서 일하면서 배울 있는 기회를 잡아야 한다. 이것이야말로 어딘가 다른 소프트퉤어 전문가, 단순히 유능함을 넘어서고자 하는 프로페셔널이 되기 위한 여정의 걸음이다.

 

당신은 이제 패턴을 하나씩 배워가기 시작할 것이다. 패턴을 선택하고 조합해서 자신이 처한 유일한 상황에 무한히 많은 방식으로 적용할 주체는 결국 자신임을 기억하기 바란다.

 

견습과정은 당신의 경력에서 다른 무엇보다도 자신의 성장에 초점을 맞추게 되는 시기다. 시기는 자신의 학습 기회를 최대화하기 위해 금전적인 욕망은 잠시 접어두어야 하는 때다. 그렇기 때문에 때는 어느 정도의 이기심은 납득된다.

 

그리고 언젠가 시기가 끝나면, 무엇이 중요한지 다시 정리할 필요가 있다. 공부할 것이 여전히 많기는 하겠지만 당신은 이상 견습생이 아니며, 당신의 우선순위는 이제 자신이 아닌 다른 이들을 향해야 이다. 당신의 고객, 당신의 동료, 그리고 당신이 속한 커뮤니티에게로.

댓글