당연하다, 개발자는 시간의 축을 만드는 사람이니까.
비즈니스 모델은 끊임없이 변화하고, 개발방식과 비즈니스 모델을 만들어 나가는 사람들 역시 계속 변화한다. 하지만, 소프트웨어 개발은 특정 시간대에 미래에 대한 예측으로 가설과 가정을 기반으로 코드를 만들게 된다. 이런 경우에 비즈니스의 변화와 특성, 시점과 제약사항들에 대해서 가장 크게 인지하고 인식해야 하는 사람이 CTO이다.
CTO는 가장 먼저 비즈니스의 속도를 인지 해야 한다.
어떤 수준의 요구사항과 변화에 따라서 개발 조직이 대응해야 하며, 어떤 요구사항이 기술 스택을 뒤흔드는지 알아야 하며, 특정 개발자나 프레임웍이 큰 구조를 뒤흔들 가능성이 있는지 알아야 한다.
이때에 가장 중요한 것은 비즈니스의 가설이 세워지고, 동작하기까지의 시간적인 배분과 예측이기 때문에 CTO는 비즈니스에 대한 이해도가 매우 높아야 한다.
CTO는 그 누구보다 비즈니스의 변화되는 상황에 대해서 인지해야 한다.
새로운 모델이 만들어지고, 업무의 양이 얼마나 늘어야 하는 것인지 예측해야 하고, 해당 기술적인 제약요건들이 어느 정도 시간과 비용, 충분한 검토가 있어야 하는지 알아야 한다.
CTO는 비즈니스를 데이터 분해하듯이 촘촘하게 시계열화 해야한다.
시간적인 제약은 언제나 개발자의 한계를 만들어 낸다. 그 한계에서 버려지는 것과 쓸모가 있는 것, 가설적인 방법에 의해서 실험적인 코드가 만들어졌다가, 제대로 된 비용과 리소스로 재배치하는 경우가 많다.
그리고, 마지막으로... 대부분의 스타트업들은 기술 스타트업들이 아닙니다. (생각보다 기술스택 난이도가 높지 않습니다. )
엄청난 로켓을 쏘아 올리거나, 정밀 타격 무기를 만들고, 양자역학을 다루는 기업들이 아니라, 소비자들의 요구사항과 마켓, 적절한 기술적인 요소들을 재배치하여 만들어지는 것이 현재의 스타트업이라고 생각합니다.
가장 비즈니스 모델을 잘 만들고 디자인하는 것은 CEO의 몫입니다. 미래의 가치가 높은 업무와 비즈니스의 도달 방법에 대해서 가장 큰 의사결정 권한을 가지는 것은 CEO입니다.
대부분의 CTO는 그러한 CEO의 계획에 맞추어 버릴 것과 가지고 갈 것, 정해진 리소스와 적정한 범위에 맞추어서 개발 조직을 디자인하고, 로드맵에 맞추어서 서비스를 만들어 나가니까요.
더 복잡하게 이야기하지 않겠습니다.
CTO는 해당 비즈니스의 전문가가 되어야 합니다.
기술 집약적인 분야라면 더더욱 그래야 하구요.