Thoughts2009.08.31 09:42
요즘 업체와 공동 연구/개발 과제를 진행하고 있습니다.

공동 연구/개발 과제를 진행함에 있어서 최근에 느꼈던 점들을 간단하게 정리해 보겠습니다. (제가 갑의 위치이고, 공동 연구 과제를 진행하는 타 업체가 을의 관계입니다. 그러니, 제가 요구사항을 주고 그 쪽에서 그 요구사항에 맞추는 관계에 가깝습니다.)

제가 이분들과 작업을 함에 있어, Agile 적으로 진행해보려고 했습니다만, 아마 그 분들은 제가 그러고 있는지도 눈치를 잘 못채셨을 겁니다. 그냥 좀 다른 식으로 프로젝트 관리를 하는구나... 하셨겠죠. 굳이 강제한 부분이라면 일일 빌드 서버를 만들어 달라, 뭐 그정도였습니다.

1. 실무자와의 미팅에서 Pair Programming이 특히 효과적이다.

개발을 진행할 경우에, 실무자와의 미팅이 가장 중요합니다. 양쪽이 공동 개발을 진행하는 경우, 코드의 독점적인 소유권을 주장하여야 하는 부분에 있어서는 선을 지킬 필요도 있습니다만, 그렇지 않은 부분에 있어서는 실무자와 자주 대화를 갖는 것이 중요합니다. 미팅 시간은 가능한한 짧게 하고, 이슈가 되는 부분에 대해서는 집중적으로 토론을 하는 식으로 진행하여, 가급적 회의 시간이 한 시간이 넘지 않도록, 부드러운 분위기에서 진행될 수 있도록 했습니다.

이 과정에서 필요할 경우에는 Pair Programming을 진행하여 코드를 상호 검토했습니다. 가능하면 개발 쪽에서는 코드 수준에서 대화가 이루어지도록 신경을 썼습니다. 그러다보니 코드에 대한 상호 이해도가 높아져 시간이 흐르자 더욱 편안한 분위기에서 대화를 진행할 수 있었습니다.

Pair Programming이 어느 정도 익숙해지자 나중에는 전화로도 코드를 상호 검토할 수 있게 되었습니다만, 아무래도 실험 환경이 갖추어져야 확인할 수 있는 버그는 원격지에서 상호 검토하기가 어려웠습니다. 그런 부분은 어떻게 해결해야 할 지 좀 더 연구를 해 보아야 할 것 같습니다.

2. 일정을 맞추는 데는 1주 단위의 이터레이션이 효과적이다

9월 초까지 개발을 완료해야 한다는 압박때문에 1주 단위로 이터레이션을 진행한 부분이 있었습니다. 매주 이슈를 확인하고, 매주 일의 우선순위를 재검토했습니다. 다행히 우선순위가 자주 바뀌는 일은 없었습니다만, 그래도 매주 결과물을 확인하고 진도를 재검토했기 때문에 모두 긴장감을 유지하면서 작업을 진행할 수 있었습니다. 1주가 효과적으로 먹힐 수 있었던 데는 프로젝트에 참여햇던 개발자의 역량이 뛰어났던 것도 한 몫을 했겠습니다만, 매주 시연을 하고 결과물을 확인할 수 있었던 것은 아무래도 초기부터 '매주 결과물을 시연한다'는 원칙을 세우고 작업을 했기 때문에 가능했던 일일 것 같습니다. 덕분에 개발 시스템은 언제나 '통합 가능한 상태'를 유지할 수 있었습니다.

문서를 만든다거나 하는, 개발자에게 자칫 부담으로 다가올 수 있는 부분은 제가 최대한 지원하고, 남은 부분을 그쪽에서 매꿔 넣는 식으로 결과물을 만들어 냈습니다.

3. 제품 책임자(Product Owner)는 가능하면 갑과 을이라는 관계를 잊어야 한다

'마이클 콘'도 저와의 개인적 서신에서 언급한 바 있습니다만, 제품 책임자는 제품의 성공을 담보할 책임을 지는 사람이지 갑과 을의 관계를 관리하는 책임을 지는 사람이 아닙니다. 갑과 을이라는 관계는 잠시 잊고, 공동선을 추구하는 것이 바람직합니다. 가급적이면 실무에 직접 뛰어들 수도 있는 역량을 가져야 하고, 외부로부터의 갑작스러운 요구사항 변동을 적절한 수준에서 차단할 영향력도 가지고 있어야 합니다. 특히 제품 개발에 있어서 '추가될 기능의 우선순위'를 정하는 데 영향력을 행사할 수 있어야 합니다.

그래야 원활한 프로젝트 진행이 가능해 집니다. 특히 제품 책임자로서 사람들과 대화를 할 때는 가급적 NVC 원칙 (Non-violent communication) 원칙을 지키도록 해야 합니다. 대화에 감정이 끼어들기 시작하면, 소통이 불가능해집니다. 일이 꼬이고 있다면, 가급적 그 책임은 자신에게 있다는 자세를 가질 필요도 있습니다.

- - -

요즘 머리가 아픈 일이 많아서 블로그 업데이트를 잘 못했습니다. 체중도 현재 63키로입니다. (제 키는 171입니다) 운동 중독증에 가깝게 운동을 해 댄 탓도 있겠습니다만, 식사를 제때 못하거나 건너뛴 탓도 있는 것 같습니다. 가끔 들러 제 글을 기다려주신 분들께 사과말씀 드립니다.

개인적인 문제도 있습니다만, 요즘 프로젝트 일정이 너무 빡빡합니다. 9월 8일로 예정된 시연도 차질 없이 준비해야 하고요.
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. soultemple

    고생한 만큼의 결과가 나올때 기쁜거죠. 마무리 잘하시고 유익한글 남겨주시길 ...

    2009.08.31 13:06 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 재미있는 프로젝트네요.
    좀 더 많은 프로젝트가 재미있어지면 좋겠는데요...^^

    물론, 일일빌드 성공, 1주의 이터레이션, 짝프로그래밍의 적용이
    개발자에게 상당한 부담이 될 수도 있을 것 같습니다.
    중간에 한눈 팔 수 없게 하니까요...^^

    2009.09.01 10:37 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 그래서 많은 부분을 개발자의 자율에 맡겼습니다. 간섭은 최대한 배재하려고 했죠. (간섭하기도 힘든 상황이었습니다만...) 어쨌든 좋은 결과를 얻고 있습니다.

      2009.09.01 13:53 신고 [ ADDR : EDIT/ DEL ]
  3. 수고하셨습니다. 후배들에게 사례로 언급해도 될까요?

    2009.09.05 14:31 신고 [ ADDR : EDIT/ DEL : REPLY ]
  4. 비밀댓글입니다

    2009.12.10 13:51 [ ADDR : EDIT/ DEL : REPLY ]