비즈니스 드리븐
가장 최근 구직을 하면서 씨게 깨달았는데, 나는 회사의 사업이 매력적인지를 좋은 회사의 첫번째 기준으로 생각하는 인간이었다. 거기서 뭘 하게 될지는 높은 우선순위에서 꽤 멀었다. 이 회사의 소프트웨어가 얼마나 돈을 벌고 있고 돈을 벌 가능성이 있는지를 엄청나게 열심히 따지는 내 모습을 봤다.
그리고 난 어디가서 긱한 걸로 명 함도 못 내민다는 걸 현업에서 알았다. 일하면서 진짜 짱 긱한 개발자들 많이 봤다. 그 분들은 지금보다 더 복잡한 기술적 문제를 풀고 싶어하셨던 경우가 많았다. 비즈니스의 문제나 회사의 재무상태보다는 기술적 문제를 보고 이직하시는 분들도 계셨어서 난 진짜 긱하긴 틀렸다.
비즈니스 드리븐 개발한다는게 회사가 사업적으로 달려야 하는 시간에 구성원 설득해서 리팩토링했다, 보다는 더 큰 차원의 무언가라고 생각한다. 그것은 소프트웨어 개발이 가진 고유한 특성을 비트는 일이다. 기계를 만든다는 것은 복잡함을 제어하면서 원하는 동작을 하는 결과물을 내는 것이다. 이 복잡함을 제어하는데에 필요한 해결 방법들과 설계는 대체 불가능한 멋짐과 재미를 갖고 있고, 문제를 풀었을 때에는 놀라운 성취감이 온다.
나는 이런 점 때문에, 언뜻 숭고해보이고 덕질의 대상이 되기까지 하는 소프트웨어를 비즈니스에 맞는 모든 가치를 뽑아줄 수 있는 마중물로 전락시키고 싶다는 생각을 한다. 기술적으로 뺀씨한 게 중요하지 않다. 그저 모든 요구사항을 다 받아내 비즈니스와 유저에게 가치를 꽤 많이 주면서도, 평균 이상의 상태를 유지하는 강한 탄성력이 있는 기계를 만들고 싶다.
최근에 회사 제품에 적용될 자체 웹 프론트엔드 프레임워크를 만들고 회사 전체 제품을 그것으로 대체하는 작업을 했다. 과정에서 정했던 아주 개인적인 목표 중에 하나는, “개발자 경험은 버틸 수 있을 정도보다 조금 더 좋게” 였다. 이 프레임워크의 개발자 경험을 쓰는 동료 개발자로 하여금 “진짜 개발 못해처먹겠네” 하는 말이 절로 나오는 수준보다 조금 더 높게 유지하자는 거다.
이건 개인적인 차원에서 굉장히 고통스러운 결정이다. 왜냐면 나는 높은 수준의 개발자 경험을 좋아하고 확고한 취향이 있는 엔지니어다. 그리고 개발 플랫폼 조직의 가장 큰 매력 중 하나가, 동료의 개발 경험을 끌어올려서 직장에 대한 경험까지 향상시킬 수 있는 것이라고 믿는다.
매일매일 내가 기여한 프레임워크의 끔찍해보이는 개발자 경험을 그냥 냅두고 다른 비즈니스 문제를 해결하는 것이 몹시 괴롭다. 동료 개발자들이 100% 최적화되지 않아서 하지 않아도 될 고민과 하지 않아도 될 루틴을 거치면서 개발하는게 괴롭다. 하지만 이 프레임워크는 아직 각 직군 조직에서 나오는 모든 비즈니스 요구사항들을 수용하기 어렵다. 그래서 그걸 먼저 할 수 있게 만들고 DX는 남는 시간에 쫌쫌따리 개선해야 한다. 그게 맞다.
구조가 멋져서 “짠!!! 내가 이런걸 만들었지!!!” 할 수 있는 자동차보다, 아주 빠른 속도로 달리는데 어디 벽에 부딪히기도 하고 갑자기 하늘로 솟구치기도 하고 다른 차가 옆에서 박아버리기도 하는 와중에도 제 속도를 유지한채 외형이 그대로인 자동차를 만들고 싶다.
비즈니스적으로 좋은 결정을 내리는 동료 메이커들이 “자동차에 자동차 붙여서 킹갓제너럴자동차 만들면 멋지겠죠?” “자동차에 식기세척기 달아도 돼요?” 라는 질문에 모두 “됩니다!!!!” 라고 외칠 수 있는 자동차를 만들고 싶다. 급속도로 성장하는 비즈니스에 맞아 떨어지는 매우 적절한 엔지니어링을 하고 싶다. 너무 어렵고 배울 게 많아서 신난다.