Size: 3464
Comment:
|
Size: 3482
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#acl +All:read |
PairProgramming을 통해서 배우고 있는 것이 매우 많다.
PairProgramming을 통해서, 상대방이 어떤 사고의 과정을 거쳐서 프로그래밍을 하는지 엿볼 수 있다. 보통 전문가나 시니어와 같은 팀에서 일을 한다고 해도, 그들의 결과물만을 보고 감탄하거나 동경하는데서 그친다. 또는 그 결과물에 담긴 품질을 내 결과물에도 구현하기 위해 목표로 삼고 노력한다.
하지만 전문가는 초심자와 멘탈 모델이 다르다. 초심자가 보지 못하는 단서(cue)들을 볼 수 있고, 다른 전략(strategy)을 사용한다. 때문에, 초심자가 아무리 노력한다고 해도, 결과물만을 들여다 봐서는, 전문가가 어떻게 그 결과물을 만들어냈는지 그 사고 과정, 그 멘탈 모델을 들여다볼 수 없다.
그런데 PairProgramming을 할 때는, 전문가의 사고 과정이 드러나게 된다. 만들어가는 과정을 실시간으로 함께 하기 때문에. 그 과정에서, 전문가가 어떻게 생각하는지, 어떤 것을 알아채는지, 어떤 접근을 하는지를 파악할 수 있어서, 훨씬 효과적으로 학습할 수 있다.
꼭 전문가가 아니더라도, 짝이 서로 다른 접근법, 다른 노하우, 다른 강점을 가지고 있을 수 있기 때문에, 서로 배울 점이 있을 것 같다.
전문가 입장에서는, 짝과 같이 프로그래밍을 하면서 자신의 접근법에 대해 좀 더 명확한 이해를 할 수 있게 된다. 마치, 빠른 기차를 타고 갈 때는 미처 인식하지 못하던 풍경이, 천천히 자전거를 타고 갈 때는 보이는 것처럼, 자동적이고 무의식적으로 행하던 접근, 알아채던 단서들을 찬찬히 하나씩 조망하게 되면서, 의식의 차원으로 끌어올릴 수 있다.
페어를 하면서, 나는 당연하다고 여겼던 것들이 짝에게는 당연하지 않다는 것에 새삼스럽게 놀란다. 나는 별 감흥이 없었던 것들이, 짝이 '우와, 이렇게 접근할 수도 있군요!'라고 발견해주면, 그게 당연한 것이 아니라 계발된 전문성의 요소라는 것을 깨닫는다.
그저 '내가 이런걸 하고 있구나'라는걸 알아봤자 뭐가 좋을까? 뭔가 내가 하면 일이 잘 되는데, 왜 잘 되는지를 모르는 상태보다, 내가 어떻게 하길래 잘 되는지를 알아차리게 되면, 그것을 더 발전시킬 수 있다.
실시간 리모트 PairProgramming 도구를 만들어볼까? VSCode나, IntelliJ Emacs 확장을 통한?
Floobits의 클라이언트 부분은 오픈소스로 공개되어 있다.
GitHub에서 만든, Atom 확장 Teletype은 p2p 모드로 동작한다고 한다.
teletype-crdt에서 참조한 논문