'페어 프로그래밍'에서 배워, '페어 기획'을 해보았습니다
'페어 프로그래밍', '페어 코딩'을 아시나요? '짝 코딩'이라고도 하더라고요. 페어 프로그래밍은 두 사람이 파트너가 되어 함께 코드를 작성하는 활동입니다. 개발자가 성장하는 방법으로의 페어 프로그래밍을 소개한 글이 있어 소개합니다. 페어 프로그래밍을 함께 하는 두 사람 중 한 사람은 내비게이터가 되어 방향을 설명하고, 다른 한 사람은 드라이버가 되어 코드를 작성합니다. 코딩을 하는 과정에서 계속 대화하며 서로의 지식을 공유하고 피드백하며 코드를 함께 작성해갑니다. 이 역할은 고정된 것은 아니고 정한 시간마다 바꾼다고 해요. 무엇보다 좋은 점은 함께 시행착오를 겪고 서로의 사고 과정을 실시간으로 지켜보며 조언해줄 수 있다는 점인 것 같습니다. 이 글에서 소개하기로 페어 프로그래밍에서 이상적인 페어는 실력이 비슷한 경우라고 합니다. 하지만 실력 차이가 있더라도 얻을 수 있는 점 역시 소개하고 있는데요. - 일을 계속 같이 할 동료와 코딩 스타일을 더 빨리 맞출 수 있다는 점. - 같이 공유한 암묵적 지식으로 이후 논의할 사항이 줄어든다는 점. 등이 핵심적인 장점으로 생각됩니다. 장점이 많은 페어 코딩을 실제로 개발 문화로 만들기는 어려운 일이라는 이야기를 다른 동료로부터 들은 적이 있습니다. 제가 다녔던 이전 회사에서는 개발 멤버들이 주기적으로 페어 프로그래밍을 하고는 했어요. 간혹 페어 코딩 기간이라고 하며 오순도순 나란히 앉아 많은 대화를 나누시더라고요. ----------- 현재 회사에서 서비스팀을 만들고 꾸려가면서 팀에 합류한 서비스 기획 담당자와 함께 산출물을 만들며, 팀 빌딩, 일하는 방법 만들기, 업무 프로세스 만들기 등 동시에 해야할 일이 많았어요. 당연히 (스타트업으로써) 사람은 적었고, 게다가 목표 일정은 정해져 있었고요. 기획 리뷰는 하고 있었지만, 좀 다른 좋은 방법은 없을까 고민하던 중 이전 회사에서 보았던 페어 코딩이 생각났어요. 그래서 시도해보았습니다 '페어 기획'! 저와 기획 담당자는 경험과 실력의 차이가 꽤 많이 나기 때문에 이상적인 페어라고 볼 수는 없지만, 동시에 해야할 저 많은 일들을 한 번에 챙길 수 있는 거의 유일한 방안이라 생각했어요. 기획 해야할 작은 목표를 가지고 담당자가 고민할 며칠의 시간을 가진 뒤, 약속한 페어 기획 시간에 나란히 앉았어요. 담당자가 고민한 내용을 토대로 기획을 어떻게 풀어냈는지 설명하면, 제가 그것을 기획서에 직접 반영했어요. 그러면서 '사토라레' (=Think aloud)처럼 그것이 어떤 맥락에서 어떻게 접근하고 어떻게 작성되는지 밖으로 말하며 적어나갔어요. 그 과정에서 접근 방법에 대한 아이디어와 방안을 담당자가 이야기하면 서로 동의되는 점, 반론, 더 좋은 방안을 이야기하며 기획서를 적고, 수정하며 만들어 나갔답니다. 페어 프로그래밍에서 권장하는 것 처럼 주도권을 완전히 번갈아 가지는 방식은 활용하지 못했지만, 함께 기획서를 적어나갔기 때문에 실질적인 생각법과 고민할만한 관점들을 실제로 맞출 수 있었어요. 또한 나란히 앉아 함께 고민하고 함께 산출물을 작성해나간 경험이 팀 빌딩에도 좋은 영향을 끼쳤어요. 그 주와, 그 달의 회고에서 페어 기획이 좋은 경험이었고 성장 기회였다는 이야기가 나왔답니다. 소개한 글에서도 페어 프로그래밍을 통해 실력도 팀워크도 한 단계 도약할 수 있다는 말로 끝맺고 있는데 매우 동의가 됩니다. ----------- 페어 프로그래밍을 옆에서 언뜻 본 기회로 현업에서 의미 있는 시도를 해볼 수 있었어요. 페어 프로그래밍에 대한 자세한 소개는 아래 추천 콘텐츠의 링크를 확인해 주세요. 저도 이 글을 더 미리 접할 수 있었다면, 주도권을 완전히 번갈아 가지는 방법도 시도해보았을 것 같네요!