• 나도 짝코딩하면 정말 좋겠다(페어프로그래밍이란?)

    2022. 2. 8.

    by. 와트

    요즘 핫한 스타트업들을 보다 보면 '짝코딩'이 보인다.

    글들을 찬찬히 읽다 보면 개발자 둘이서 함께 어떤 기능을 수행하는 것 같은데, 대체 뭘까 싶어서 구글링을 해봤다.

     

    페어프로그래밍(Pair Programming)

    애자일 개발 방법론의 하나. 개발 가능한 PC에서 두 명의 개발자가 함께 작업하는 것. 네비게이터가 전략을 제시하고 드라이버가 실제 코드를 작성한다. 두 역할은 번갈아가며 수행한다.

     

    결과적으로 개발자끼리 티키타카하면서 한 기능을 함께 구현하는 것이다.

    그런데 차근차근 보니, 나도 비슷한 경험을 하긴 했었다.


    학원에서 팀 프로젝트를 진행할 때였다.

    당시 구성된 팀은 이전 프로젝트에서 앞서 프로젝트를 진행해 보았던 팀원들 4명에서 나, 그리고 새로운 팀원 1명이 함께한 모양새였다.

    자연스레 기존 팀원들의 프로젝트 진행 방식을 따르게 되었는데, 이게 짝코딩과 상당히 유사했다.

    1. 상대적으로 잘하는 팀원 1명과 다른 팀원 1~2명이 같은 팀이 된다.

    2. 하나의 기능을 함께 구현한다(우리는 디스코드 화면 공유 기능을 사용했다.)

    3. 한 명이 코드를 치고, 한 명은 함께 로직을 고민하며 기능을 만들어 간다.

     

    짝코딩과 다른 점은 네비게이터와 드라이버를 번갈아가며 수행하지 않는다는 것이었다.

    나의 경우 네비게이터를 수행했고, 결과적으로 회원가입, 결제 등의 기능을 다른 팀원들과 함께 구현했다.

     

    처음에는 이 방법에 대한 부담이 다소 컸다.

    나도 햇병아리 개발자고, 상대방도 햇병아리 개발자인데 내가 누군가의 코드를 짚어 문제점을 이야기한다는 것에 대한 망설임이 있었다.

    무엇보다 문제점을 제기한다고 제대로 해결책을 아는 것도 아니라서 이대로 괜찮은가 싶은 순간들이 있었다.

    초반의 나

    결과는 어땠냐고?

    만족스럽지 않았으면 글을 쓰고 있지도 않았을 것이다.

     


     

    한방향 짝코딩을 하면서 얻은 것이 참 많다.

     

    1. 의사소통의 중요성

    프로젝트를 진행하면서 가장 중요한 것이 의사소통이라고들 하지만, 그 의사소통을 통한 시너지를 내기가 참 어렵다.

    짝코딩은 그 시너지를 200%낼 수 있는 방법이다.

    1:1 소통을 통해 즉각적으로 코드를 피드백하다보니 팀원의 생각을 듣고 의견을 나누며 서로를 이해하기가 훨씬 수월해진다.

    단순히 일방적인 피드백이 아니라는 점도 한 몫 한다.

    초반에 '나도 잘 모르는데'라는 생각은 이후 함께 해결책을 찾아나가며 해소되었다.

    이미 팀원도 나도 서로의 수준에 대한 대략의 이해도가 있었기에 결과적으로는 쓸데없는 걱정이었다.

    내놓은 의견이 틀리면 '죄송합니다. 그럼 이 방법을 시도해볼까요?'로 이어지는 게 정말 좋았다.

     

    2. 발화의 장점

    무엇보다 각자의 의견을 서로에게 이해시키려고 하다보니 헷갈리는 개념을 좀 더 확실하게 정립할 수 있었다.

    모호하게 '이건 이거니까 저건 저거' 식으로 이해하고 있던 것들을 팀원에게 공유하고 말로 설명을 함으로써 기초적인 이해도가 상승했다.

    실제로 효과적인 공부 방법 중 상대방에게 설명하듯이 말로 개념을 풀어보는 것이 있지 않은가.

    내게 부족한 개념을 팀원이 채워주고, 팀원이 부족한 개념을 내가 채워주는 상황이 여러 번 있었고, 이후 심화 개념 학습에도 도움이 되었다.

     


     

    위 두가지가 가능했던 이유는 나와 팀원 모두 서로를 피드백하는 것을 거리끼지 않았고, 함께 목표하는 바가 명확했기 때문이다.

    혹자는 짝코딩을 하면 효율이 떨어지지 않을까 걱정을 하기도 하던데, 나에게는 좋은 결과로 돌아와 다행이었다.

    나중에 제대로 짝코딩을 해볼 수 있는 기회가 왔으면 좋겠다.

    댓글

Designed by Nana