Pair programming이란, Agile software development technique의 하나로 두명의 개발자가 짝이 되어 한명이 Driver가 되어 키보드로 코드를 작성하고, 한명이 Navigator가 되어서 코드의 방향성을 제시하고 리뷰하는 방식을 말합니다.
Agile의 핵심인 협력과 피드백의 중요성이 커짐에 따라 더욱 자주 공유하고 소통하는 개발자의 가치가 빛을 발합니다. 누구나 처음부터 소통을 잘 하는 개발자일 수는 없기에 Pair programming을 통해 서로의 커뮤니케이션 능력을 키우고 생산성 향상 및 개발자의 역량 강화에 큰 효과를 얻을 수 있습니다.
구체적인 방법은 짝이 된 두 사람이 Navigator와 Driver 역할을 번갈아 가면서 하되, Navigator는 좀 더 높은 수준의 문제를 고민하는데 집중을 하고 Driver는 작은 목표를 빠르게 해결하여 구현하는데 집중합니다. 그리고 Navigator는 사소한 Syntax에러 등은 바로 피드백을 주어 해결하도록 하고, 잘못된 접근 방향 등 큰 문제들인 경우에는 적어 두었다가 Driver가 코드 작성을 완료한 이후에 수정을 제안합니다. 한편 Driver는 Navigator가 제시한 문제 해결 방향으로 구체적인 방법을 스스로 생각하면서 코드를 작성하고, 코드를 작성하는 이유를 항상 Navigator와 공유합니다.
또한 서로가 합의한 목표를 향해 제대로 가고 있는지 또는 목표 설정에 이상은 없는지 지속적으로 확인하는 과정중에 서로를 신뢰하고 존중하는 것은 물론이고 서로의 다른 실력과 속도를 맞추기 위해 때론 잠시 소통을 멈추기도 해야 합니다. 행여나 답답한 마음에 실력이 좀 더 나은 사람이 계속 Navigator를 하게되면 Driver 역할을 하는 사람은 문제 해결능력을 향상시킬 기회를 가지지 못하게 될 수도 있습니다. 오히려 실력이 좀 더 나은 사람이 Driver를 하여 Navigator에게 제안하고 힌트를 주는 것이 서로가 좀더 배울 수 있는 기회면에서 좋은 선택입니다.