[독후감]Extreme Programming – 켄트 벡

최범균님의 추천으로 Extreme Programming 책을 처음 접하게 되었다.

전부터 계속 Agile 방법론에 대해 궁금해하고 있던 찰나에 만나게 된 단비같은

책이다.

extreme programming

책을 읽기 시작한 후 부터는 손에서 놓을 수 없을 정도로 강한 흡입력을 보여준 책이다.

특히나 개인적으로 인상깊었던 부분은, XP 기본 실천방법 중 “짝 프로그래밍“과

10분빌드“의 조합이다.

둘이서 짝 프로그래밍을 하고 10분동안 전체시스템을 빌드하고 모든 테스트를 돌리는

그 10분이라는 시간동안 번갈아가면서 작업했던 내용들을 서로 대화하는 가운데

복기하고, 그 속에 서로 상대방에게 배우면서 성장해가는 모습을 머릿속에 그려보는 것은

생각만으로도 굉장히 매력적이고 유쾌한 일이었다.

물론, 서로간의 열정이 비슷하고 짝 프로그래밍을 하는데 부담을 느끼지 않아야 한다는

전제조건이 있어야 하겠지만 말이다.

짝 프로그래밍“을 한번도 경험해보지 않은 나로서도 처음엔 당연히 거부감이 있을 것

같지만, “짝 프로그래밍“에 저런 매력이 있다면 한번쯤 즐거운 마음을 가지고

도전해 보는것도 의미있는 일이 아닐까 생각해 보았다.

아니, 그런 환경을 만들고 도전해보고 싶은 마음이 이 책을 읽으면서 생겼다.

그 만큼, XP에선 “짝 프로그래밍“을 강조하고 있다는 얘기이다.

그리고 또 한가지 인상깊었던 것은 역시나 “자동화된 테스트“의 중요성이다.

이 책에선 XP의 기본적인 실천방법으로   “테스트 우선 프로그래밍“을 제시한다.

코드를 한 줄이라도 변경하기 전에 먼저 실패하는 자동화된 테스트를 작성하라는 것이다.

난 사실, TDD를 제대로 공부해 본 적도 없고 실무에서 활용한 적도 없지만

올해들어 자동화된 유닛테스트를 작성하면서 junit의 초록색막대를 보는 재미에 흠뻑

빠져있다. 그리고 유닛테스트를 작성하면 할 수록, 그것을 작성하는데 드는 시간이

결코 낭비가 아니라 내가 작성한 코드에 대한 결함을 줄이고,  이 코드가 정상적으로

돌아가리라는 믿음을 주어 점차 내 개발 프로세스의 핵심으로 자리잡고 있는 중이다.

그리고 더불어 TDD에도 관심을 가지고 공부하게 되는 계기를 만들어 주었다.

이런 가운데, XP에서 “테스트 우선 프로그래밍“의 항목을 보았을 때 절로 고개가

끄덕여지는 건 당연한 것이었다.

내가 이론적 지식이 없는 상태에서 경험으로 조금씩 체득한 것들을 XP에선 아래와 같이

테스트 우선 프로그래밍“을 했을 경우에 장점을 설명한다

  • 슬금슬금 늘어나는 범위 : 프로그램의 목적 명시화
  • 결합도와 응집성 : 결합도는 낮고 응집성은 높은 코드
  • 신뢰 : 작동하는 깨끗한 코드와 자동화된 테스트로 의도 드러내기
  • 리듬 : 테스트 – 코드 – 리팩토링 – 테스트 – 코드 -리팩토링

마지막으로, 이 책을 다 읽고 난 후의 XP의 초점을 생각해 본 내 나름대로의 결론은

결국엔 “사람“이었다.

서로 함께 앉아서 짝 프로그래밍을 하는 가운데 전체팀에서 소속감을 느끼고,

불필요한 프로세스를 줄이고 원활한 의사소통(분명하고 솔직한!)과 빠른 피드백을 통해

프로젝트를 성공적으로 이끄는 그 중심에 바로 “사람“이 있다는 것을 깨달았다.

XP에서는 아래와 같은 사람이 가치있는 직원이라고 말한다.

  • 다른 사람을 존중하는 행동을 한다.
  • 다른 사람과 잘 어울린다
  • 솔선수범한다
  • 자신이 약속한 것을 지킨다

이 책을 읽고 난 후에, 나 자신은 그 동안 얼마나 다른 “사람“을 존중하고 또 함께

성장하기 위해 무슨 노력들을 해왔는지에 대해서 반추해보는 좋은 경험이었다.

책 끝자락에 저자가 남긴 문구를 함께 공유하면 좋을 것 같아 남긴다.

“XP를 통해, 나는 스스로 존중받을 가치를 지니도록 일하고, 또 다른 사람들을 존중한다.

나는 기꺼이 최선을 다하면서 언제나 개선하려고 애쓴다.

나는 내가 자랑스럽게 생각하는 가치들을 믿으며 거기에 어울리는 행동을 한다”

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

w

%s에 연결하는 중