우리나라 소프트웨어 회사들의 가장 큰 취약점 하나만 꼽으라고 하면 나는 개발문화를 꼽겠다. 문화란 오랫동안 습득된 구성원들의 공통된 행동 양식이기 때문에 개인이 전체의 문화를 짧은 시간에 바꾸기가 매우 어렵다. 특히 조직이 크면 클수록 문화를 바꾸는데 엄청난 시간과 비용이 필요하다.
하지만 개발문화의 개선 없이는 소프트웨어 개발 역량을 얘기하기가 어렵다. 소프트웨어 개발은 너무 복잡하기 때문에 획일화된 프로세스대로 따라 한다고 잘 할 수 없다. 하나 하나는 완벽해 보이지 않는 문화적인 활동들이 모여서 개발을 효과적으로 이끄는 것이다.
효과적인 개발문화의 필요성을 먼저 깨달은 많은 개발자들도 조직 내에서 접목을 시도하다가 쓴맛을 봐온 것이 사실이다. 그만큼 집단을 바꾸는 것은 쉬운 일이 아니다.
조직 문화의 방향을 이끄는 가장 큰 힘은 바로 경영자의 마인드다. 누구나 공감하는 당연한 개발 문화도 최고 경영자가 몸으로 이해하지 못했다면 실패할 가능성이 99%이다. 지식으로 알고 있는 것은 언제든지 몸에 베인 행동 양식에 밀리게 되어 있다.
그래서 새로 시작하는 스타트업은 좋은 개발문화 사례를 만들 수 있는 최고의 장소가 된다. 대부분의 스타트업은 기술 주도적이고 소수의 인원으로 출발한다. 이들이 개발문화를 제대로 이해하고 필요성을 알고 있다면 좋은 개발문화를 가진 회사가 탄생할 가능성이 매우 높다.
실제로 실리콘벨리의 수많은 성공한 스타트업들은 기존의 기본적인 개발문화 위에 자신들만의 독특한 문화를 계속 더해감으로써 소프트웨어 업계 전체의 문화를 리드하고 있다.
그럼 스타트업이 가져야 할 개발문화가 어떤 것이 있는지 알아보기 전에 자가 진단을 먼저 한번 해보자. 아래 나열할 개발문화에 대한 의견을 어떻게 생각하는가?
1. 좋은 개발 문화에서는 개발이 더 느리지만 옳기 때문에 따라야 한다.
2. 좋은 개발 문화는 일부 개발을 느리게 하는 요소가 있지만 장기적으로 필요하므로 따라야 한다.
3. 좋은 개발 문화는 당장 현재의 프로젝트부터 빠르게 개발하기 위해서 필요하다. 장기적으로는 말할 나위도 없다.
일반적으로 정답은 3번이지만 이에 대해서 의문을 가지 있다면 좋은 개발 문화를 경험해보지 못했거나 비효율적으로 적용했었을 수 있다. 또한 회사마다 환경이 다르므로 가장 효율적인 문화도 조금씩 다르다. 가장 알맞은 문화를 만들고 발전시켜 나가는 것도 스스로 해야 할 일이다.
그럼 대부분의 스타트업이 가져야 할 공통적인 개발 문화는 어떤 것이 있을까? 여러가지가 있을 수 있지만 대표적인 것을 뽑아보자
첫째, 문서화이다.
소프트웨어 개발에 있어서 문서화의 필요성을 여기서 설명할 필요는 없을 것이다. 많은 회사들이 형식에 얽매인 과도한 문서화 시도로 문서화 정착에 실패를 해왔다면 스타트업에서는 형식적인 구속이 적기 때문에 가볍게 시작할 수 있다. 핵심 개발자들이 이를 주도할 수 있고 불필요한 문서는 만들지 않을 수 있다. 문서는 꼭 필요한 내용을 가장 적게 적는 것이 가장 좋고 형식은 크게 중요하지 않다. 간단한 프로토타입을 개발하기 위해서는 10분 정도 투자를 해서 한 페이지의 스펙을 적을 수 있다. 메모장에 정리를 해도 된다. 이런 개념은 기존기업에도 적용 되지만 큰 회사에서 이렇게 적용하기는 쉽지 않다. 문서를 잘 적고 스펙을 제대로 작성하는 것은 쉬운 일은 아니지만 시작이 반이라고 시작을 해야 역량이 꾸준히 증가한다.
둘째, 투명한 개발이다.
소프트웨어 개발에서 있어서 모든 정보를 투명하게 오픈하는 것이 좋다는 것은 이미 알려져 있다. 하지만 기존의 회사에서는 과도한 보안에 대한 우려 또는 기존 관습 때문에 정보 공개를 꺼려한다. 막상 투명하게 개발을 해본 사람들은 숨기려고 했던 일들이 별거 아니라는 것을 알게 되고, 공개를 함으로써 얻는 이득이 훨씬 크다는 것을 금방 알게 된다. 스타트업은 소수의 핵심 인력들이 시작하기 때문에 투명한 개발 문화를 갖추기 아주 좋은 환경이다. 이슈관리시스템을 제대로 활용하여 정보를 모두 공개하면서 개발하는 방법이 정착된다면 회사가 커져도 투명한 개발이 계속 유지될 것이다.
셋째, 수평적인 조직과 자율적인 관리다.
스타트업이야 말로 상명하복 관계를 벗어나 자율적으로 일할 수 있는 아주 좋은 기회다. 몇사람의 역할을 해야 할 스타트업의 개발자들이 시키는 일만 해서는 효율적으로 일하기 어렵다. 스스로 해야 할 일을 능동적으로 찾아서 자율적으로 해나가는 방법이 훨씬 효율적이다. 일부 잘못된 방향으로 일이 진행되는 경우도 있을 수 있지만, 투명한 개발을 하기 때문에 언제든지 누가 무슨 일을 하는지 다 감지가 되어서 잘못된 일을 계속 하는 것을 방지하는 장치가 다 되어 있다. 여러 문화가 잘 어우러져야 각각의 문화가 힘을 발휘한다.
넷째, 창의력과 오픈 마인드다.
많은 스타트업은 처음에 시작한 아이디어로 성공하지 않았다. 대부분은 초기 전략의 일부분 또는 전체가 바뀌었다. 스타트업에서는 개발자를 비롯하여 모든 직원들에게 창의력을 더 요구하게 되고 고정관념 없이 참신한 아이디어를 받아들일 수 있는 자세가 필요하다. 이는 좋은 문화를 넘어서 스타트업의 생존에 필요한 요소이다.
다섯째, 아끼는 문화다.
무엇을 아끼느냐 하면 바로 '돈'이다. 스타트업은 어느 정도 성공하기 전까지는 자금이 풍족하지 않기 마련이고 회사 돈을 자신의 돈처럼 아끼는 문화가 필요하다. 대부분의 스타트업은 초기 멤버와 주식을 공유하기 때문에 회사에 주인의식을 가지는 것이 그렇게 어렵지는 않다. 하지만 초기 투자에 성공하면 이런 문화를 잃어 버리는 경우가 많다. 좋은 사무실과 불필요한 비용 지출에 무뎌지기도 한다. 초심이 변하지 말아야 한다.
사실 스타트업의 3년 생존률은 5% 미만으로 높지는 않다. 마케팅이나 전략 또는 기술에서 실패할 수도 있다. 하지만 이런 좋은 개발 문화와 역량은 남는 것이고 재도전 시 가장 큰 무기가 될 수 있을 것이다. 또한 많은 스타트업이 생기고 이런 문화가 확산된다면 전체 소프트웨어 업계도 변화가 있을 것으로 생각한다.
이 글은 Tech it에 기고한 글입니다.