페어프로그래밍은 혼자 코딩하는것이 아니라 짝을 지어 마치 실무에서 협업하듯이 코딩하는 것을 말한다.
페어프로그래밍은 두명이 팀을 만들어 누가 실력이 뛰어난지를 떠나서 같은 선에 놓인 채로 함께 코딩하는 것인데, 하나의 컴퓨터를 두고 한사람씩 번갈아가며 코딩을 한다.
페어프로그래밍이 중요한 이유는 협업에서 일을 할 때 무작정 자신의 의견만 주장하는 것이 아닌 서로 커뮤니케이션을 통해서 함께 해결해 나가는 능력과 상대를 이해시키는 능력이 필요하기 때문이다.
페어 프로그래밍에서는 한사람씩 번갈아가며 코딩을 한다고 했는데 코딩을 할때와 안할때의 각자 역할이 있다.
코딩을 하는 사람은 "드라이버"라고 하고, 드라이버에게 방향을 제시하고 힌트를 주어 드라이버가 해결할 수 있게끔 하는 "네비게이터"가 있다.
드라이버 (Driver)
- 네비게이터가 방향을 제시하면 그에 맞는 해결방법을 찾아서 코딩을 해야한다.
- 네비게이터와 의견이 다르더라도 소통을 해서 더 좋은 해결법을 찾아야한다.
- 네비게이터에게 자신이 작성한 코드에 대해 설명할 수 있어야한다.
네비게이터 (Navigator)
- 드라이버에게 전체적인 방향을 제시한다.
- 드라이버가 코드를 작성하던 중 실수를 한다면 바로 알려줘서 고칠 수 있도록 한다.
- 답을 알려주는 것이 아니라 드라이버가 스스로 깨달을 수 있도록 해야한다.
나의 페어(짝)가 나보다 실력이 뛰어나다고 해서 위축되지 않아도 된다.
나의 페어(짝)가 실력이 부족해도 힘빠질 필요 없다.
실무에 들어가게되면 굉장히 다양한 실력을 갖고있는 사람들과 협업을 할 일이 생기는데, 그때마다 위축되거나 실망만 할 수는 없다.
오히려 나보다 실력이 뛰어난 페어와 페어 프로그래밍을 하게 되면, 나의 부족한 부분이나 이해를 못한 부분에 대해 물어볼 줄 알아야한다.
질문하는것도 커뮤니케이션에 속하기때문에 질문을 두려워해선 안된다.
만약 나보다 이해도가 떨어지는 페어를 만났다면, 페어가 아직 이해하지 못한 부분에 대해서 제대로 설명해봐야 스스로도 제대로 이해하고 있는지 알 수 있다.
학습을 할 때 내가 설명하지 못한다면 그것은 나도 이해하고 받아들이지 못한것이다.
이렇게 1일차 하루가 끝났다! 내일도 열심히 해야징!