NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

기획

대기업 실전 애자일 1장 #1-2 페어 프로그래밍

#1-2 페어 프로그래밍

 

* 페어 프로그래밍 준비 

유지보수 시작 후 3개월 정도가 지나자 시스템은 점차 안정화되어 갔다. 자연스레 필자의 야근 시간도 점점 줄었다. 고생할 당시는 매우 힘들었으나, 지금 생각해보면 그 3개월은 꽤나 값진 경험이었다. 

 

당시 나는 그 노오력을 통해 ‘관리자의 신뢰’를 얻었던 것 같다. 경험과 능력이 부족함에도 많은 일을 묵묵히 해내는 것을 보며,  맡은 일을 끝까지 책임지는 사람이라는 인상을 주었다.  그리고 고객들 또한 마찬가지였다. 어느 시점부터인가, 고객들은 문제가 발생하면 나를 찾았고, 나를 통해 그 문제가 해결이 될 수 있다고 믿었다. (SI시스템 운영 환경에서는 고객과 가까운 위치에서 일하는 경우가 빈번하다.)   

 

때로는 좀 엉뚱한 이야기를 하더라도, 반드시 무슨 이유가 있을 것이라 생각해줬고, 필자의 이야기를 긍정적으로 들어주었다. 이러한 그들의 태도는 나에게 커다란 자신감을 주었다. 조금씩 스스로 무언가를 시도할 수 있는 안전함의 범위가 늘어나기 시작했다. 

 

이즈음, 필자는 선배 한 명과 함께 코딩에 대한 스터디를 시작했다. 그와 익스트림 프로그래밍(XP)이라는 것에 대해 공부했다. 마틴 파울러의 리팩터링 카탈로그를 보고 내가 다루는 코드를 개선하는 방법에 대해 고민했다.  필자는 테스트 주도 개발과 페어 프로그래밍에 대해 특히 관심이 있었다. 특히 페어 프로그래밍을 할 때 설명이 재미있었다.

 

당시 난 프로젝트 관리자와 쉽게 많은 이야기를 할 수 있었다. 그는 정말 열린 사람이었다. 필자의 이야기를 늘 귀담아들어주었다. 페어 프로그래밍에 대해서도 이야기했다. '내가 이런 걸 공부하고 있는데, 정말 신기한 방법이라고...' 기억을 되뇌어보면, 필자는 다음과 같은 방식으로 익스트림 프로그래밍을 그 관리자에게 소개했다. 

“피엠님, 이 책 한번 읽어보실래요? 미국에는 XP란게 있데요. 근데 이 내용 중에 재미있는 것들이 있어요. 예를 들면, 페어 프로그래밍이라고, 둘이서 한 키보드를 두고 같이 개발을 한데요. 피엠님이 들으면 기가 막힐 이야기죠. (웃음)”

 

“그래? 하하 그거 재밌네. 그러게, 관리자 입장에서 보면 두 사람의 공수로 한 명의 일을 한다고 할 수도 있겠다.”

 

“에이.. 바다 건너 얘긴데요 뭘. 미국은 여러 가지 상황이 좋으니까 우리와는 다르겠죠? 하지만, 프로젝트 상황이 좀 괜찮아지면...”

 

“음…? 아.. 그래! 신입 사원 들어오면 한번 해봐라. 그렇게 하면 그 친구가 일을 얼마나 잘하는 앤지 금방 알 수 있을 것 같은데?”

 

“와! 감사합니다. 그럼, 신입이 들어오면 제게 맡겨주세요. 한번 교육을 시켜 볼게요.”

프로젝트 관리자의 제안은 나를 정말 신나게 만들었다. 새로운 시도를 할 수 있게 된 것이다. 두 달 후 신입 3명을 받게 되었고, 프로젝트 관리자는 내게 이들의 멘토링을 맡겼다.  

 

 

* 페어 프로그래밍 실험#1 - 각자 개발하기 

 

나는 이들에게 다음과 같은 실험을 시작했다. 이들을 대상으로 전체 사흘 동안 두 가지의 실험을 했다. 결과를 보다 명확히 확인하기 위해 다음과 같이 실험군과 대조군을 나누어 실험했다. 


실험#1: 대조군 (이틀) 

- 기능 개발 건 3가지를 신입사원 3명(A, B, C)에게 주고, 솔로로 일하라고 하고 이틀간 관찰하였다.

 

실험#2: 대조군 + 실험군 (이틀)

- A는 솔로, 또 다른 1가지 기능을 주고, B, C는 2가지 기능을 페어 프로그래밍 방식으로 15분마다 키보드를 바꾸라고 했다. 그리고 이틀간 관찰하였다. 


