Home
home
Culture
home

[문화] 플라네타리움 엔지니어가 함께 일하는 법: 짝(Pair) 프로그래밍

분류
플라네타리움 이야기
발행일
2023/04/19
나인코퍼레이션의 테크 리크루터 황혜경입니다.
직접 소싱을 통해서 외부 분들과도 커피챗을 진행하지만, 사무실에서 자주 뵙지 못하는 구성원 분들과도 꾸준히 커피챗을 진행하고 있는데요. 얼마 전 블록체인 SDK팀의 홍님과 커피챗 일정 조율을 위해 캘린더를 살펴보던 중 업무 중 흥미로운 부분이 있어, 이렇게 포스트를 작성하게 되었습니다. 업무의 많은 시간이 짝 프로그래밍으로 되어 있었어요. 짝 프로그래밍이 뭔지에 대해 궁금증이 생겼습니다.
홍님과 함께 짝 프로그래밍하는 조나단님께 짝 프로그래밍을 왜 하는지, 어떻게 하는지 물어봤어요.
짝 프로그래밍을 하면 뭐가 좋아요? 그리고 어떻게 하시나요?
지금 개발하고 있는 것들이 다른 곳에서 만든 적이 없는 것들이다 보니, 명확하지 않은 상황에서 만들어가야 하는 부분이 큽니다. 이럴 때 혼자 업무를 하다 보면, 많은 고민 시간이 필요한데요. 짝 프로그래밍으로 진행하면, 우선순위를 정하고, 서로의 지식을 나누면서 조금 더 빠르게 업무의 방향을 정하고 일을 진행할 수 있어 도움이 돼요. 홍님과 짝 프로그래밍을 할 땐 조금 수정해서 드라이버와 내비게이터의 역할 구분을 약하게 진행을 해요.
좀더 구체적으로 알고 싶어 팟캐스트 애자일 키워드의 에피소드 5: 짝 프로그래밍 편을 듣고 정리를 해봤습니다.

짝 프로그래밍(Pair Programming)이란?

짝 프로그래밍이란 애자일(Agile)의 대표적인 실천 방법 중 하나로, 두 명의 개발자가 한 컴퓨터 앞에 앉아 함께 작업하는 방식입니다. 이때 한 명이 키보드를 잡고 코드를 작성하는 드라이버(driver) 역할을 하고, 다른 한 명이 코드를 검토하며 피드백을 주는 내비게이터(navigator) 역할을 합니다. 두 사람이 서로 역할을 바꿔가며 작업을 진행하며, 이 과정에서 빈번한 키보드 교환을 통해 서로의 생각과 의견을 공유합니다.

짝 프로그래밍의 효과

1. 오류를 감소하고, 생산성이 향상됩니다

짝 프로그래밍을 통해 결함의 개수가 약 50% 정도 줄어들며, 이는 생산성이 향상되는 것을 의미합니다. 개발 기간이 늘어나고 에너지가 더 들어가긴 하지만, 두 사람이 함께 작업하면서 서로의 실수를 발견하고 수정할 수 있습니다. 또한, 통합 작업 시간이 줄어들어 전체적인 작업 시간이 감소할 수 있습니다.

2. 팀워크 강화됩니다

함께 일한다고 해서 협업 역량이 높아지는 건 아닙니다. 긴밀한 협업 환경이 중요한데요. 짝 프로그래밍을 통해 개발자들은 서로의 스타일을 이해하고, 긴밀하게 협업의 기회를 만들어 협력 능력을 향상할 수 있습니다. 이를 통해 팀 내 신뢰가 쌓이며, 팀워크가 강화됩니다.

3. 팀의 문제가 드러납니다

짝 프로그래밍을 통해 팀 내 숨겨진 문제가 드러나게 되며, 이를 해결할 기회를 얻을 수 있습니다. 이러한 문제들은 초기에 발견하고 해결하면, 후에 큰 비용을 들이지 않고 프로젝트를 완성할 수 있습니다. 하지만, 문제를 해결할 의지나 역량이 부족하다면 이러한 방식은 어려움을 겪을 수 있습니다.
Agile is Fragile (애자일은 깨지기 쉽습니다.)

