공유
공유
요즘 매일 보는 앱 중에 깃허브(github)가 있습니다. 개발에서 손을 뗀 지 벌써 13년이 지났지만, SaaS 기업으로 회사를 키우는 입장에서 코드를 제품(product)을 구성하는 중요한 요소로 보고 있기 때문에 깃허브의 알람을 빠짐 없이 읽습니다. 코드를 중심으로 한 개발자들의 대화를 읽다 보면 코드를 짜지 않더라도 동료들이들이 무슨 생각을 하고, 어떤 논의들이 일의 중심에 놓이는지 큰 노력 없이 알 수 있어 무척 편리합니다. 이 글에서는 조직의 리더 입장에서 바라 본 코드 리뷰에 관한 경험을 토대로, 코드 리뷰가 인간적인 개발 문화를 만드는 데 얼마나 큰 기여를 하는지 말하고자 합니다.
지난 글 <소프트웨어 설계 20년 해보고 깨달은 ‘좋은 설계’의 조건>의 독자 중 한 분이 저에게 기술적인 노하우를 더 공유할 수 있는지 물었습니다. 조금 주저되었습니다. 개발자 입장에서 설계를 다룰 때, 당연히 프로그램을 잘 만드는 것에 집중하기 마련입니다. 이는 당연한 요구입니다. 그러나 ‘모든 상황에서 통하는 기술적인 노하우가 과연 있을까’ 하는 생각을 지울 수 없었습니다. 이러한 가치관을 갖고 있는 제 입장에서 선뜻 자신있게 기술적인 노하우를 꺼내는 일은 어색한 일이 아닐 수 없었습니다. 그래서 스스로에게 질문을 던져 보았습니다. ‘그럼에도 불구하고 하나만 언급해야 한다면 어떤 게 있을까?’라고요.
이 글은 제가 20여년 동안 소프트웨어 설계를 공부하고, 적용해보면서 갖게 된 믿음에 관한 글입니다. 한때 설계에 빠져 공부했고, 잘못된 믿음도 가져봤습니다. 하지만 언어와 실력이 다른 분들과 일하며 설계를 했던 경험을 비롯해 다양한 학습이 저를 설계에 관한 다른 관점으로 이끌었습니다. 이 글을 읽고 최소한 여러분은 설계에 대해 기대하지 말아야 할 것들에 대한 제 견해를 알 수 있을 것입니다. 조금 욕심을 부리자면, 적어도 한 사람 정도는 제 글을 읽고 행동에 변화가 생기는 분이 나타날 수도 있다는 기대를 갖고 글을 씁니다.