베터코드 인사이트의 시작 2편
무려 두 달 만의 한 걸음이다. 지난 <추적성(Traceability)과 그 쓰임새> 편에서 다소 모호한 추적성에 대해 개념도를 그리고, 객관적인 개념 정의와 비교해보았다.
지금까지 Better Admin은 우리 회사(베터코드 주식회사)의 오픈소스 활동의 첫 산물이면서, 동시에 중국의 기업용 오픈소스 소프트웨어인 Ant Design의 국내 포팅 시도였다. 동료인 유영모님의 노력으로 서너 개 시스템에 적용하는 과정을 지켜보면서 나는 개발자가 아니라 시장에 이를 어떻게 안착시킬 수 있을까 고민해보았다.
그 결과로 업무용 시스템의 골격으로 발전시키기로 했다. 나는 중국에서 4년간 일하는 동안 중국의 웹 기반의 ERP 제품을 보면 인사이트를 얻었다. 그리고 몇몇 조직의 디지털 전환을 함께 하며 기업용 시스템을 둘러싼 환경 변화에 대해 나름의 분석을 하다가 미리 정의한 프로세스와 데이터 모델에 입각한 ERP는 이제 더 이상 유효하지 않다는 생각을 했다.
찾아보니 김영욱님의 글에 이러한 변화에 대해 잘 설명이 되어 있었고 가트너가 정의한 Composable Business Applications라는 표현도 있었다.
개념적 정의 관점이 아니라 실체화 관점에서 보면 나는 일종의 운영체제(OS) 개념을 모방해서 기업용 애플리케이션을 통제하는 방식이 적합하다는 생각을 하고 시도해보기로 했다.
늘 그렇듯 작은 보폭의 아기 발걸음 행보를 좋아한다. 아기 발걸음은 준비 과정이 길지 않다는 장점이 있다. 이에 더해 HBR 최근 기사 <격동의 시대, 어떻게 전략을 세울 것인가>의 주장을 참조하면 '전략적 유연성'을 구가할 수 있다. 이는 내가 SAFe에서 유일하게 관심을 갖고 있는 Lean Budgets 전략 수행을 위한 행동 양식으로도 적합하다.
아무튼 그래서 첫 질문을 던졌다.
우리 기업의 사용자들은 무엇을 하는가?
이 질문을 푸는 과정에서 다시 두 달 전의 그 추적성(Traceability)이 살아난 것이다. 나는 동료에게 가장 빠르게 구현할 수 있는 방법으로 만들어보라고 아주 간략한 글로 요청을 했다. 그는 다음과 같은 내 의도와 다른 화면을 만들었다.
처음에는 어색했지만, 알고 보니 내가 북경에서부터 익힌 방식이다. 개발자는 자신이 가장 편하게 생각하는 방식으로 빠르게 개발하고, 일주일 안에 (사용자가 원하는 방향 혹은 비전에 맞춰) 교정하면 된다. 내가 OKR을 이해하는 방식도 비슷하다. 원대한 목표를 지향하지만, 지속적인 조정을 통해 KR을 찾아간다.
나는 동료에게 구두로 의도를 설명하고, UV 나 PV 등을 보려는 것이 아니고 대시보드도 필요 없다고 설명한다. 그리고 그 전의 짧은 기록을 다시 명료한 짧은 요구로 변경한다.
그리고 액션이라는 말을 보다가 찜찜했다. 나 스스로도 액션이라고 했다가 사용자 이벤트라고 했다가 기준 없이 말하고 있음을 깨닫는다. 내 입으로 도메인 모델링의 기본은 작명이라고 하지 않았는가?
구글링을 해본다. 먼저 User action이다.
Dynatrace라는 제품의 표현을 차용할 수 있다.
A user action is an interaction with an end-user interface that involves a call to a web server, which can potentially have multiple nested calls. It is a transformation from one view to another view that is triggered by a user input, for example, a page load, click, or touch.
내가 모호하게 쓰던 말의 의도가 그대로 담긴 말이라고 할 수 있다.
이번에는 user event로 구글링 해본다. 일단 첫 페이지 요약이 원하는 맥락과 어긋난다.
첫 페이지 결과만 훑어보는데 전혀 다른 맥락으로 쓰인 예들이 대부분이다. 분석 도구로 보이는 외산 제품의 페이지 하나가 다소 비슷한 정의를 하고 있었다.
User events are tracked user actions. Examples of events are a user loading a page, clicking a button, or opening an email. Every user analysis starts with at least one event to analyze behavioral patterns. You can think of events as the “what” that a user has done.
이에 따르면 사용자 행위(use action)에 대한 추적(tracked) 결과물이고, 분석의 기본 단위다. 아직 분석 하기 이전이라면 사용자 행위로 본다는 의미로 이해했다.
로그 수준의 기록이기 때문에 User Action으로 정하는 것이 다른 솔루션들이 쓰고 있는 용례인 듯하다. 일단 이를 따르자. 거기에 더해 도메인 이벤트(domain event)와 혼선을 피한다는 점도 실익이 있다.