GitLab 및 여러 기업은 페어 프로그래밍(짝 프로그래밍)을 통해 혼자 해결하기 어려운 과제들을 해결해 나가고 있습니다. 이 글에서는 페어 프로그래밍이 무엇이고, 어떤 장점이 있는지 확인해보고, 또 원격 페어 프로그래밍의 장점 및 적절한 활용을 위한 4가지 팁을 알아보겠습니다.

페어 프로그래밍의 개념과 이점

페어 프로그래밍이란?

페어 프로그래밍은 두 명의 개발자로 구성된 팀이 각각 개별적인 역할을 맡아 수행하는 민첩한 협업 소프트웨어 개발 방식입니다. 역할은 드라이버(driver)와 내비게이터(navigator)로 나누어집니다. 드라이버는 컴퓨터에서 직접 작업하고 내비게이터는 전체 프로그래밍 방향에 집중합니다. 필요에 따라 두 팀원 간 역할을 전환할 수 있습니다.

페어 프로그래밍은 애자일 방법론의 목적으로, 빠르고 효과적인 소프트웨어 개발을 위해 사용됩니다. 이 방식은 개발자 간의 협업과 효율성을 높이며, 코드 품질을 향상합니다.

페어 프로그래밍의 장점

단순한 업무 그 이상입니다.

페어 프로그래밍은 업무 외의 삶에 관해 이야기할 기회를 제공합니다. 사적인 대화를 나누면 팀원들 간의 사교적인 측면이 생기며, 이는 어려운 과제를 해결할 때 아이디어를 던져줄 사람이 생기는 긍정적인 효과를 줍니다.

문제를 더 명확하게 볼 수 있습니다.

혼자 하는 프로그래밍은 자신의 판단에만 의존하게 됩니다. 반대로 짝을 지어 프로그래밍하면 팀원들과 이야기하면서 다양한 아이디어를 교류하고 새로운 해결 방법이나 놓칠 수 있던 부분을 점검할 수 있습니다.

지식을 공유할 수 있습니다.

페어 프로그래밍에서는 서로 다른 분야의 전문가인 엔지니어가 함께 힘을 합쳐 하나의 문제를 해결합니다. 그래서 서로 다른 엔지니어와 대화하는 것만으로 다양한 지식을 습득하고 흡수할 수 있습니다.

최상의 솔루션에 도달할 수 있습니다.

티켓 페어링을 통해 문제 해결 방법을 찾고 지식을 공유하며, 대화를 효율적으로 진행하고, 작업 범위를 파악할 수 있습니다. 티켓을 페어링할 때는 필요한 정보를 한 번에 요청하는 것이 좋습니다.

그 외의 장점

  • 코딩 실수 횟수가 감소합니다.
  • 전반적으로 더 나은 개발자가 됩니다.
  • 다른 숙련된 개발자로부터 배우고, 프로젝트 중 발생한 실수로부터 배울 수 있습니다.
  • 더 나은 협업 기술을 구축하는 것에 기여합니다.

이 시스템은 또한 애자일 프로젝트 구조에 따라 개발 프로젝트를 더 작고 구체적으로 정의된 작업으로 나눕니다.

원격 페어 프로그래밍의 장점

원격 페어 프로그래밍은 협업의 한 형태로, 시간을 절약하면서 더 나은 환경에서 작업을 할 수 있습니다. 화면 공유를 통해 더 쉽게 작업할 수 있으며, 원격에서는 무엇을 어떻게 보고 있는지 더 잘 제어할 수 있어 오히려 직접 만나서 작업하는 것보다 원활한 작업을 할 수 있습니다.

페어 프로그래밍을 최대한 활용하는 4가지 팁

1. 페어링 시기 파악하기

고립된 공간에서 방해 없이 혼자 작업할 수 있다면 집중은 잘될 것입니다. 그러나 문제가 생겼을 때 대화할 상대가 없다면 이는 일을 더욱 어렵게 만들 것입니다. 도전 과제에서 아무런 진전이 없다면 아마도 페어링을 해야 할 때입니다.

2. 명확한 의제를 가지고 참여하기

모든 사람의 시간을 지키기 위해 페어링을 하기 전에 사전 준비를 잘 하는 것이 좋습니다. 의제를 미리 정하고 작업할 세션도 예약해야 합니다. 특히 의제는 미리 정해야 합니다. 그래야 문제를 이해하는데 충분한 시간을 확보할 수 있기 때문입니다. 그렇지 않으면 20분 동안 과제나 버그 보고서를 읽다가 함께 작업할 내용을 진행하지 못할 수도 있습니다.

3. 한 번에 하나씩 버그 해결하기

버그를 해결하려면 한 번에 한 가지 문제씩 해결하고 재현을 시도합니다. 문제가 서로 연결되어 있다고 생각되면 두 개 이상의 문제를 동시에 해결하려고 시도하고 싶을 수도 있지만, 첫 번째 문제를 해결하기 전까지는 알 수 없습니다.

4. 자신있게 의견 말하기

원격 또는 대면 페어링 시에도 마찬가지입니다. 자유로운 대화는 문제의 근원을 더 빨리 파악하는 데 도움이 됩니다. 의견을 말하는 것을 두려워하지 않아야 합니다. 잘못된 것이 있더라도 문제의 원인을 제거하는 데 도움이 될 수도 있고 대안적인 아이디어가 떠오를 수도 있습니다.


본 포스트는 영문 포스트를 우리말로 번역하고 요약 및 내용을 추가한 글입니다.