[CTO는 어떤 고민을 하나요?] IT 회사의 CTO라면 Software Engineer 조직을 총괄합니다. Software Engineer 를 이루는 단어를 살펴볼 필요가 있겠습니다. 우선 Software 를 볼까요. 소프트웨어란 말에 들어 있는 부드럽다(soft)라는 말은 곧 제품이 변하기 쉽다는 이야기입니다. 페이스북은 2004년에 생겼지만, 17년이 지난 지금 이름만 그대로지 같은 제품이라고 하기 어려울 것입니다. 하지만 코카콜라를 생각해보면 수십년간 브랜딩이라는 측면에서 변화는 있어왔지만 제품 자체의 큰 변화는 없었습니다. 여기서 소프트웨어 산업의 특이점이 나옵니다. 소프트웨어는 계속 변할 수 있다는 것. 사업이란 것이 제품을 통해 고객을 만족시키고 이를 통해 수익을 창출해야 합니다. 그런데 그 고객을 만족시킬 수 있는 제품이 계속 변할 수 있다는 것은 변하는 고객의 니즈 또는 더 많은 고객의 니즈를 만족시키도록 제품 자체가 변할 수 있다는 것입니다. 결국 이런 산업에서 얼마나 빠르게 제품을 고객의 니즈에 맞게 변화시킬 수 있는가가 경쟁의 핵심입니다. 두번째로 Engineer를 보겠습니다. 다음은 위키피디아 Engineer 페이지에 나와 있는 문장입니다. The work of engineers forms the link between scientific discoveries and their subsequent applications to human and business needs and quality of life. 즉, 엔지니어는 과학적인 발견과, 그것을 사람/사업의 필요에 따라 연결시켜주는 사람이라는 것입니다. 흔히 우리나라에서는 엔지니어를 기술/연구 쪽에만 특화된 전문인으로 보지만, 실제 엔지니어의 정의는 그렇지 않습니다. 엔지니어는 과학자가 아닙니다. 엔지니어는 기술과 사업을 연결시키는 사람이죠. 그래서 회사에 속해 있는 엔지니어라면 어떻게 기술을 활용해서 "사업을 성공시킬 수 있는가"를 고민해야 합니다. 물론 사업에 따라 새로운 기술을 개발한다든가 특허를 낸다든가 등의 활동이 사업의 성과에 굉장히 크리티컬 할 수도 있습니다. 하지만 대부분의 사업에서는 그렇지 않습니다. 이미 대중화된 기술이라 하더라도 이 기술을 자신들의 사업에 어떻게 적용하는가가 엔지니어가 풀어야 할 중요한 숙제입니다. 특히 지금과 같은 클라우드 시대에서는 전문적인 기술이 필요한 영역은 해당 기술에 특화된 클라우드(SaaS 포함) 업체들이 제공합니다. 고객에게 직접 서비스를 제공하는 회사의 인하우스 엔지니어는 이런 외부 클라우드 서비스를 얼마나 잘 이해하고 / 활용할 수 있는가가 경쟁력이 될 것입니다. 관련해서 CTO로서 고민하고 있는 점은 크게 3가지입니다. - 어떻게 제품을 확장과 변화에 쉽게 대응할 수 있게 만들 수 있는가? 소프트웨어 업계에서는 이런 것을 아키텍처 라고 합니다. 미래 우리 제품에 어떤 변화가 필요할 지 모릅니다. 따라서 엔지니어는 쉽게 이런 방향으로 제품이 변할 것이다...라고 가정하면 안됩니다. 제품에 생각지 못한 변화가 생길 것이라 생각하고 최대한 유연하게 제품의 아키텍쳐를 설계하는 것에 대해 고민합니다. - 제품 조직이 계속 더 커지고 있는데, 어떻게 기민하게 협업하여 높은 퀄리티를 유지하면서 생산성을 높일 수 있는가? 협업하는 사람이 많을 수록 커뮤니케이션 코스트도 높아지고, 제품의 복잡도도 커져서 생산성이 떨어질 수 밖에 없습니다. 이런 문제를 해결하기 위해 조직의 구조적인 측면, 커뮤니케이션 프로토콜 등을 고민합니다. - 어떻게 엔지니어들이 제품에 필요한 중요한 아이디어를 내게 할 수 있는가? 기술에 대한 얕은 지식으로 생각해낼 수 있는 아이디어에는 한계가 있습니다. 기술을 알아야 그 기술을 활용해서 할 수 있는게 무엇인가 생각할 수 있습니다. 따라서 엔지니어 조직이 이런 부분에서 어떻게 더 기여하게 할 수 있을까 고민합니다. ---- 얼마 전 인터뷰에서 받았던 질문입니다. 실제 인터뷰 기사에 실리지 않아 아쉬워서 여기 올립니다!

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2021년 3월 19일 오후 12:25

 • 

저장 72조회 4,494

댓글 0