Search Results for '익스트림 프로그래밍'


2 POSTS

  1. 2008.01.22 조모임을 XP로 할 순 없을까 - [익스트림 프로그래밍] 4
  2. 2008.01.17 첫 번째 책을 집다 1

조모임을 XP로 할 순 없을까 - [익스트림 프로그래밍]

Posted 2008. 1. 22. 14:05 by 알 수 없는 사용자
사용자 삽입 이미지

이미지 출처: 한국 XP 사용자 모임 (http://xper.org/)


켄트 벡·신시아 안드레스, 2006. [익스트림 프로그래밍], 김창준·정지호 역, 인사이트.

이미 나온지 좀 된 책이고, 훌륭한 서평도 많이 나와 있다. 아래의 링크들을 참조하라.


이 책의 원제는 eXtreme Programming explained. 어떻게 하면 프로그램을 잘 만들어낼 것인가에 대한 책이다. 나는 프로그래머도 아니고 IT업계 종사자도 아니고 그냥 평범한 문과 대학생일 뿐이다. 그럼에도 이 책이 유효한 것은 XP가 '협업의 방법'을 이야기하고 있기 때문이다. "여러 사람이 모여 어떤 일을 할 때, 어떤 식으로 하면 훌륭하게 되는가"(남승희)에 대한 이야기. 꼭 프로그램을 하지 않아도, 직장생활을 하지 않아도 협업을 할 일은 많다. 동아리를 하든, 학생회를 꾸리든, 하다 못해 수업에서 조모임을 하든.

조모임은 쉽지 않은 일이다. 모르는 사람들과 만나서 팀을 이루고 제한된 시간 안에 주어진 과제를 해내야 하는 일. 팀원들을 공간적으로 묶어주는 끈도 (전업 직장인에 비해) 약하다. 그래서 종종 실패하기도 한다. '실패'란 조모임이 엎어진다거나 하는 일도 포함하지만, 대개는 한두사람이 프리라이딩을 하고 소수가 일을 떠맡아 고생하며 나머지는 어떤 일을 해야 할지 몰라 쩔쩔매고, 결과물로 지루한 발표와 짜깁기 보고서를 산출하는 것을 말한다.

실패하는 조모임은 다음과 같은 요건을 지닌다:

  • 분공을 나눈다
  • 얼굴을 맞대고 논의하지 않는다
    ex) 그럼 각자 주제를 게시판에 올려보도록 하죠. MSN에서 만나서 얘기하죠.
          단언컨대 온라인에서의 어떤 조모임도 오프라인만큼 강력하지 못하다.
  • 의사결정에 오랜 시간이 걸린다
  • 누구도 조장을 맡으려 하지 않는다
  • 책임의 분산, 눈치보기 등등

여하한 조모임적 인간관계에 진저리가 난 나머지, 핸드폰에 조원의 이름을 조모임1, 조모임2 식으로 저장해놓고 조모임 끝나면 지워 버린다는 친구도 있었다. 나름대로 팀웍을 배운다는 구실로 도입한 제도인데 이런 식으로 '사무적' 인간관계에 대한 냉소를 배워 나가면 곤란하지 않을까.

XP는 잘 돌아가는 프로그램을 만드는 것에 대한 이야기이기도 하지만, 결국 그러한 프로그램을 만들어내는 팀, 그리고 인간관계에 대한 이야기이다. 위에서 언급된 실패하는 팀의 공통점은 회피하고 있다는 것, 도망치고 있다는 것이다. 의사소통으로부터, 투명함으로부터, 평가로부터. XP는 그러한 팀에게 일정부분 고통일 수도 있을 것이다. "XP는 우리가 할 수 있는 게 무엇인지 공개한 다음 그걸 해내는 것에 대한 이야기"이며, 그것은 "노출되었다는 느낌을 받게 만들지도 모르"(p.23)기 때문에.

종종 이 책의 지적은 예리하고 아프다. 안락한 골방에서 열심히 일하는 사람에게도.
XP는 "나는 다른 사람들보다 똑똑하니까 내 능력을 최대한 발휘하려면 나를 혼자 내버려 두기만 하면 돼." 같은 사춘기적 앳된 자신감을 넘어서는 것에 대한 이야기다. (p.23)

자신을 보호하기 위해 뭔가를 유보해두는 오래된 습관은 사실 효과가 없다. 마지막 20%의 노력을 쓰지 않고 남겨두는 것이 나를 지켜주지는 않는다. ...... 인간관계에서 약간 거리를 두는 것, 일을 너무 적게 하거나 많이 함으로써 노력을 유보해 두는 것, 책임 소재를 한 번 더 흐리기 위해 피드백을 미루는 것, 이런 행동 가운데 어떤 것도 XP 팀에는 있을 자리가 없다. (p.28)

"일을 너무 많이 하는 것을 통해 주어진 것만 완벽하게 처리하고, 자신의 성실함을 무기로 팀과의 협업과 조율에 무관심할 수 있는 근거를 만든다" (p.28의 인용에 대한 코멘트, by 대마왕)
결코 개인의 뛰어난 역량이 중요한 것이 아니다. 그러한 경우에 협업은 종종 착취관계로 비화되기도 한다. 요는 어떻게 좋은 팀을 만드느냐는 것이다.
절대 없어서는 안 될 프로그래머가 있다면 한시라도 빨리 그를 프로젝트에서 제거하라.
[프로그래밍 심리학], p.202
이 책은 '좋은 팀' 만들기에 대한 친절한 실천방법들을 제공한다. 짝을 이뤄 프로그래밍을 할 것, 짧은 시간 단위로 빌드하고, 통합하고, 자동화된 테스트를 사용할 것, 처음부터 완성된 설계도 대신 점진적인 설계방식을 가져갈 것 등등.  비프로그래머로서는 전부 이해하기 쉽지 않지만, 그 기저에 깔린 원칙들에 동의할 수 있다면 조모임을 진행하면서 곁에 두고 보면 좋을 책이다.

