오픈 소스의 역설
소셜 네트워크와 프로그래밍 커뮤니티에 새로운 생각이 스며들고 있습니다. 바로 사람들이 어떤 코드를 작성해 달라고 주는 돈과, 그 결과물에 대해 요구할 수 있다고 여기는 품질 수준 사이에는 비례 관계가 있다는 생각입니다.
누군가 말했듯이, 가장 좋은 코드는 다른 일을 해야 할 때 작성됩니다[1]. 작가가 유명 기업의 카피라이팅 일을 할 때가 아니라, 어쩌면 아무도 한 푼도 지불하지 않을 소설을 쓸 때 최고의 글을 쓰는 것처럼, 프로그래머도 근무 시간에 자신이 멍청하고 지루하고 무의미하다고 느끼는 프로젝트의 또 다른 부분을 작성할 때보다 오픈 소스 사이드 프로젝트에 더 많은 에너지를 쏟기 마련입니다. 게다가 회사가 충분히 크다면, 그 프로젝트는 어차피 6개월 뒤에 취소되거나 대대적인 출시 후 1년 만에 폐기될 가능성이 큽니다.
오픈 소스는 다릅니다. 오픈 소스는 하나의 결과물이며, 자신이 정말 하고 싶은 일, 소프트웨어가 어떤 모습이어야 한다고 느끼는지, 혹은 코딩하면서 느끼는 모든 재미와 기쁨, 심지어 분노까지 코드로 옮겨 놓은 것입니다. 그래서 제대로 작동하고 완벽하기를 바라게 됩니다. 빌어먹을 하이젠버그 하나 때문에 밤에 잠을 이루지 못할 수도 있습니다. 그러니 소프트웨어의 사용자가 코드의 어떤 부분이 형편없다고 지적하면서, 그 문제를 해결하기 위해 당신과 함께 작업할 의지가 있고 매우 까다롭게 굴더라도, 돈을 내지 않는다는 이유로 그들이 당신을 함부로 대한다고 생각하지 마십시오. 돈의 문제가 아닙니다. 원한다면 버그를 무시하고 그들의 불평도 무시할 수 있습니다. 그렇게 하지 않으면 안 된다는 계약을 맺은 것이 아니니까요. 하지만 그들은 당신을 돕고 있습니다. 그들은 당신이 중요하게 생각하는 것, 즉 소프트웨어의 품질과 위대함, 완벽함을 똑같이 중요하게 생각합니다.
당신에게 실제로 있는 권리이자, 종종 제대로 활용하지 않는 권리는 소프트웨어의 설계를 결정할 수 있는 사람이 오직 당신뿐이라는 점입니다. 따라서 자신이 설계하고 구축하는 전체 그림에 누군가의 기여가 맞지 않는다고 느낀다면, 풀 리퀘스트를 거부하거나 좋은 관행을 따르자는 제안을 거절할 권리가 있습니다.
하지만 누군가가 소프트웨어의 실제 결함을 지적하고 있다는 사실을 인정한다면, 그 상호작용을 비열한 돈 문제로 축소하는 실수를 저지르지 마십시오. 당신은 무료로 작업하고 있고, 그들은 당신이 작성한 것을 배포하면서 위험을 감수하고 있습니다. 둘 다 품질을 중요하게 생각합니다.
추신: 오픈 소스 소프트웨어를 작성하면서 사용자의 요구에 짜증이 난다면, 어떤 이유에서든 지금 자신의 일이 사무실 업무와 더 비슷해진 것은 아닌지 생각해 본 적이 있습니까?
추신 2: 한 HN 사용자가 이런 제목을 붙인 이유를 물었습니다. 역설은 오픈 소스 작성자가 무료로 작성한 코드를, 자신이 돈을 받고 하는 다른 업무보다 더 아끼고 기꺼이 고치려 한다는 데 있습니다.
[1] “프로그래머가 다른 일을 해야 할 때 작성한 프로그램이 가장 좋은 프로그램입니다.” - Melinda Varian. https://twitter.com/CodeWisdom/status/1309470447667421189
글을 무작위로 읽기