페어 프로그래밍, 정말 효과가 있을까
페어 프로그래밍의 실제 효과와 연구 결과를 살펴봅니다.
Aug 30, 2024
들어가며
페어 프로그래밍(짝 프로그래밍) 이란 용어를 많이 들어보셨을 텐데요. 이는 두 명의 프로그래머가 하나의 작업 공간을 공유하며 함께 코딩하고 문제를 해결하는 방식으로, 개발 관련 서적이나 협업 관련 책들에서 자주 등장합니다.
저도 팀에서 페어 프로그래밍을 시도해보았고 팀원들에게 다음과 같은 장점을 설명했습니다:
- 코드 품질 향상: 실시간 코드 검토와 소통을 통해 버그를 줄이고 코드의 유지보수성을 높입니다.
- 지식 공유와 학습 촉진: 서로의 경험을 공유하여 초급 프로그래머도 실무 기술을 배우고 모범 사례를 학습할 수 있습니다.
- 생산성 향상: 두 사람이 협력하면 복잡한 문제를 더 빠르게 해결할 수 있습니다.
- 직무 만족도 증대: 함께 작업할 때 더 큰 성취감을 느껴 협업과 커뮤니케이션이 활발해집니다.
- 코드 소유권 분산: 팀 전체가 코드 작성에 참여함으로써 책임감이 분산되고 리스크가 줄어듭니다.
그런데 실제로 페어 프로그래밍의 효과가 얼마나 있을까요? 페어 프로그래밍을 도입할 때 팀원들을 설득할 만한 근거는 무엇일까요?
저는 이 궁금증을 풀기 위해 Long Term Effects of Pair Programming 이라는 연구를 읽게 되었습니다.
이 연구는 컴퓨터 프로그래밍을 배우는 대학생들을 대상으로 교육 초기에 페어 프로그래밍이 학습 성과에 미치는 장기적인 효과를 조사한 연구입니다.
연구 내용
연구 원본은 링크에서 확인할 수 있으며 연구 내용 요약에 연구 내용을 번역하고 요약했으며, 첨부된 표를 해석하는 데 필요한 정보를 정리했습니다.
블로그에는 연구 결과에 대한 내용만 요약하여 정리하였습니다.
연구 결과
이 연구는 CS2와 CS3로 불리는 두 단계의 프로그래밍 교육 과정을 듣는 학생들을 대상으로 했습니다. CS2에서는 학생들이 짝을 지어 협업할 수 있었고, CS3에서는 모든 학생이 혼자 작업했습니다. 연구진은 짝 프로그래밍이 학생들의 성과에 장기적으로 어떤 영향을 미치는지를 조사했습니다.
CS2, CS3: 컴퓨터 프로그래밍 교육 과정에서 사용되는 용어로 Computer Science를 이야기합니다. CS1은 프로그래밍의 기초과 컴퓨터 과학의 기본 개념을, CS2에서는 중급 프로그래밍 및 데이터 구조를 다루는 과정입니다. 이런식으로 CS3, CS4, CS5으로 확장됩니다.
연구 결과 CS2 과정에서 짝을 지어 공부한 학생들이 CS3 과정에서 더 높은 프로젝트 Z-점수를 기록한 것으로 나타났습니다. 특히 GPA가 낮은 학생들일수록 페어 프로그래밍을 통해 더 많은 이점을 얻은 것으로 확인되었습니다. 이 그룹의 학생들은 프로젝트 Z-점수가 평균적으로 0.14점 더 높았고, 이는 CS3 최종 과정 성적에서 약 2.1% 더 높은 결과로 이어졌습니다.
GPA: “Grade Point Average”의 약자로, 평균 학점을 의미합니다. GPA는 학생의 학업 성과를 숫자로 표현하는 방식으로, 주로 미국을 비롯한 여러 나라의 교육 시스템에서 사용됩니다.
반면에 짝 프로그래밍을 경험한 학생들은 CS2 과정의 시험 Z-점수에서는 다소 낮은 성적을 기록했습니다. 이는 페어 프로그래밍이 개별적인 학습보다는 협력적 과제에 더 효과적일 수 있음을 시사합니다. 다만, 프로젝트 Z-점수에서의 향상이 시험 Z-점수에서의 손실을 상쇄하여, 전체적인 CS2의 최종 성적에는 긍정적인 영향을 미쳤습니다.
이 결과는 페어 프로그래밍이 프로젝트와 같은 협력 학습에서 더 큰 효과를 발휘하지만 시험과 같은 개별 평가에서는 그 효과가 제한적일 수 있음을 보여줍니다. 특히, GPA가 낮은 학생들이 페어 프로그래밍을 통해 더 큰 학습 성과를 얻을 수 있다는 점에서 이 방식이 성적이 낮은 학생들에게 더 효과적일 수 있다는 중요한 결론을 도출할 수 있습니다.
결론
이 연구는 페어 프로그래밍이 모든 평가 방식에서 동일한 효과를 발휘하지 않지만 협력과 실습이 중요한 학습 활동에서는 유의미한 장점이 있음을 확인시켜 줍니다.
특히 요약 부분에서 최하위 성적자들에 대한 연구 결과가 인상적이었는데요 성적이 낮은 학생들에게는 페어 프로그래밍이 큰 도움을 줄 수 있다는 점이 놀라웠습니다.
마치며
“페어 프로그래밍이 정말로 효과가 있을까요?”에 대한 물음에 이 연구를 통해 그렇다라고 할 수 있습니다. 그리고 성적이 낮은 학생들이나 협력이 중요한 학습 환경에서 페어 프로그래밍이 큰 도움이 될 수 있다는 점을 보여주었습니다. 물론 모든 상황에서 동일한 효과를 기대할 수는 없겠지만, 팀이나 조직에서 이를 어떻게 활용할지에 대한 고민이 필요할 것 같습니다.
이 연구에서 페어 프로그래밍에 대한 다양한 효과를 다룬 여러 연구들이 참조되어 있었는데 꽤 많은 연구가 있다는 것에 놀랐습니다. 팀이나 조직에 페어 프로그래밍을 도입하려 한다면 이러한 참조 논문들을 근거 자료로 활용해보는 것도 좋은 방법일 것입니다.
페어 프로그래밍이 가져다줄 긍정적인 변화를 기대하며 이 글이 페어 프로그래밍을 도입하려는 분들에게 도움이 되었으면 좋겠습니다.