그냥. 오늘 개발파트 워크샵을 했는데, DS를 직접 구축할지 고민하는 스타트업이 많다는 이야기를 들어서 야심한 밤에 적어보았다.
(새벽감성 다량 함유, 감기 바이러스 치사량 함유)
이 회사에서 신규 프로젝트를 진행하기 전 나온 이야기였다.
내가 이 회사에 큰 영향력을 가졌거나 연차가 끽해봐야 그때는 1년차였으니까. 맞는말이라고 생각하고 신규 디자인시스템을 직접 구축하기 시작했다.
(사실 더 자세한 히스토리가 있는데. 구구절절하니 패스) 버튼, 모달, 메뉴 등등 기본적으로 웹사이트에서 많이 사용하는 구성요소를 쪼개어 각자 개발하고 반영하는 형식이였다.
초반에는 디자인시스템으로 인해서 꽤 많은 생산성을 챙길 수 있었다. 같은 디자인을 여러번 개발하지 않아도 되고, 대부분의 기능이 디자인 시스템에 있었으니까.
하지만 지옥은 후반에 있었다.
디자인시스템을 제대로 구축해본적 없는 상황에서 만들어진 것은 브라우저 환경, OS, 기기에 제대로 대응하지 못하는 케이스가 수두룩 빽빽이였고, 이로 인해서 디자인 QA, 개발 QA에서 국밥에 수육까지 추가한것처럼 보기만 해도 든든해지는 티켓이 양산되었다.
(디자이너야 우리 ㅈ됐어..)
개발자와 디자이너는 이상함을 느꼈다.
분명 생산성을 위해서 만들었던 시스템인데 왜 우리의 발목을 잡았을까?
개발팀의 역량 부족? 디자이너팀의 역량 부족? 시간 부족? 리소스 부족?
적은 경험으로 만들고 적은 리소스로 관리했다.
나는 이렇게 생각한다.
전문적인 시스템 개발을 해본 사람은 없었고, OS나 브라우저, 기기 대응은 프로젝트에서도 제대로 되고 있지 않았다.
해당 프로젝트는 일정을 표로 관리해서 매주 일정으로 쪼이는게 일상인 상황에서, 디자인 시스템을 챙기는건 욕심이였다.
하지만, 이게 프로젝트 스프린트 상황이 아니라 일반적인 개선 업무나 운영 업무를 치고 있었더라도 동일했다고 생각한다.
스타트업에 바쁘지 않은 날은 없다. 한 일을 빠르게 끝내면 그 일보다 우선순위가 낮았던 업무를 진행하게 된다. 백로그는 항상 쌓여있으니까.
그래서 우리는 잘 만들어지고 범용적으로 사용하는 디자인 시스템을 래핑 하기로 했다.
현실적으로 스타트업에서 따로 일정을 빼서, 인력을 빼서 플랫폼 업무를 하는건 불가능하다.
개발 광인, 디자인 광인이 한명씩 있어서 주도적으로 다 만들어버리는건 논외로 치겠다. 그건 축복받은 스타트업이다.
물론 래핑은 많은것을 포기해야한다.
개발팀은 시스템 구축 경험과 버그 대응을, 디자인팀은 상세한 커스터마이징을 포기하는 결정이다.
하지만, 이미 한번의 실패를 경험하고 우리가 처한 환경을 생각하면서 결정했다.
방법은 그전의 누군가가 아주 자세히 정리해준 글이 있다.
이젠 여기에 없지만 그분이 쌓은 업적은 회사에 살아 숨쉰다. 그분을 담기에는 회사가 너무 작았다.
(오준상은 오렌지병이였던..)
사실 이게 본론인데, 생각보다 성공적이다.
개발자는 대부분을 디자인시스템을 이용해 블록쌓듯 개발만 하면 되어 생산성이 증가했다.
디자이너는 관리대상이 늘긴 했지만, 이미 나와있는 시스템을 이용하면 되어 고민이 줄고 드는 시간도 줄었다.
필요한 컴포넌트는 추가하고, 래핑한 컴포넌트에서 공통적으로 변경해도 되겠다고 합의한 부분은 해당 컴포넌트에서만 변경했다.
물론 개선해야할 것도 많다.
디자인을 보면 자동으로 코드를 생성하는 기능이라거나, 버저닝이라거나, 변경사항을 한꺼번에 반영하는 법이라거나..
중요한건, 확실히 디자인시스템을 직접 구축했을때 보다는 다음 수준의 고민 이라는 것이다.
좋은 글 감사합니다. 오픈소스 활용한 디자인시스템으로 앱까지 확장하셨을지 궁금합니다. RN까지 커버리지를 넓혔거나 네이티브라면 신규 시스템 구현 없이 가능했을지도 궁금합니다.