프로그래머는 혼자 일 할 수 없다.

그래서 코드의 경계가 생긴다.

인터페이스의 경계.

시간의 경계.

터미널의 경계.

남이 짜 놓은 코드와 붙이다 보면 인터페이스에서 만날 수 밖에 없다. 두 프로그래머의 코드가 협동하려면 다른 사람 코드 맘에 안 든다고 침범할 게 아니라 인터페이스라는 경계에서 만나 협상을 해야 한다.

또, 남이 짜 놓은 코드를 시간이 지나서 고치게 되는 일이 생기니 시간의 경계가 생기고, 그러다 보면 대답 없는 과거의 프로그래머와 협동을 해야 한다. 옛날에 작성된 코드를 다시 쓰기도 하지만, 작성 당시에 간여하는 것은 애시당초 불가능하다. 그러니 시간의 경계 너머의 다른 프로그래머와 만나 협상을 해야 한다.

심지어 페어 프로그래밍을 하게 되는 경우에도 두 프로그래머가 동시에 키보드를 붙잡고 코드를 작성할 수는 없다. 터미널을 붙잡은 사람과 그렇지 않은 사람이 만나 협상을 해야 한다. (혹은 sheparding을 당한다. ㅋㅋ)

두 사람이 동시에 코드를 만들어 낼 수는 없다. 모두 어디선가 만나서 협상을 한다. 아무 말도 없이 코드를 짜는 프로그래머는 없다. 과거의 대답 없는 프로그래머와도 대화를 해야 한다. 내 말이 그 당시 코드를 만들던 프로그래머에게는 들리지 않겠지만, 지금 내가 주절거리는 말이 메아리가 되어 나에게는 들린다. "이 사람 왜 이렇게 짰을까." 묻다 보면 답이 나온다. 그러니 대화다.

이런 저런 형태로 프로그래머는 끊임 없이 대화하고 협상해야 한다. 그래서 프로그래머는 말을 잘 알아듣고, 또 잘 해야 한다. 대화 능력이 좋은 프로그래머가 결국은 좋은 코드를 만들어낸다.

'이런 저런...' 카테고리의 다른 글

추위  (0) 2011.12.10
퇴근길  (5) 2011.02.22
코드의 경계  (1) 2011.02.06
  (0) 2010.11.28
가을을 바라며  (0) 2010.09.21
회복  (0) 2010.07.31
Posted by Lbird