어쩌면 기획자의 결정보다 영향이 클 수도 있다
개발자들이 내리는 기술적 결정은 단순한 취향이나 트렌드가 아니라 복잡한 트레이드오프와 깊은 고민의 결과물이다. 기획자로서 이러한 결정 과정을 이해하는 것은 효과적인 협업을 위한 필수 요소다. 기술 결정을 이해하면 더 나은 질문을 할 수 있고, 더 실현 가능한 대안을 제시할 수 있다. 특히 개발자들의 기술 선택이 그들의 커리어에 미치는 영향과 일상적인 기술적 결정들이 프로젝트에 어떤 영향을 주는지 이해하면 더 개발자들이 심적으로 더 가까워 질 것이다. 기술적 결정에 있어 정답은 없을 수도 있고 상황에 따라 다를 수도 있다. 여기서 오는 어려움을 기획자 관점에서 알아보자.
일상적인 기술 결정 사례
개발 과정에서는 큰 아키텍처 결정 외에도 수많은 작은 기술적 결정들이 이루어진다. 이러한 일상적인 결정들이 모여 프로젝트의 성공 여부를 결정한다. 예를 들어, 서비스에서 간헐적으로 유저들이 에러가 발생한다는 민원이 어제밤부터 발생했다고 리포팅 된 상황을 생각해보자. 개발팀에 문의해보니 “CPU가 피크를 찍어서 증설이 필요하다”는 기술자로서의 의견을 냈다면, 기획자는 이 결정이 추가 비용이 발생할 수 있고, 상황에따라 서비스 중단시간이 발생할 수 있다는 점을 이해해야 한다. 왜 CPU가 피크를 찍었는지, 다른 해결책은 없는지 파악하고 의사결정에 고려하는 것 역시 중요하다.
또 다른 예로, “매 요청이 있을 때 마다 처리하면 될 거라고 예상했던 개발방향을 배치 작업을 만들어서 커버하겠다”는 개발자의 제안을 들었다고 가정해보자. 기획자는 이 결정이 왜 필요한지 이해해야 한다. 배치 처리는 시스템 부하를 분산시키고 효율성을 높일 수 있지만, 실시간성이 떨어질 수 있다. 이러한 트레이드오프를 이해하고 비즈니스 요구사항과 맞는지 판단해야 한다.
또 다른 사례를 생각해보면 개발자로부터 “이 기능은 캐시를 도입해야 성능이 개선될 것 같다”는 제안을 들었을 때, 기획자는 캐시 도입이 가져올 성능 향상과 함께 발생할 수 있는 데이터 일관성 문제나 추가 복잡성을 고려해야 한다.
우리의 일상은 이런 일상적인 기술적 의사결정들과 함께한다. 이런 결정들이 사용자 경험과 비즈니스 목표에 어떻게 영향을 미칠지 이해해야 서비스 기획의 중심을 잃지 않을 수 있다.
기획자가 이해해야 할 점
기획자는 기술적 결정이 비즈니스 목표에 미치는 영향을 이해해야 한다. 개발자가 제안하는 기술적 해결책이 비용, 시간, 품질, 사용자 경험 등에 어떤 영향을 미치는지 파악해야 한다. 프로모션 페이지를 하나 만드는 상황을 생각해보자. 반복을 싫어하는 개발자 입장에서 비슷한 프로모션을 또 할 것 같다는 생각에 재 사용이 가능하도록 설계에 시간을 많이 사용 할 수 있다. 하지만 짧은 기간 일회성으로 활용할 서비스라면 복잡한 설계 없이 간단하게 구현만 되도록 작업해달라는 이야기를 할 수 있어야 한다. 반대로 여러번 활용 될 프로모션 스킨이라면 재사용을 위한 구조를 고려해주고 일부 영역은 기획자가 직접 운영할 수 있도록 운영툴을 제공해달라고 요청할 수도 있어야 한다.
단기적인 목표 달성을 위해 빠른 해결책을 선택하면, 장기적으로는 유지보수 비용이 증가하고 개발 속도가 느려질 수 있다. 이를 기술 부채라고 부른다. 기획자는 이러한 선택에 따른 장단점을 이해하고, 비즈니스 우선순위에 맞게 의사결정을 지원해야 한다. 개발팀이 기술 부채가 많이 쌓여있다는 신호를 준다면 새로운 기획을 잠시 멈추고 서비스 품질을 위한 시간을 가질 수 있도록 해야 한다.
기획자는 또한 기술적 제약사항을 이해해야 한다. 모든 아이디어가 기술적으로 실현 가능한 것은 아니며, 실현 가능하더라도 비용이나 시간이 목표에 맞지 않을 수 있다. 이런 제약을 이해하고, 실현 가능한 범위 내에서 많은 동료들이 동의할 최적의 기획을 찾아야 한다.
기획자가 기여할 수 있는 부분
기획자는 개발자의 기술 결정 과정에 어떻게 기여할 수 있을까? 첫째, 명확한 문제 정의와 요구사항을 제공하는 것이다. 문제가 명확하게 정의되면 개발자는 정확한 기술적 해결책을 찾을 수 있다. 설령 그게 불가능하다는 결정일지라도 정확하게 소통하면 대책을 찾는데 도움이 된다.
둘째, 다양한 관점을 제공하는 것이다. 개발자는 하기 어려운 기술적 관점 외에 사용자 경험, 비즈니스 가치, 마케팅 전략 등 입장에서 기술적 결정사항이 어떻게 영향을 미치는지 평가할 수 있도록 도울 수 있다. 예를 들어, “이렇게 캐시를 사용해서 목록을 관리하면 오프라인이나 비행기모드 상태에서는 유저 경험이 어떻게 될까요?“라는 질문을 통해 개발자가 더 넓은 관점에서 생각하도록 유도할 수 있다.
셋째, 효과적인 의사소통 채널을 구축하는 것이다. 기술 결정 과정에서 “충분한 토론과 타협이 이루어질 수 있도록” 환경을 조성하는 것이 중요하다. 개발조직이 많이 나뉘어져 있다면 개발자들끼리도 소통이 쉽지 않을 수 있다. 여러 개발조직을 모아 기술 토론을 하도록 유도할 수 도 있다. 미팅, 문서화된 의사결정 프로세스, 피드백 채널 등을 통해 효과적인 의사소통을 촉진할 수 있다.
기술적 결정이 개발자의 커리어에 미치는 영향
개발자들의 기술 스택 선택은 단순히 현재 프로젝트를 위한 결정이 아니라 그들의 커리어 전체에 영향을 미치는 중요한 선택이다. Stack Overflow의 최신 개발자 설문조사에 따르면, 개발자의 75% 이상이 매년 최소 한 가지 이상의 새로운 기술을 배운다. 새로운 기술을 배우는건 그 자체로 즐거움이지만 개발자의 미래를 위한 투자이다. 그래서 우리 프로덕트에 새로운 기술을 적용해보고 싶은 그들의 니즈를 이해해야 한다.
개발자들은 기술 선택 시 다음과 같은 커리어 관련 요소들을 고려한다.
1. 시장 수요와 취업 기회: 특정 기술에 대한 숙련도는 취업 기회와 직접적으로 연결된다. 업계에 핫한 기술을 학습하면 눈에 보일 정도로 기대연봉을 올릴 수 있으며, 개발자들 사이에서 뒤쳐지지 않는다는 느낌도 든다.
2. 지속적인 학습과 성장: 기술 결정은 개발자의 학습 경로를 결정한다. 지속적으로 학습하는 개발자들은 그렇지 않은 개발자들보다 승진이나 급여 인상을 받을 확률이 더 높다.
3. 장기적인 커리어 비전: 개발자들은 특정 기술이 자신의 장기적인 커리어 비전과 어떻게 일치하는지 고려한다. 새로운 기술 습득이 원하는 기회를 열어줄지, 아니면 현재 기술을 강화하는 것이 성장에 더 강한 기반을 제공할지 평가한다.
기획자는 이러한 개발자의 커리어 고려사항을 이해함으로써, 그들의 기술 결정이 단순한 기술적 선호가 아니라 복잡한 커리어 전략의 일부임을 인식할 수 있다. 이는 더 공감적이고 효과적인 협업을 가능하게 한다.
개발자의 기술 결정을 이해하는 것은 효과적인 협업을 위한 필수 요소다. 이러한 결정들은 단순한 기술적 선호가 아니라 개발자의 커리어 경로, 프로젝트의 성공, 그리고 비즈니스 목표 달성에 직접적인 영향을 미친다. 기획자로서 기술 결정의 복잡성과 그 영향을 이해하면, 더 나은 질문을 하고 더 실현 가능한 대안을 제시할 수 있다. 또한 일상적인 작은 결정들의 중요성을 인식하고, 개발자들이 이러한 결정을 내릴 때 적절한 지원을 제공하는 것이 필요하다.
이번 장에서는 개발자와 기술적으로 소통하는 방법에 대해 네 가지 주제로 알아봤다. 그들이 사용하는 용어에 대한 이해를 갖고 적절한 질문과 대안 제시를 통해 기술적 토론에 참여하는건 기획업무로 바쁜 와중에 쉽지 않을 수 있다. 다만 함께 일하는 개발 직군을 이해하려는 투자는 유익하며 결과적으로 기획자로서의 가치를 상승시키는 중요 요소가 될 거라고 확신한다.
다음 장에서는 여러 동료들과 시너지효과를 내기 위해 할 수 있는 노력들에 대해 알아보려고 한다.