거침없이 XP?

얼마전에 XP의 원칙과 가치에 대한 글을 올렸는데, 이번에 ‘거침없이 XP’라는 사내 XP 토론회에 참가하게 되어 다시 한번 ‘Extreme Programming Explained’ 책을 읽고 내가 쓴 지난 글을 읽어 봤다. 간단하게 정리한다고 썼던 지난 글도 다시 읽어 보니 수 많은 원칙과 가치가 길게 나열되어 있을 뿐 실질적인 느낌이 잘 전달되지 않았다.

다른 개발 방법론과 달리 XP는 팀 구성원 모두가 공통의 가정을 기반으로 해야 한다. 켄트 벡이 생각하는 공통의 가정은 다음과 같다.

  • XP는 여러분이 자신을 팀의 일부로 생각한다고 가정한다.
  • XP는 여러분이 다른 사람들과 함께 일하고 싶어 한다고 가정한다.
  • XP는 여러분이 성장하고, 능력을 계발하고, 관계를 발전시키기 원한다고 가정한다.
  • XP는 이런 목표들을 이루기 위해 여러분이 기꺼이 변화를 감수하리라고 가정한다.

당연해 보이지만 실제로 모두가 이 가정에 맞게 행동하고 있다고는 생각하지 않는다. 즉, 원칙과 가치를 공유하기에 앞서 이 가정 자체가 틀리다면 XP는 팀이나 조직에 성공적으로 정착할될 수 없다는 것이다. (사실 능력 계발만 하더라도 본인이 지속적인 노력을 하고 있어야 그 가정이 맞다고 할 수 있다.)

개인적으로 XP의 가장 중요한 특징은 개발이라는 업무를 좀 더 풍요롭고 즐거운 경험으로 바꿔줄 수 있는 능력이라고 생각한다. 예를 들어 XP에서 중요하게 여기는 ‘개선’, ‘반성’ 등의 가치는 ‘지속적 통합’, ‘Pair Programming’, ‘근본 원인 분석’ 등의 실천 방법을 통해 개발자의 실패에 대한 스트레스를 줄여준다. 동시에 새로운 업무에 대한 부담을 감소시켜주고, 실패를 새로운 것을 배울 수 있는 기회로 만들어준다.

또한 ‘다양성’의 가치는 재미있는 팀을 구성할 수 있게 해준다. 현재 내가 담당하고 있는 파트의 파트원을 선택해야 하는 경우 항상 이 ‘다양성’을 첫번째 기준으로 삼고 있다. 성비가 균형을 이루고 다양한 백그라운드를 가지고 있는 사람들이 모였을 때 하나의 문제에 대해 다양한 해결책이 나올 수 있고 서로가 서로를 보완해줄 수 있다.

결국 모든 것은 ‘사람 문제’이지만 XP는 구체적인 실천방법을 통해 그 가치를 추구할 수 있는 방법을 알려주고 있기 때문에 개발 업무의 유용한 방법론으로 자리 잡게 된 것 같다. 이런 의미에서 XP에서 설명된 첫번째 가치가 ‘의사소통’이고 첫번째 원칙이 ‘인간성’인 것은 시사하는 바가 크다고 생각한다.

PS) 소식이 궁금한 분들을 위해서….
사실 G사가 원하는 영역과 제가 잘 하고자 노력한 영역은 불일치하는 부분이 많습니다. 결국 일치하는 영역을 좀 더 늘린 후 다시 면접을 진행하기로 했습니다. Final Interview을 진행할 Mountain View의 engineers가 비전공에 C도 모르는 개발자를 선택하진 않을 테니까요.
결국 2달 정도 C를 공부하게 됐네요. 이 공부할 팔자라니…. :)

This entry was posted in Software & Developer and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

5 Comments

  1. 성.게군
    Posted 2007/06/25 at 11:19 am | Permalink

    1. xp는 개인적으로 훌륭한 개념이고 주장이지만,
    늘 느끼는 한계는 개발에만 국한한 의미로만 해석하는게 아쉬워요..
    한국에선 PM을 기획파트에서 주로 하는데 그들과 우리와의 소통이 되어야 하고,
    또한, 그들과 같이 해야 하는 것인데, 말이죠,,,

    2. -_- c.. 스터디 개설????????? 만들면.. 성게군 참가…

  2. Posted 2007/06/25 at 12:02 pm | Permalink

    1. 기획자가 PM인 한국 문화에서는 XP 적용의 어려움이 있는건 사실이죠. 하지만 기획자와의 의사소통에도 ‘User Story’나 ‘일일빌드’, ‘짧은 주기’ 등이 많은 도움이 된다고 생각합니다. 공통의 언어를 만드는게 중요하죠.

    2. C는 우선 혼자 공부하려구요. pointer만 확실히 이해하면 다른 언어적 특징은 어렵지 않게 이해되지 않을까 생각중입니다. 그쪽 랩은 스터디 많이 안하나요??

  3. Posted 2007/06/25 at 3:44 pm | Permalink

    C 열공하삼-!
    뭐, 흔히 C는 포인터가 다라고 하는데…
    제가 느끼기에는 C는 메모리질이 다인 거 같아요.
    포인터 엄한 데 갈키고 있다가 viloation error 같은 거 나는 이유도
    scope 문제든, threading 오류든
    결국 메모리질을 잘못해서 그런 경우가 많으니까요.

    근데, 쓰다보니 본 내용인 XP에 대한 얘기는 하나도 없군요. ㅎㅎ
    잘 보구 갑니다. 계속 좋은 글 기대할께요.
    :)

  4. Posted 2007/06/25 at 4:58 pm | Permalink

    앗! C2 홈 사용자의 코멘트는 처음이네요. 반갑습니다.

    나름 C도 잼있네요. 예를 들어 짝수 체크를 하고 싶은 경우,
    Groovy 에서는 if(2.isEven()) 으로,
    Java 에서는 if(2%2 == 0) 으로,
    C 에서는 if(2 & 1) 이 되겠죠. bit 연산의 즐거움이랄까요? :)

    그런데 정말 XP 얘기는 없군요. ㅋㅋ

  5. Posted 2007/08/08 at 4:05 pm | Permalink

    더운날씨에 열심히 사시는 모습에 찬사를 보냅니다.
    전문분야가 아니라서 모르긴 하지만,
    좋은 결과 기대하며 응원을 보냅니다.^^

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>