Full Stack에 대한 잡념
Full Stack이라는 용어가 나온지도 이제 시간이 꽤 흐른것 같다.
사실 상 Vertical과 같은 용어라고 할 수 있는 Full Stack은 개발자의 영역에서 먼저 시작이 되었다.
Full Stack Developer에 대한 개념을 정확히 전달하기 위해서 어떤 방법이 좋을까 여기 저기 찾던 중 구글에서 아래와 같은 적합한 이미지를 찾았다. 즉 서버, DB, 어플리케이션 그리고 테스트까지 혼자서 해 낼 수 있는 사람을 지칭하는 것이 바로 Full Stack Developer에 대한 의미이다. 물론 여기 Business라는 단어가 함꼐 들어있는 이유는 아마도 그들이 비즈니스에 대한 이해도를 갖추고 일을 해야 하기 때문일 것이다. 또 몇 가지 첨언을 하자면 Application이라는 영역을 일반화하려면 Front-End로 용어를 바꾸어야 할 듯 하다. 웹과 앱 혹은 다른 수 많은 Device를 포함할 수 있는 개발 영역을 뜻하는 의미로서 말이다. 거기에 테스트를 진행하는 개발 QA의 영역에서는 Test Scenario에 대한 설계 역시 함께 필요할 것이다. 이것은 아키텍쳐와 DBA로부터 운영 배포를 위한 최후의 테스트까지 총 망라한 슈퍼맨과 같은 사람이다.
나는 서비스 기획자 혹은 UX디자이너로서 나름 많은 개발자들을 만나보았다. 하지만 사실 위에서 이야기 한 것과 같은 슈퍼맨을 만난적은 없다. 하지만 Front-End 개발자가 DB를 잘 이해하면서 Test Scenario를 짜는 경우 정도는 볼 수 있었다. 그들은 이미 현실 속의 슈퍼맨이었다.
물론 그들이 슈퍼맨으로 인정받기 위해서는 그 각각의 영역에서 모두 다른 한 명의 담당자 역할을 할 수 있어야 한다. 만약 그렇지 못하면 그들은 바로 오지라퍼로 전락한다.
개발에서 Full Stack의 개념은 왜 등장하게 된 것일까?
아마도 그 첫번째 이유는 저 많은 영역 가운데 하나 혹은 두 개의 개발 스킬만을 가지고 만들어질 수 있는 서비스가 없기 때문이다. 상당히 많은 IT기반의 서비스들은 저 모든 Stack에 대한 역량이 필요하고 그것을 기반으로 만들어진다. 그런데 거기에 더하여 저 각 개발 Stack은 서로 소통해야 한다. 그런데 간혹은 난 Front 밖에 몰라라고 외치는 개발자들이 있다. 그리고 그들은 간혹 돌팔매질을 당하기도 한다. 시대가 흐를 수록 내 일이 잘 드러날 수 있는 융합형 커뮤니케이션이 가능한 개발자가 필요해지고 있다. 골방에 들어가 천재적인 코딩 솜씨를 일궈내는 인재도 물론 필요하지만 현실 속에서는 그런 사람을 만나기는 힘들고 있다고 하더라도 커뮤니케이션이 잘되는 보통 개발자를 선호하는 경우가 많기도 하다.
둘째로는 스타트업이 많이 늘어나면서 각 Stack에 적합한 사람을 각각 뽑기 어려운 이슈가 있을 것이다. 스타트업은 그 특성상 전 영역을 커버할 수 있는 1명 혹은 소수의 인력으로 조직을 꾸리기 마련이다. 부족한 각 Stack 별 전문성은 함께 스터디를 해 가면서 말이다.
이런 Full Stack의 유행은 디자인으로도 흘렀다. 바야흐로 Full Stack 디자인의 개념이 퍼지기 시작한 것이다. 디자인의 영역의 경우는 Dimension의 개념에서는 리서치로부터 실제 UI디자인 그리고 기본적인 코딩에 해당하는 영역까지이다. 이 역시 앞서 개발자에서 본 것과 동일한 이유로 유행을 타는 듯 하다. 예를 들어 UI디자인이 이루어지면 그것을 가지고 이미지를 잘라서 UI개발로 붙이게 되는데 사실상 이것은 한 명이 할 수도 있는 하나의 임무라고 할 수도 있는 것이다.
디자인 영역의 경우는 또 다른 개념으로 툴의 활용으로 Full Stack을 논할 수도 있을 듯 하다. 포토샵, 일러스트레이터, 애프터이펙트 혹은 프리미어까지도 말이다. 리서치 이후에 와이어프레임을 만들고 그것을 High Fidelity로 만드는 부분에서도 다양한 프로토타이핑 툴을 다루는 것으로 Full Stack을 논할 수 있을 듯 하다.
어쨋든 이렇게 Full Stack의 개념이 온 세상에 퍼져나가고 있는 이 시점에 개발자 그리고 디자이너와 함께 가열차게 일을 하고 있는 기획자들에게는 아직 Full Stack의 개념이 적용되지 않고 있다. 사실 기획자들이야 말고 Full Stack 적인 개념의 적용이 필요한 분야임에도 불구하고 말이다.
그래서 간략히 기획자 혹은 제목에 적었듯이 내 생각에는 Product Manager가 가져야 하는 Full Stack의 개념에 대해서 적어 보겠다.
그들에게 필요한 Stack들이다.
1. 서비스 기획: 컨셉 디자인, 주요 Function 수립
2. Business Development: 제품이 동작하기 위해 필요한 내외부 환경에 대한 정의 및 수익 모델에 대한 구조 수립
3. 마케팅 전략 수립: 마케팅 영역에 대한 기본적 이해 보유 및 Direction 제시
4. 서비스 구축에 대한 Process Management/Communication
5. 공유 및 보고 역량
위의 5가지 모두 Full Stack Developer 및 Full Stack Designer와 직접적으로 겹치지 않는 영역이면서 스스로 온전히 Stack으로서의 가치가 있어 보인다. 다만 개발이나 디자인에서 정의하듯이 네모반듯한 Stack의 형태는 아닌 것으로 보일 수는 있다.
하지만 위에서 언급한 각각의 영역은 각각 1명의 인원이 담당하기에는 보통 작은 단위의 일인 경우가 많다. 물론 엄청나게 큰 서비스나 제품을 런칭하는 경우에는 이들이 각각 하나의 Role로서 수립되지만 세상에는 그렇지 않은 프로젝트가 훨씬 많다. 조직이 매우 방대하여 서비스 혹은 상품 기획 조직이 1번의 역할을 가져가고 별도의 BD조직이 2번을 가져가고 마케팅 수장이 스스로 혼자 3번을 처리하고 PMP를 가지고 있는 전문가가 4번을 맡고 5번은 서로 잘 나누어 진행하면 좋겠지만 이것 역시나 세상은 항상 그렇게 돌아가지 않는다.
결국 꽤나 많은 곳에서 1번부터 5번을 담당하는 Product Manager의 역할은 필요한 경우가 많다.
나는 외국계 회사에서 일을 해 본적은 없지만 외국계 회사에서 일을 해 보고 싶은 마음에 PM 역할에 지원해 본적은 있다. 물론 서류에 대한 회신조차 오지 않았다. 어쨋든 한 가지 중요한 것은 PM이라는 명백한 역할이 우리나라 기업들에는 대부분 없지만 외국의 경우는 그 개념을 매우 중요하게 생각하고 가장 역량 있는 사람이 PM을 하는 경우가 많은 것으로 알고 있다. 그렇기에 Full Stack의 개념은 Product Manager에게 더욱 중요시 되어야 하지 않나 싶다. 또 다른 한편으로는 Product Manager에게도 역시 Full Stack Developer나 Full Stack Designer와 같이 현실 속에서는 그 존재를 좀처럼 찾기 어려운 유니콘과 같은 존재인가 싶기도 하다.
어쨋든 나 역시도 UX/UI로 시작하여 서비스를 기획하고 제품을 담당해보기도 하는 과정을 통해서 좀 더 Product Manager적인 성향이 많아진 사람 가운데 한 명이다. 나를 포함하여 이 영역에서 당당한 내 한 자리를 만들기 위한 수 많은 사람들이 Full Stack Product Manager에 대해서 고민해 볼 때가 아닐까 싶다.