Fundamentals of Software in Terms of Business
거래의 기초적인 형태는 실물거래다. 본인에게는 가치가 낮지만, 상대에게는 가치가 높은 물건을 서로 거래하는 것으로부터 시작한다. 이 시기의 거래의 형태는 대다수 실제 물건들을 교환했을 것이다. 금융 공학과 시스템이 고도화되면서 서비스를 판매하고 리스크를 판매 등의 기존 실물과 다른 형태의 판매 상품도 나타났다. 이때도 본인에게는 가치가 낮지만, 상대에게는 가치가 높은 것을 판매했을 것이다. 이 효율을 극대화하기 위해 기술의 전문화와 분업이라는 것이 생겨났고 이를 통해서 다양한 전문가들이 탄생하며 현재와 같은 구조가 되었다고 생각한다.
여기까지 생각이 도달하고 난 이후, 소프트웨어의 본질은 무엇인가에 대해서 고민하게 된다. 지금 내가 속한 이 소프트웨어라는 전문분야 자체는 비즈니스에서 어떤 역할을 하는가. 내 짧은 식견으로 보았을 때 소프트웨어의 비즈니스적 본질은 상당히 이상하다.
농사나 어업처럼 물건을 만드는 기술은 아니다. 화학공학이나 기계공학처럼 제조업은 하는 것은 아니다.
다만 농사나 어업을 도와줄 순 있다. 화학공학을 기계공학을 효율적으로 지원할 수 있다.
그 자체로는 새로운 무엇인가를 만드는 경우는 거의 없다. 무엇인가를 대체하거나 더 나은 효율을 만들기에 집중한다. 화가들을 대신하여 그래픽스가 만들어지고, 프론트 점원들을 대신하여 키오스크가 만들어진다. 그러나 소형 원자로를 만드는 것을 시작부터 소프트웨어가 설계하진 않는다. 소프트웨어는 새로운 물질을 만드는 데에 도움을 줄 수 있지만 새로운 이론을 세워 물질들을 직접 만들지는 못한다. (만든다고 하더라도, 현실세계에서 제대로 만들어졌는지 검증할 수 없다.) 이상하다고 생각했던 이질감은 바로 이것이다. 기존의 이공계 학문과는 다르게 개척하는 분야가 아니다. 이러한 성질을 보았을 때 소프트웨어는 자동화의 학문이다.
혁신적인 상품이 제작될 때는 비즈니스 개척
- PMF
- 대량 제작, 운영 및 효율화
의 과정을 거치게 된다. 소프트웨어가 활동하는 범위는 많은 부분 '대량 제작, 운영 및 효율화' 단계이다. 앞서 정의된 돈이 되고 비즈니스가 되는 무엇인가가 정의가 되어야 그 이후에 대량 제작이 가능하다.
SaaS를 만들 때에는 먼저 외주처럼 받으라는 얘기가 있다. 소프트웨어를 만드는 사람으로서는 그다지 좋아하는 일은 아닐지 모른다. 그러나 수작업으로 일이 실제로 되게 만드는 무엇인가를 제대로 파악하는 것이 먼저다. 소프트웨어가 활약할 수 있는 상황은 그 다음이다. 이 생각은 유명한 에세이 중 하나인 폴 그레이엄의 Do things that don't scale을 떠올리게 한다.
요즘은 AI가 발전하면서 소프트웨어를 운영 효율화 단계의 한계를 넘어서 신기술 제작자, 비즈니스 개척자, 의사결정자로 발전되길 바라는 것 같다. 다만 현재의 LLM은 데이터셋에서 가장 common한 토큰을 선택해서 다음 단어로 선택하는 트랜스포머 형태를 취하고 있으므로 결국 common한 내용이 나올 수 밖에 없다. 물론 excellence-of-high-speed 덕분에 리소스의 문제로 못하고 있었지만, 언젠가는 사람이 도달했을 문제를 발견하고 일정 부분의 개척자의 역할은 할 수 있을 것이다. 하지만 아직 우리도 모르는 무엇인가를 알려주는 지니는 없을 것이다. 비즈니스에서도 데이터 셋에서 표현이 안된 어려움들과 상황을 이해하고 답을 제시할 순 없을 것이다.