짝 프로그래밍 시 주의할 점과 팁

역학 관계에 주의하세요

드라이버와 내비게이터의 역할 분담이 공평하게 이루어져야 합니다. 전문가와 비전문가 또는 시니어와 주니어 간의 역학 관계가 발생할 경우, 상대방의 파워를 고려하여 의도적으로 동일한 역할 분담으로 조절해야 합니다.

자주 역할을 바꿔보세요

자주 역할을 교환하며 추상적인 사고와 구체적인 사고를 왔다 갔다 하게 되면, 이 과정에서 발견과 통찰을 얻을 수 있습니다. 애자일은 계획을 수정하는 것입니다. 전체 그림과 구체적인 활동 사이에서 피드백을 받으며 프로젝트의 계획을 수정하며 발전시킬 수 있습니다. 인간은 한 번에 두 가지 일을 하기 힘든데, 추상과 구상 사이를 분리하여 학습을 해나가는 방식이라고 생각하시면 됩니다.

생각을 중얼거리며 작업해보세요

짝 프로그래밍을 진행할 때, 생각을 중얼거리며 작업하는 것이 좋습니다. 작업할 때 내 의도가 자연스럽게 드러나게 하는 건 도움이 됩니다. 상대방을 나와 100% 같은 이해 수준의 이해 수준으로 만드는 게 목적이 아닙니다. 자연스럽게 생각을 중얼거리다 보면, 이를 통해 상대방이 내 생각을 이해하고 추측하게 되며, 이 과정에서 피드백을 주고 받을 수 있습니다.

작업 시작 전 목표 설정해보세요

짝 프로그래밍을 시작할 때, 작업 목표를 설정하고 과업을 쪼개어 우선순위를 정합니다. 이후 드라이버와 내비게이터로 역할을 나눠 작업을 진행합니다.

두렵거나 지루한 일에 적용해보세요

두렵다는 건 불확실성이 높고, 내가 못 할 거 같다는 느낌이 있는데, 누가 옆에서 봐주면 안정감 있게 일을 할 수 있습니다. 또한 내가 놓친 것을 상대방이 잡아줄수도 있고요. 지겹거나 귀찮은 일은 옆에서 누군가와 함께하면 서로 가르쳐주고, 알려주면서 함께 하는 재미가 있습니다.

정리하면

짝 프로그래밍(Pair Programming)을 넘어서 짝 작업(Pair Work)를 통해 회의록 작성이나 발표 자료 준비 등 다양한 업무에서도 협력과 커뮤니케이션 능력을 향상시킬 수 있습니다. 다만, 마감일정이 급박한 상황에서는 상황을 고려하여 진행해야 합니다.
신뢰할 수 있고 편한 동료와 함께 두렵거나 지루한 일을 선택해 1시간 동안 가볍게 시작해보세요. 작업 목표를 설정하고, 6~7개의 작은 과업으로 나누어 우선순위를 정한 후, 차례대로 진행해보는 것은 어떠세요.
이를 통해 팀원들간의 협력과 커뮤니케이션 능력이 향상되며, 전체 팀의 웰빙 수준과 직무 만족도를 높일 수 있습니다. 페어 워크를 통해 두렵거나 지루한 업무를 함께 효과적으로 해결해보세요.
‘홍’님은 어떤 분인지, ‘Meet Hong’에서 만나보세요.
‘홍’님, ‘조나단’님과 함께 짝 프로그래밍을 하고 싶은 분은 플라네타리움에 합류하세요.
온라인 커피 챗 신청 환영합니다. 또는 디스코드에서 Hyekyung 을 멘션해주세요!
► 블록체인 SDK 엔지니어 JD https://recruit.planetariumhq.com/sdk-engineer
#채용중 #플라네타리움 #게임 #블록체인 #웹3 #커리어 #업사이징