XP 의 각론들을 "요리책" 내지 잠언집처럼 챙겨 볼 필요도 있지만, 그것을 기계적으로 적용할 일은 아니다. "팀이 XP를 하고 실패한다면, 그것은 팀이 순수한 폭포수 모델을 사용해서 성공하는 것보다 좋지 않은 일이다. 우리의 목표는 성공적이고 만족을 주는 인간관계와 프로젝트이지, XP 클럽 회원이 되는 게 아니다."(p.208)

그보다는, 나 같은 문돌이/제너럴리스트에게는 더더욱, 실천방법 너머에 있는 가치들을 기억할 필요가 있다: 의사소통, 단순성, 피드백, 용기, 존중. "원하는 바가 무엇이고 할 수 있는 것이 무엇인지, 할 수 없는 일을 할 수 있게 하기 위해서는 무엇이 필요한지를 훤하게 드러내는 것, 그러기 위해 최대한 단순하고 효율적인 것, 언제나 말할 수 있는 것, 요청할 수 있는 것, 믿을 수 있는 것".(남승희)

그런 의미에서 이 책의 첫 문장은 의미심장하다. "익스트림 프로그래밍은 사회적 변화에 대한 것이다."(p.23) XP는 우리의 조모임에도 '사회적 변화'를 가져올 수 있을까? 협업과 팀웍의 문제로 고민하는 대학생들에게 일독을 권한다.


PS #1
조모임에의 참여가 소극적인 이유는 그것이 단지 소모적이고 일시적인 관계로 생각되기 때문이기도 할 것이다. 물론 강의 기획 차원에서 수업과 좀더 통합된 팀활동을 조직하고... 류의 노력도 필요하겠지만, 이런 얘기는 어떨까? :)
제 선배 중에서 학부 시절 조모임에 올인하다 만난 여학생과 결혼에 골인한 분도 있습니다. by qbio

PS #2
책을 읽으면서 가장 웃겼던 부분이라면 주저없이 아래 구절을 꼽겠다. ;)
프로그래머들이 호의와 성적 관심을 구별할 정도의 감정적 성숙을 이루지 못했다면, 자신과 성별이 다른 사람과 일하면서 팀의 이익에는 최선이 아닌 성적 감정을 느끼게 될지도 모른다. 만약 짝 프로그래밍을 하다가 그런 감정이 일어난다면, 자기감정에 책임을 지고 그 감정에 대처하기 전까지는 그 사람과 짝 프로그래밍을 멈추어라. (p.81)

첫 번째 책을 집다

Posted 2008. 1. 17. 03:03 by 알 수 없는 사용자
사용자 삽입 이미지

이미지제공 yes24



그것은 올해 11월쯤이었습니다. 너무 심히 매우 책을 안읽는 나를 발견하게 된 것은. 그때 페이퍼백 추리 소설을 두 달 동안 잡고 있었을 겁니다 아마. 그리고 생각했습니다. 아 이러다 큰일나겠구나. 이대로 멍텅구리가 돼버리겠구나. 그런 위기감을 공유하고 있던 주변의 한량들과 의기투합해 2개월에 걸친 대기획 끝에 이런 팀블로그를 만들게 되았습니다.

우리의 첫 번째 프로젝트는 project bibliothek (가칭).
도서관에는 많은 책들이 있어요. 정말 많은 책들이. 그러나 대학 생활을 하면서 우리는 그 중 몇 권이나 읽을 수 있을까요? 아니 몇 개의 서가나 뒤져볼 수 있을까요? 전공 따라 맨날 가는 데만 가다가 어영부영 졸업하기 십상이겠죠. 그래서 우리는 도서관을 한번 훑기로 했습니다. 십진분류법에 따라 000부터 900까지, 각 카테고리별로 매주 한 권씩 책을 읽고 서평을 쓰는 프로젝트입니다.

첫 주의 카테고리는 000, 총류.
간만에 산만한 백팩을 메고 학교 도서관에 들렀습니다. 총류에는 주로 전산/IT쪽 책들이 많지만, '총류'이니만큼 다양한 분야의 책들이 얽혀 있는 게 묘미입니다. 책에 대한 책들도 있고, 아니 세상에 이런 일이 류의 B급 미스테리서적, 저널리즘 책, 사회조사방법론까지 뭐 대중없습니다. -_-; 덕분에 한바퀴 돌면서 이런저런 책들을 집다 보니 대출한도를 금방 채워버렸네요.

어쨌든 제가 이번 주에 읽을 책은, [익스트림 프로그래밍] 입니다. 굳이 프로그래밍에 국한된 이야기가 아닌, "여러 사람이 모여 어떤 일을 할 때, 어떤 식으로 하면 훌륭하게 되는가"에 대한 해답을 찾고 싶어서랄까요. 즐거운 독서가 되었으면 좋겠습니다. 곧 서평으로 찾아뵙도록 하지요. :)