동료들과 이야기를 나누다가 상선약수가 떠올랐다. 최고의 개발자는 혹시 물과 같지 않을까.
노자의 상선약수
“최고의 선은 물과 같다.(上善若水) 물은 선하여 만물을 이롭게 하지만 다투지 않는다.(水善利萬物而不爭) 뭇 사람들이 싫어하는 낮은 곳으로 자리를 잡는다.(處衆人之所惡) 그러므로 물은 도에 가장 가까운 존재다.(故幾於道).”(<노자> ‘8장 이성·易性’)
출처: 물을 깔보지 마라
물은 동그란 유리병에도, 사각형 용기에도 어느 형태에든 맞출 수 있다. 투명해서 어떤 색의 병에 담아도 그 병 색이 된다. 물은 다투지 않는다. 스며든다. 언제나 낮은 곳에 자리 잡는다.
개발자가 물과 같다면
누구와 함께 일해도 어떤 회사에서 일해도 맞출 수 있다. 어느 팀에든 프로젝트에든 예전부터 그곳에 있었던 것처럼 스며들어 있다. 누구와도 다투지 않는다.
물이 되는 것은 쉽지 않다
상대방을, 팀을, 기업을 받아 들여야 한다. 자신을 투명하게 만들어야 한다. 이게 정말 어렵다. 개발자는 주로 코드를 작성하고, 코드는 글과 비슷하다. 글처럼 각자 문체, 스타일이 있기 마련이다. 그동안 쌓아온 지식과 경험을 바탕으로 갖고 있는 기준과 방식이 있다. 자신의 것들을 놓아야지만 투명해져서 팀의, 기업의 코드에 스며들어 하나가 될 수 있다. 내 이름이 없는 코드, 팀의 코드, 누가 작성한지 알 수 없는 코드를 작성해야 한다.
물이 되기 위한 자세
코드는 내 것이 아니다. 내 것이 아닌 팀의 것, 기업의 것이다. 내 것도 아닌 것을 지키기 위해서 에너지를 쏟을 필요가 전혀 없다. 내가 작성할 뿐 내 것이 아니다. 자신도 모르게 자신이 코드에 나타나고 있다면 다시 한 번 되새기자. 이것은 내 것이 아니라고. 그래야 언제든 물이 될 수 있으니까.
상황에 따라 유리병 같은 스타일로 작성했다가, 사각형 플라스틱 용기 같은 스타일로 작성해야 할 수도 있다. 이 때 주의할 점은 유리병이 사각형 플라스틱보다 무조건 좋은 게 아니듯 정답이 없다는 것이다. 언제는 유리병이 좋지만, 언제는 깨지기 쉬운 유리보다 플라스틱 용기가 더 나을 수 있다. "전 유리병이 좋아요. 유리병에 맞추고 싶어요."라고 하는 순간 더 이상 물이 될 수 없다.