처음 시작한 공식업무는 i8051칩셋으로 터치스크린에 들어가는 크로스어셈블링된 EEPROM을 지우는 롬라이터에서 지우는 작업이었다. 그렇게 시작한 개발자 생활은 즐거운 개발방법론과 꽤 많은 기업과 스타트업에서 CTO생활을 하면서 좋은 개발 문화를 만들기 위해서 애를 써왔다.
그래서, 개발문화는 누가 만드는 것인가에 대해서 여러가지 생각도 해보았고, 개발문화를 무기로 좋은 개발자들을 섭외하며, 개발자들 역시 좋은 개발문화를 선택한다는 것을 잘 알게되었다.
'개발문화'는 누가 만들고 누가 주체가 되는 것일까?
문화라는 것은 그 조직의 행동양식과 상징, 목표와 가치관등을 기반으로 만들어진다. 그리고, 그것은 사실 조직을 만들고, 지향하는 것에 따라서 제대로 구성되기도 하며, 상당히 나뻐지기도 한다.
특히, C레벨들은 조직의 성과를 기반으로 평가 받기 때문에, 좋은 개발문화는 결국 회사의 성과와 좋은 품질의 서비스에 매우 큰 영향을 주게 된다.
다만, 굳이 좋은 개발문화가 아니더라고 매출과 운용이 가능한 조직에서는 이런 개발문화는 불필요할 수 있다. 실제, 그런 조직도 많고, 그런 조직의 특성은 워라벨을 싫어하는 경영자와, 풀스택 개발자만 뽑으려고 하는 인사조직의 이상한 집착으로 표현되며, 서비스나 제품에 대한 실험만 난무한채, 안정적이며 꾸준한 발전에 문제를 일으키고, 회사의 수명과 경쟁력을 갉아 먹게 된다.
간혹, 개발문화를 좋게 만들면, 사람들에게 복지만 제공하고, 성과는 무시하는 것이 아니냐는 무지한 질문을 받기도 한다.
단연코, 좋은 개발문화란 책임이 없는 문화가 아니라는 것을 먼저 이야기한다. 좋은 개발문화는 각자의 코드와 서비스, 제품의 품질과 성과를 내기 위해서 최선을 다한다는 전제조건이 있으며, 개발자 동료들간에 서로 신뢰와 믿음을 만들어내는 것을 의미하는 것이다.
이런 합의와 제도, 신뢰를 유지하기 위한 프로세스와 형태는 조직원들의 능력과 성품, 성격, 서비스의 형태, 현재 자금의 여력, 해야할 일과 목표등에 대해서 잘 정의되고, 이를 기반으로 개발조직과 회사조직을 잘 구성해야 하는 C레벨과 회사의 역할이 가장 크다.
좋은 개발문화는 회사가 개발자에게 주는 것이다.
그리고, 그 문화를 기반으로 개발자들이 변화하고, 개발자들의 생각과 같이 발전하는 것이 매우 좋은 개발문화인것이다. 좋은 개발문화를 가진 회사나 조직은 좋은 CTO나 개발리더가 존재하며, 이들은 경영진과 끊임없는 의사소통과 경쟁, 논의와 토의를 통해서 이런 개발문화를 만들어간다.
좋은 개발문화는 나태함이나, 무책임함이 아니다.
동료를 믿고 신뢰할 수 있게 하며, 그런 신뢰를 만들어 낼 수 있도록 문제정의를 제대로 하고, 필요한 리소스와 필요한 시간, 기술과 서비스를 사용하게 하며...
비즈니스를 위해서 빠르게 만들어야 할 고속 개발의 경우 품질을 포기하더라도... 양해할 수 있는 대고객부서와의 협의와 믿음이 있는 것이고...
그것을 이해하고, 기다려주는 경영진과의 합의에 의해서 만들어진다.
만약, 좋은 개발문화에 관심이 없는 조직이라면...
빠르게 이탈하는 것이 최선이다.
그들이나 그 조직은 좋은 개발문화보다는...
경영진의 이익만이 중요한 곳이기 때문이다.
나쁜 회사는 나쁜 회사일 뿐이다.
더 좋아질 수 없으며, 기대할 필요없다.
오너나 C레벨의 지원이 없다면, 그 조직은 기대할 것이 없다.
그뿐이다.