«원칙»을 읽다 말고 쓰기
공동의 가치관과 관심을 가지고 있고, 비슷한 방법으로 가치관을 추구하고, 서로를 합리적으로 대하면서 배려하는 것에서 시작된다. 동시에 동반자는 기꺼이 서로에게 높은 기준을 요구하고, 의견 충돌을 해소할 수 있어야 한다. 훌륭한 동반자 관계에 대한 중요한 시금석은 동반자들 사이에 의견 충돌이 발생하는지, 발생하지 않는지가 아니라 의견의 차이를 공개하고 이를 잘 해소하는가이다.
공동창업자들과 매일 의견 차이가 있다. 처음에는 불편하기도 했다. 의견 차이가 커서 좋은 팀이 될 수 없는 게 아닐까 생각하기도 했다. 근데 이제 이 문제는 어느 정도 해소됐다. 해소됐다는 게 의견 차이가 사라졌다는 건 아니다. 의견 차이는 여전히 있고, 매일 있고, 오히려 점점 많아진다. 의견 차이가 사라졌다기보다는 의견 차이와 함께 나아가는 법을 배웠다.
소프트웨어 엔지니어로서도 비슷한 과정이 있었다. 레거시 코드를 대하는 태도에 관한 이야기이다. 레거시 코드는 쉽게 말하면 정리가 되어있지 않고 엉망진창이라서 손을 댈 수가 없는 코드다. 처음에는 레거시 코드를 만든 사람을 원망하고, 왜 이렇게 짰는지 이해할 수 없다며 불평하고, 지워버리고 다시 짜야겠다고 마음먹은 적이 많다. 하지만 이런 생각은 어느 순간 사라졌다. 아마 나도 레거시 코드를 만들고 있다는 사실을 발견했을 때였던 것 같다. 시간에 쫓기고 비즈니스적 요구에 쫓기다 보면 어쩔 수 없었다. 때로는 솔직히 귀찮기도 했다. 그렇게 레거시 코드를 생성하는 나를 보며 레거시 코드를 만드는 사람을 비난하지 않게 됐다. 레거시 코드는 어쩔 수 없이 생성될 수밖에 없기에, 레거시 코드를 비난하는 대신 레거시 코드와 함께 나아가는 법을 배웠다.
지금 의견 차이에 대한 생각도 꼭 같다. 레거시 코드를 차단하는 대신 레거시 코드와 함께 나아가는 법을 배웠다. 마찬가지로 의견 차이를 차단하는 대신 의견 차이와 함께 나아가는 법을 배워야 한다는 생각이다.