안녕하세요!
최근에 쏘카 개발팀장? 분의 특강을 프로그래머스에서 듣게 되었습니다!
특강중에 나왔던 질문중에 “팀원간의 코딩 수준차이가 많이 나면 어떡하냐” 라는 질문이 있었고? 그 대답으로 페어프로그래밍을 하는게 좋다고 강사님이 답변을 해주셨습니다.
제가 궁금한 점은
- 특강 자체가 포커스가 백엔드쪽에 치우쳐져 있는 느낌을 받았는데 프론트에서도 페어프로그래밍을 하는 사례가 있는지?
넵, 저는 프론트에서 많이 했었습니다. -> 페어프로그래밍에 백앤드/프론트를 분간할 필요는 없을 것 같습니다. 방법론이 다를 순 있겠지만요. 페어프로그래밍의 "목적"을 생각해보면 좋을 것 같습니다. 1. 일단 질문 자체가 "팀원간의 코딩 수준차이가 많이 나면 어떡하냐" 였습니다. 이 관점에서만 페어프로그래밍(이하 PP)을 보자면, 헬스 초보자가 헬스장가서 PT를 받는것과 똑같습니다. 개발 능력자가 먼저 설명을 하고 시범을 보여주고, 이어서 초보자가 따라서 하면서 마무리를 하고 이렇게 진행을 하면서 서로를 익힙니다. 여기에서 능력자가 얻을게 무엇인가?라고 느낄텐데 첫 목적이 수준차이가 나기 때문에, 수준차이를 없애기 위한 시간 할애라고 생각하면 됩니다. (실제로 이러한 시간 할애가 충분하진 않지만, 극단적으로 말하면, 초보자가 개발해서 PR올렸는데, 능력자가 그 PR을 하면서 쏟는 엄청난 시간을 미연에 방지할 수 있다라는 측면에서 할애하는게 좋을 것 같습니다.) 이렇게 몇번 PP를 하다보면 컨벤션이란걸 공유하게 되고, 개발 방법론도 공유하게 되면서 자연스럽게 초보자에게 습득이 될 것이고요. 능력자 입장에서는 앞으로 어떻게 남을 성장시킬 것인가, 어떻게 설명을 할 것인가, 어떻게 업무 순서를 잘 정리하고 도식화하고 문서화 할 것인가? 이런 측면에서의 성장도 분명히 있습니다. 다시 말하지만, 1번의 PP 예제는 개발 퍼포먼스를 위한 PP가 아니라, 두 수준차이가 있는 경우에서의 PP라고 생각해주시면 좋습니다. 2. 개발 퍼포먼스를 위한 PP는 어떻게 할까? 상대적으로 비슷한 실력을 가진 두명이 하면 좋습니다. 그럼에도 당연히 처음에는 퍼포먼스가 안나옵니다. PP는 습득을 해야 한다고 저는 생각 됩니다. 자연스럽게 당연히 할 수 있는게 아니라, 연습이 필요한 것이죠. 그러면 1명이 할 것을 2명이 해야해서 시간대비 결과가 안나오므로 본인들도 싫어하고, 동료나 회사차원에서 싫어할 것이다 라고 의문이 들텐데요. 똑같은 생각으로 코드리뷰가 당연히 필요한 문화라면, 어차피 1명이 코드를 짜면 또 다른 1명이 코드리뷰를 해야해서 시간 할애가 됩니다. 처음부터 2명이서 PP를 했다면 상대적으로 코드리뷰 양이 줄어들 가능성이 높다고 저는 생각합니다.(아닐수도있지만요) 1명이 혼자 무아지경으로 코드를 짜면 어딘가 그 한명의 생각이 투영될 가능성이 큰데, 두명이서 하다보면 문서를 만들어서 소통을하거나, 또 다른 한명을 이해시키기 위해서 말을 조리있게하면서 일하는 방법이 정리가 되거나 할 것 같습니다. 결국 투자입니다. 처음에는 어렵지만, 투자를 하면 코드리뷰를 거의 없앨 수 있는 수준까지 갈 수 있다고 생각은 합니다. 그런데 PP가 꼭 항상할 필요는 없다고 생각해요. 프로젝트 초반에 방향성을 잡거나, 개발 구조를 잡을 때 하면 좋다고 생각하고요, 아주 메인로직이나 이 로직이 어설프게 짜이면 정말 프로젝트가 큰일날 수준의 부분을 PP로 하면 좋을 것 같아요. 3. 백앤드/프론트가 하는 사례도 있습니다. -> 이게 더 좋은 경험을 많이 얻는 경우가 많더라고요(만족도 측면) 제 사례는 아니고, 얼마전에 저희회사에서 백앤드/프론트 두 분이서 PP를 한 경우가 있었고, 본인들이 만족해서 소개?자랑?을 한 예가 있었습니다. 4. 돌고 돌아서 어떻게하면 PP를 잘할까?
- 멘토님께서는 페어프로그래밍을 해본 경험이 있으신지? 만약 있으시다면 추천해주실만 하실까요
- 제가 조사한 바로는 페어프로그래밍은 수준이 비슷하면 좋다고 알고 있는데 수준차이가 많이 날 경우의 페어프로그래밍 방법? 이 있을까요
https://yozm.wishket.com/magazine/detail/1698/ ← 저도 방금 지금 이거 보고있었습니다 ㅎㅎ