기술적인 난이도와 설계적 난이도, 얻게되는 경험치에 대한 분석
외부 서비스를 만드는 첫 단계는 클라이언트의 요청사항을 확인하는 것부터 시작한다. 이들이 만들고싶어하는 내용은 무엇이고, 거기에 드는 기술은 어떤 기술인지. 개발자는 어떤 사람이 필요한지. 기획 및 설계에서 외부 API나 솔루션을 써야하는건 아닌지. 실제 개발에 들어갔다고 헀을 떄 필요한 것들을 미리 확인해보아야한다. 오늘의 이야기는 필자가 실제 제안서를 작성할 때, 기술검토과정에서 체크하는 내용들을 다뤄보도록 하겠다.
서비스를 만들때, 가장 먼저 확인해야하는 것이 서비스의 핵심 기능이 무엇인가에 대해서다. 그리고 그 기능을 구현하기 위해서 어떤 정보들을 입력받거나, 외부에서 끌어와야하는지를 체크한다. 물론 이 서비스를 사용하는 사용자 타입에 따라서도 핵심기능이 갈릴 때가 있다. 이런 경우 사용자 타입을 통틀어서 가장 중요한 기능을 우선적으로 봐야한다. 그리고 그 내용들을 바탕으로 어떻게 그 기능을 구현해야하는지를 파악한다.
체크포인트
- 여러 유저타입들이 사용하는 기능들 중, 서비스의 핵심이라 말할 수 있는 기능을 확인한다
- 중요도가 높은 기능들을 구현하기위해 어떤 정보를 입력받거나, 외부에서 끌어오는지를 확인한다.
- 중요도가 높은 기능을 구현하는 난이도가 얼마나 높은지. 사용해야할 외부 솔루션은 없는지를 확인한다.
B2B 커머스에 대한 정보조사 정리글
https://brunch.co.kr/@clay1987/312
건설현장 관리 솔루션에 대한 정보조사 정리글
https://brunch.co.kr/@clay1987/339
부동산 매물관리 서비스에 대한 정보조사 정리글
https://brunch.co.kr/@clay1987/338
자동전화걸기, VoIP 전화에 대한 정보조사 정리글
https://brunch.co.kr/@clay1987/341
핵심기능들이 확인되고 나면, 서비스가 만들어져야할 플랫폼 규격들을 확인하게된다. 모바일 앱이나 PC 웹, 반응형 웹, 외부 블루투스 기기나, 키오스크, 물리서버나 클라우드 서버 등등. 서비스에 필요한 플랫폼 규격들에 따라 필요한 개발자가 어떤 기술을 갖고있어야할지가 정해진다. 또한 이런 플랫폼에 맞게 필요한 개발언어나, 최적화된 개발스택이 존재한다. 개발 스택은 회사 내부에 보유하고있는 기술자나, 프로젝트 상황에 맞게 선택해야한다. 만약 내부에 전문가가 없지만, 프로젝트에 꼭 필요한 기술인 경우 - 그 기술을 사용하는 개발자를 뽑아야하는 경우도 생긴다. 이떄 오래된 기술이나, 호환성이 낮은 개발 기술을 선택할 경우 - 실제 개발 프로젝트가 엉망이 되는 경우도 있으니 주의해야한다.
체크포인트
- 서비스를 만들기 위해 어떤 플랫폼이 필요한지 확인한다 (웹, 앱, 관리자, CMS, 외부연동 기기, 키오스크, 서버, 클라우드 등등)
- 유사한 서비스를 만든 타사 사례를 분석하여 안정적인 개발 스택을 확인한다.
- 내부에 해당 기술을 갖고있는 기술자가 없는 경우, 신규 인원을 뽑아 프로젝트에 참여시킨다.
타 회사 서비스의 웹페이지에 접속해 사용된 기술을 체크할 수 있는 Wappalyzer 서비스
다른 유명회사들이 어떤 기술을 쓰고있는지 알 수 있는 Stack share 서비스
핵심기능들을 정리했다면, 이제는 각 기능들을묶어, 필수적인 기능들이 어떤 단계를 거쳐 결과값을 내는지. 어떤 사용자 타입들이 그 과정에 관여하는지를 정리할 때다. 이미 기존 단계에서 중요한 내용들을 모두 확인한 상태이므로, 이 작업은 '내가 이 내용을 이해했다는걸 상대에게 보여주기 위해' 작업하는 과정이라 볼 수 있다. 대부분 이 정리본은 제안서에 추가자료로 들어가거나, 실제 클라이언트와의 미팅에서 사용되는 경우가 많다.
체크포인트
- 서비스의 핵심적인 기능이나, 정보처리 과정 등을 시각적으로 정리해 보여주자
- 모든 기능을 Flow로 정리할 필요는 없으며, 중요기능을 중심으로 시각화를 진행하자
- 만들어진 내용은 제안서에 포함시키거나, 클라이언트와의 미팅에 설명자료로 사용하자.
기술검토 과정에서는 실제 개발 및 구현이 가능한지를 판단하게 된다. 그 결과 개발을 했을 때 회사에서 얻을 수 있는 지점이 무엇인지. 내부 인원들이 얼마나 많은 경험치를 쌓게될 것인지. 그러한 경험치가 개별 인원들에게 얼마나 도움이 될 것인지를 고민해보아야한다. 이런 내부 협의과정이 없이 무작정 외주 작업을 진행하게되면, 팀원들의 퇴사율도 급격하게 높아진다는걸 기억하자. 또한 개별 서비스들이 회사의 성장전략과 맞아떨어지는지에 대해서도 고민을 해보아야한다.
IT 기업의 생존전략 / 성장전략에 대한 글
https://brunch.co.kr/@clay1987/326
내부 팀원들의 스킬트리와 경험치를 어떻게 성장시킬 것인가에 대한 글
https://brunch.co.kr/@clay1987/344
제안서를 쓰는 방법에 대한 정리글
https://brunch.co.kr/@clay1987/325
지금까지 어떤 과정을 통해 기술 검토를 하게되는지. 또 어떤 지점들을 고민하여 최종적인 제안서를 쓰게되는지에 알아보았다. 회사 내부에 인원이 많지 않은 경우 - 팀장급 인원이 기술검토와 제안서 작업까지 모두 처리해야하는 경우가 많다. 그러니 본인이 팀장급 업무를 진행해야하는 사람이라면, 위 내용들을 충분히 검토하고 '우리 회사는 어떤 상황이고, 또 어떤 방향으로 성장하려 하는지'를 고민해볼 필요가 있겠다.