[페어 프로그래밍]

실험#1을 하기 전에 A, B, C에게 개발해야 할 기능에 대해 설명하고, 이틀 동안 기능 완성을 필수적으로 해야 한다고 말했다. 그리고 이틀 동안은 너희를 믿고 기다려보겠다고 했다. 그리고 관찰을 시작했다. 

 

실험#1에서 관찰된 것은, 3명의 신입들의 코딩 능력이었다. A는 1개의 기능을 이틀에 걸쳐 완성시켰고, B는 열심히 했지만, 기능 완성에는 실패했다. 마지막 C의 행동이 흥미로웠는데, 이틀째부터 계속해서 PC 앞에서 졸고 있는 모습이 관찰되었다. 

 

좀 더 이야기를 듣고 싶어 C를 밖으로 데리고 나와 커피를 마셨다. 그는 큰 괴로움을 내게 토로했다. 그는 대학에서 코딩을 해본 적이 없어서, 코딩에 대해서는 전혀 모르고, 코딩은 정말 맞지 않아, 신입사원 입문교육받을 때도 매우 힘들었다고 이야기했다. 안타깝게도, 이후에도 이틀 내내 코딩에 집중하지 못하는 모습이 관찰되었다. 

 

 

* 페어 프로그래밍 실험#2  - 페어로 개발하기 

 

필자는 이 내용에 대해 꼼꼼히 기록한 뒤, 실험 #2를 시작했다. 

 

이전에 개발을 해낸 A 신입사원은 또 다른 1개의 기능을 이전과 비슷하게 이틀 정도에 거쳐 완성시켰다. 하지만, B와 C에게는 큰 변화가 일어났다. 먼저, B와 C가 페어 프로그래밍을 하면서 코딩에 대해 대화하는 것을 볼 수 있었고, C가 코딩을 하며 웃고 있는 것을 관찰할 수 있었다. 전날의 머리를 쥐어짜던 그의 모습은 찾아보기 어려웠다. B는 자신이 경험해본 것을 차근차근 C에게 설명하고 있었고, 이들은 서로 키보드를 번갈아가며 사용하며, 반나절 만에 기능 한 개를 완성해냈다. 또한 페어 프로그래밍을 통해 두 명의 인력이 계속해서 일을 하고 있다는 것을 모니터링할 수 있었다. 이전의 C가 보여주었던 집중력이 흐트러진 모습은 온데간데없었다. 

 

필자는 이 두 가지의 결과물을 조사해봤다. 두 코드 모두 그다지 품질이 높지 않았지만, C가 B와의 커뮤니케이션을 통해 온전히 그 소스 코드의 내용에 대해 이해하고 설명할 수 있다는 것이 가장 놀라운 변화였다. 그는 이틀 전까지만 해도 분명히 코딩에 대해 전혀 모르고 본인과 맞지 않다고 이야기할 정도로 부정적인 반응을 보였던 인력이었다. 이후, C는 다음과 같은 간략한 피드백을 필자에게 주었다. 

 

“페어 프로그래밍 덕분에, 짧은 시간에 B에게 정말 많은 것을 배웠어요" 

(현재 C는 훌륭한 개발자로 성장한 뒤 일본에서 주로 일하고 있다.)

 

필자는 관찰 일기 형태로 위의 내용을 작성하여 프로젝트 관리자에게 전달했다. 그는 이 결과에 대하여 매우 즐거워했다. 그에게 페어 프로그래밍은 더 이상 바다 건너 프랙티스도, 책 속의 이야기도, 공수를 낭비하는 것도 아니었다. 대신에, 개발자가 짧은 시간에 성장하고, 관리자 입장에서도 투명하게 사람을 관리할 수 있는 즐거운 도구였다. 이후에도 시간이 날 때마다 페어 프로그래밍을 해보자고 제안했고, 그때마다 프로젝트 관리자는 긍정적으로 반응했다. 

댓글 0

휴벗

삼성SDS에서 지난 15년간 "애자일을 통한 지속적인 개선"을 주도해온 삼성의 Chief troublemaker 신황규입니다. '06년 삼성 최초로 SI 프로젝트에서 개발자로 스크럼과 XP를 적용하고 9년간 프로젝트 리더이면서 애자일 코치로 활동하다가 '15년 120명 규모의 Agile core team이라는 애자일 전문 코칭/개발 조직을 구성하고 3년간 조직 리더로 일했습니다. 현재는 새로운 도전을 위해 대기업 내에서 스타트업처럼 일하는 조직의 리더로 이동하여 비대면 협업툴 Marimba.team의 상품 디렉터로 일하고 있습니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.