우리나라가 소프트웨어 개발을 잘하기 위해서 꼭 필요한 것 중에서 가장 먼저 성숙한 개발문화를 꼽는다. 그런데 간단해 보이는 것 하나도 정착하기가 보통 어려운 것이 아니다. 도대체, 개발문화가 왜 그렇게 정착하기 어려운지 그 이유를 생각해보자.
첫째, 문화란 혼자 바뀐다고 전체가 따라서 바뀌는 것이 아니다.
문화란 집단의 공통된 행동 양식인데, 혼자서 전체를 바꾸기란 거의 불가능하다. 서로 이익이 된다면 자연스럽게 바뀌어 나가겠지만 대부분의 성숙한 개발 문화라는 것이 다같이 따를 때는 모두에게 이익을 가져다 주지만 혼자 제대로 하면 혼자 손해를 보기 마련이다. 정보를 공유하자고 해서 혼자 열심히 공유를 하고 다른 사람은 꼼짝을 안하면 혼자서 손해를 보는 것이다. 따라서 모두에게 이익이 되며 현재 수준에서 할 수 있는 것들로 조금씩 바꿔가지 않으면 거의 바뀌지 않는다.
둘째, 문화는 책으로 배우기 어렵다.
우리는 흔히 실리콘밸리의 개발문화를 전해 듣는다. 나이에 상관없이 소프트웨어 개발을 계속 할 수 있고, 나이 어린 팀장과 일할 수 있고, 공유와 리뷰가 활발하며, 이직이 활발하며 그래도 회사는 문제 없이 돌아가며, 개발팀의 기술적인 결정을 영업에서 함부로 뒤집지 않는다. 아키텍처를 고려한 장기적인 시간에서의 결정을 근시안적으로 뒤집지 않고 CTO가 CEO만큼 힘이 있다. 이런 얘기를 맨날 들어봐도 어떻게 해야 그렇게 되는지 알기는 어렵다. 결과만 보이지 상세한 행동 양식은 잘 보이지 않는다. 그래서 따라하려고 해도 따라하기 힘들다. 또한 쫓아 한다고 우리 의식 속에 깊이 자리잡은 우리의 문화를 무시하기도 어렵다.
셋째, 문화란 바뀌는데 오랜 시간이 걸린다.
문화는 짧게는 5년, 10년 이상 걸려야 바뀌는 것이 눈에 보인다. 그런데 우리나라에서는 아직 그정도의 인내심을 가지고 꾸준히 성숙한 문화를 정착하려고 노력해서 성공한 회사가 그렇게 많지는 않다. 중간 중간에 수많은 시행착오로 인해서 옆길로 빠지거나 포기하기 일쑤이다.
넷째, 단독으로 문화만 배울 수는 없다.
각 나라의 문화는 기후, 자원, 자연 등과 깊이 관련이 있다. 소프트웨어 개발 문화도 여러가지와 연관이 있다. 제도, 교육 상황, 산업 규모 등 수많은 것과 연관이 있다. 달랑 한 문화의 단면만 따라한다고 쉽게 되지는 않는다. 항상 기록을 남기는 방식으로 개발문화를 바꾸고 싶어도 기록을 남기는 것에 대해서 너무 훈련이 안된 개발자가 많다. 아키텍처를 중요시 하고 싶어도 뿌리깊은 영업 드라이브 문화는 쉽게 바뀌지 않는다. 따라서 우리의 현실을 무시한 성숙한 문화란 공염불에 그치곤 한다.
결론은 간단하지만 쉽지는 않다. 우리에게 알맞는 개발 문화를 찾아야 한다. 원칙을 거의 같지만 모습은 약간씩 다를 것이다. 그리고 혼자, 한 회사만 바뀌어서 될 일은 아니다. 업계 전체적으로 바뀌도록 노력해야 한다. 또한 5,년, 10년이상 꾸준히 노력해야 한다. 그래서 노력하는 사람이 대다수가 되면 이미 우리도 우리에게 알맞는 성숙한 개발문화를 가지게 될 것이다. 물론 10년안에 그렇게 바뀐다면 행운이고 30년이 걸릴지도 모르겠다.
슬쩍 링크를 겁니다.
답글삭제오늘 글은 명사 몇 개만 바꾸면 역사글이 될 수도 있네요.